我在 centOS 服务器上安装了 php 5.1.6,并且我至少需要 5.3.2(但更愿意安装最新的可用 5.* 版本)。
如果我跑
yum update php
它说它将更新到 5.1.6-34.el5_8(我的是 5.1.6-27.el5_5.3)..... 这是什么鬼???
centOS 的可用软件包是否比当前版本落后那么多,还是因为 yum 默认只会在第二个点(或其他)之后的 subversion 内更新,而我需要告诉它给我一个更新的版本?如果是这样,我该怎么做?
答案1
您很可能正在运行旧版本的 Centos(5.5 或更早版本),其存储库中没有 PHP 5.2.x 或 5.3.x。您有两个选择:将 Centos 更新到较新的版本(5.6 是第一个带有 PHP 5.3 的版本)或使用http://iuscommunity.org/关于
答案2
是的,我记得在 CentOs 5.x 上获取新版本的 php 非常痛苦。
基本上,更新存储库中有一个 php53 包;
# cat /etc/redhat-release
CentOS release 5.8 (Final)
# repoquery -i php53
Name : php53
Version : 5.3.3
Release : 7.el5_8
Repository : updates
但是如果你运行类似这样的程序;
# yum provides php
php-5.1.6-32.el5.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)
php-5.1.6-34.el5_8.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)
您将会看到该php53
包实际上并不提供 php,这意味着安装它将破坏任何依赖于的包php
,尽管系统上有一个 php。
最后我使用了一个只包含单个提供行的 shim rpm,它是我在网上某处找到的,因为我的所有 php 要求都很简单。
替代方案正如@c2h5oh提到的,使用第三方重新打包的版本,(或升级到Centos 6.2 :-<)。
您可以看到使用以下命令替换所有将导致什么php
结果;php53
# rpm --whatrequires -V php
Unsatisfied dependencies for pastebin-0.60-4.el5.noarch: php
从最后一个命令的输出中您可以看到,就我而言,我没有使用任何需要php
重要的包,因此我只是强制--nodeps
删除了所有 php。
答案3
您可以使用在同一个事务中yum shell
执行remove
(of php-*
) 和install
(of ) 操作。php53-*
答案4
使用yum update
,然后yum upgrade
将 CentOS 升级到 5.8,然后重试yum update php