我在CentOS 5.1使用荫 - I手编译从源PHP 5.2.8,但是具有使用荫安装其他包。我需要安装通过PECL PHP扩展,它需要phpize被安装为好。但是,这样做以下产生一个依赖错误:

  

须藤荫安装PHP-devel的

错误:缺少相关性:PHP =由包PHP-devel的需要5.1.6-20.el5_2.1

由于我其实已经安装了PHP的一个较新的版本,我怎么能强迫yum来坐视不理?我需要从源头上手工编译PECL / phpize?我承认以前从未有过的问题,它只是似乎是因为编译的组合和yum的安装。

任何想法?

谢谢, 凯尔

有帮助吗?

解决方案

作为一个经验法则,最好是有一个包管理系统,所以你会好起来的包装RPMS一切,并通过yum管理它。它将为您节省大量的时间,从长远来看。

如果你绝对想拥有由一手货源的东西(FE PHP)的编译器,用垫木/检查安装/ ...或任何其他解决办法,使你做源编译的东西,基本的包管理。

Regerding你的问题,你可以尝试重写依赖通过下载所需的软件包的做“转-i --force file.rpm”的RPM检查,因为yum不会有任何选项强制安装

其他提示

在一般:

如果你建立它自己,它进入/usr/local,并且只有在/usr/local其他东西访问。

如果你从RPM /百胜安装,它进入/usr,并访问/usr/usr/local

所以,如果你想用家里编译PHP安装PHP工具,它们安装到/usr/local还有:通常情况下,用GNU型软件,会是这样的:

   ./configure --prefix=/usr/local && make && sudo make install

   make prefix=/usr/local all && sudo make prefix=/usr/local install

...虽然的的软件应该默认为/usr/local除非你重写它的前缀设置。

如果你想要的是基于RPM的,以“手工打造”套餐,您可以使用

   yumdownloader --source WHATEVER-PACKAGE
   rpm -i WHATEVER-PACKAGE.rpm
   rpmbuild -bp ~/rpm/SPECS/WHATEVER-PACKAGE.spec

(您的路径相当于~/rpm可能会发生变化; rpmbuild --showrc将告诉你在哪里)

此下载.src.rpm包,其中包含上游(原作者的)源(通常是压缩包),以及特定于操作系统的补丁;安装来源为~/rpm(或您的rpmbuild前缀);然后解包的源极和补丁应用到~/rpm/BUILD/WHATEVER-PACKAGE/

从那里,你可以做配置/让自己的步骤,与/usr/local前缀

当然,从RPM的只是安装要容易得多: - )

yum不知道你的手编译PHP版本什么。您可以通过使用rpm --nodeps和希望工程安装包或者旁路RPM依赖分辨率。

或安装在另一个目录中自己编译PHP版本,因此它可以与旧版本的百胜共存,所以大家都很开心(不知道这是可能的,我想这取决于你的应用程序是否使用硬编码路径到PHP或没有)。

或者,如果你是幸运的,第三方的库如 EPEL 或的 RPMForge的可能有一个新的PHP包,所以您不必自己编译。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top