php-xml install 抱怨依賴 php-common 但這已經安裝(CentOS)
如何強制 php-xml 查看已安裝的依賴項?
sudo yum install php-xml
抱怨:
php-common = 5.1.6-34.el5_8
但執行
yum install php-common
php-common-5.1.6-34.el5_8.i386 already installed [root@dtsrvishvt2 /]# sudo yum install php-xml Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.manchester.icecolo.com * extras: mirrors.manchester.icecolo.com * updates: mirrors.manchester.icecolo.com Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-xml.i386 0:5.1.6-34.el5_8 set to be updated --> Processing Dependency: php-common = 5.1.6-34.el5_8 for package: php-xml --> Finished Dependency Resolution php-xml-5.1.6-34.el5_8.i386 from updates has depsolving problems --> Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) Error: Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) 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@dtsrvishvt2 /]# yum install php-common Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.tudelft.nl * extras: mirrors.coreix.net * updates: mirrors.coreix.net Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Package matching php-common-5.1.6-34.el5_8.i386 already installed. Checking for update. Nothing to do [root@dtsrvishvt2 /]#
更新
我已經嘗試了建議的清理並重新執行了命令。我也再次跑
yum install php-common
了,首先因為它是依賴然後yum install php-common
。[root@dtsrvishvt2 /]# package-cleanup --problems Setting up yum Reading local RPM database Processing all local requires No problems found [root@dtsrvishvt2 /]# package-cleanup --dupes Setting up yum [root@dtsrvishvt2 /]# rpm -Va --nofiles --nodigest [root@dtsrvishvt2 /]#
更新 2
按照@Janne
yum clean all
Pikkarainen 的建議嘗試但仍然失敗(我沒有嘗試過yum clean all
但在此之前嘗試過其他建議)[root@dtsrvishvt2 /]# yum clean all Loaded plugins: fastestmirror Cleaning up Everything Cleaning up list of fastest mirrors [root@dtsrvishvt2 /]# yum install php-xml Loaded plugins: fastestmirror Determining fastest mirrors * base: centos.mirroring.pulsant.co.uk * extras: centos.mirroring.pulsant.co.uk * updates: centos.mirroring.pulsant.co.uk addons | 1.9 kB 00:00 addons/primary_db | 1.1 kB 00:00 base | 1.1 kB 00:00 base/primary | 967 kB 00:00 base 2725/2725 c5-testing | 1.9 kB 00:00 c5-testing/primary_db | 1.5 MB 00:02 extras | 2.1 kB 00:00 extras/primary_db | 169 kB 00:00 updates | 1.9 kB 00:00 updates/primary_db | 345 kB 00:00 Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-xml.i386 0:5.1.6-34.el5_8 set to be updated --> Processing Dependency: php-common = 5.1.6-34.el5_8 for package: php-xml --> Finished Dependency Resolution php-xml-5.1.6-34.el5_8.i386 from updates has depsolving problems --> Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) Error: Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) 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 [root@dtsrvishvt2 /]#
然後嘗試重新執行命令,首先
yum install php-xml
- 失敗,然後可能是依賴關係?所以,yum install php-common
- 已經像我們之前看到的那樣安裝了,所以再次yum install php-xml
- 仍然失敗:-[root@dtsrvishvt2 /]# yum install php-xml Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirroring.pulsant.co.uk * extras: centos.mirroring.pulsant.co.uk * updates: centos.mirroring.pulsant.co.uk Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-xml.i386 0:5.1.6-34.el5_8 set to be updated --> Processing Dependency: php-common = 5.1.6-34.el5_8 for package: php-xml --> Finished Dependency Resolution php-xml-5.1.6-34.el5_8.i386 from updates has depsolving problems --> Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) Error: Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) 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 [root@dtsrvishvt2 /]# yum install php-common Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirroring.pulsant.co.uk * extras: centos.mirroring.pulsant.co.uk * updates: centos.mirroring.pulsant.co.uk Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Package matching php-common-5.1.6-34.el5_8.i386 already installed. Checking for update. Nothing to do [root@dtsrvishvt2 /]# yum install php-xml Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirroring.pulsant.co.uk * extras: centos.mirroring.pulsant.co.uk * updates: centos.mirroring.pulsant.co.uk Reducing CentOS-5 Testing to included packages only Finished Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-xml.i386 0:5.1.6-34.el5_8 set to be updated --> Processing Dependency: php-common = 5.1.6-34.el5_8 for package: php-xml --> Finished Dependency Resolution php-xml-5.1.6-34.el5_8.i386 from updates has depsolving problems --> Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) Error: Missing Dependency: php-common = 5.1.6-34.el5_8 is needed by package php-xml-5.1.6-34.el5_8.i386 (updates) 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 [root@dtsrvishvt2 /]#
更新 3
看來我擁有的
php-common-5.2.10-1.el5.centos
版本比作為依賴項要求的版本更新php-xml
,php-common = 5.1.6-34.el5_8
[root@dtsrvishvt2 /]# rpm -qa |grep php php-ldap-5.2.10-1.el5.centos php-common-5.2.10-1.el5.centos php-5.2.10-1.el5.centos php-mcrypt-5.2.9-2.el5.centos.3 php-pdo-5.2.10-1.el5.centos php-cli-5.2.10-1.el5.centos php-mysql-5.2.10-1.el5.centos [root@dtsrvishvt2 /]#
那麼我將如何強制 php-xml 使用我已經擁有的更高版本?
(產生了這個問題並在這裡單獨詢問:如何強制 CentOS yum 使用已安裝的軟體包依賴項的更高版本(php-common 作為 php-xml 的依賴項))
解決方案是接受的答案:
如何強制 CentOS yum 使用已安裝的包依賴的更高版本(php-common 作為 php-xml 的依賴)
總結:遷移到 php5.3。
原因:由於安全問題,已刪除對 php5.2 的支持,如其他問題已接受的答案中所述。此刪除會導致依賴項版本不匹配,從而導致出現錯誤。
背景
我想在 CentOS 5.4 機器上執行 Drupal 7。所以我需要 5.3 版本的 PHP。
以下是截至 2012 年 5 月 24 日使用工作儲存庫升級到 PHP 5.3 的完整工作步驟(我提供了以 # 開頭的評論 - 您不需要這些,僅供參考)
# Comment: sites like http://www.computingunplugged.com/issues/issue201102/00002619001 # provide a good start for remedying the problem whereby we need 5.3 on CentOS 5.4 to run Drupal 7. But although their packages worked at the time, the links are now outdated, and updates to these are below. # comment: (as of May 2012 - the following work, the reason for failures was use of 1) older packages no longer on the server and 2) change of address of one of the servers to dl.fedoraproject.org/pub/epel (credit to: http://osdir.com/ml/centos/2012-03/msg00057.html ) rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-10.ius.el5.noarch.rpm yum erase php php-pear php-mysql php-cli php-common yum install php53u php53u-pear php53u-cli php53u-common php53u-gd yum install php53u-mbstring php53u-mcrypt php53u-mysql php53u-soap yum install php53u-xml php53u-xmlrpc php53u-bcmath # After doing the above, php -v shows 5.3.x But on attempting to install Drupal 7 you may get complaint of something "Your PHP installation is too old 5.1.6 Drupal requires at least PHP 5.2.4. See the system requirements page for more information." and php.info shows the same # The remedy is to simply restart your apache server service httpd restart # credit to following for suggesting service httpd restart :- # https://serverfault.com/a/207806/29205 # https://serverfault.com/questions/207762/centos-updating-php-via-yum-doesnt-change-the-version-apache-uses # Drupal 7 install on CentOS 5.4 worked after applying the above steps # If your MySQL server is not running (check by ps -ef | grep mysql ) then you can run: /etc/init.d/mysqld # ...to start it, and to make sure it starts when the machine is restarted or cold booted: chkconfig mysqld on
您是否嘗試過
yum
要求您執行以解決問題的命令?package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest
試試這些,然後看看你是否可以安裝
php-xml
.**編輯:**只是為了踢,執行
yum clean all
,然後嘗試重新安裝php-xml
。