Назад | Перейти на главную страницу

Установка php-xml жалуется на зависимость 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

Пытался yum clean all как предложил @Janne 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 была удалена из-за проблем с безопасностью, как описано в принятом ответе на другой вопрос. Это удаление вызывает несоответствие версий зависимостей и, следовательно, обнаруженную ошибку.

Задний план

Я хотел запустить Drupal 7 на машине CentOS 5.4. Поэтому мне понадобилась версия PHP 5.3.

Вот полные рабочие шаги по обновлению до PHP 5.3 с рабочими репозиториями по состоянию на 24 мая 2012 года (я предоставляю комментарии, перед которыми стоит знак # - они вам не нужны, только для вашей информации)

# 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.