我正在尝试在CentOS 5.4上将php 5.1升级到5.2
我用:
yum upgrade php
结果是这样(查看最后一部分):
[root@mail httpd]# yum update php Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: mirror.raystedman.net * base: mirrors.serveraxis.net * centosplus: mirrors.tummy.com * contrib: mirror.raystedman.net * extras: mirror.raystedman.net * updates: mirrors.netdna.com Setting up Update Process Resolving Dependencies --> Running transaction check --> Processing Dependency: php = 5.1.6-27.el5 for package: php-devel --> Processing Dependency: php = 5.1.6 for package: php-eaccelerator ---> Package php.x86_64 0:5.2.10-1.el5.centos set to be updated --> Processing Dependency: php-cli = 5.2.10-1.el5.centos for package: php --> Processing Dependency: php-common = 5.2.10-1.el5.centos for package: php --> Running transaction check --> Processing Dependency: php = 5.1.6 for package: php-eaccelerator ---> Package php-cli.x86_64 0:5.2.10-1.el5.centos set to be updated --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-xml --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-pdo --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-gd --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-ldap --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-mbstring --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-mysql --> Processing Dependency: php-common = 5.1.6-27.el5 for package: php-imap ---> Package php-common.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-devel.x86_64 0:5.2.10-1.el5.centos set to be updated --> Running transaction check --> Processing Dependency: php = 5.1.6 for package: php-eaccelerator ---> Package php-gd.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-imap.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-ldap.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-mbstring.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-mysql.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-pdo.x86_64 0:5.2.10-1.el5.centos set to be updated ---> Package php-xml.x86_64 0:5.2.10-1.el5.centos set to be updated --> Finished Dependency Resolution php-eaccelerator-5.1.6_0.9.5.2-4.el5.rf.x86_64 from installed has depsolving problems --> Missing Dependency: php = 5.1.6 is needed by package php-eaccelerator-5.1.6_0.9.5.2-4.el5.rf.x86_64 (installed) Error: Missing Dependency: php = 5.1.6 is needed by package php-eaccelerator-5.1.6_0.9.5.2-4.el5.rf.x86_64 (installed) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest The program package-cleanup is found in the yum-utils package. [root@mail httpd]#
使用–skip-broken有什么后果? 任何build议?
您的php-eaccelerator版本与您当前版本的PHP绑定。 通常情况下,这会自动更新,但我猜测这个软件包是手动安装的,不需要使用存储库,或者版本库没有可用于你想安装的新PHP的版本。
如果跳过 – 或者–exclude php-eaccelerator,PHP将会升级,但是这个模块可能不起作用。
这可能是非常好的,如果你可以find一个新版本的php-eaccelerator后安装分开。
删除默认的PHP与YUM删除PHP。 然后,你可以更新到PHP 5.3.x
百胜更新php53
这个选项在Centos 5.6中可用。 被释放。 (2011年4月)
我们都对RHEL / Centos默认的php(5.1.6)感到“沮丧”。 另外好主意是使用额外的回购PHP / MySQL更新(例如,Remi,Utter Ramblings,EPEL,CentOS ALT等)…
最好的祝福
–skip-broken选项将排除导致错误的软件包。 所以,如果你的情况下,失败依赖的包是PHP。 所以它会被排除。
当我遇到这个问题的时候,通常我会删除这个依赖包(不能更新,或者已经安装),然后做一些干净的事情,然后更新/安装我想要的东西。 如果一切顺利的话,我可以在rpm depos网站(那些: pkgs , rpm pbone , rpmfind )中查看 ,然后手动安装我删除的软件包。
希望这会帮助你。