1

How do I force php-xml to see the already installed dependency?

sudo yum install php-xml

complains about:

php-common = 5.1.6-34.el5_8

but running 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 /]#

Update

I have tried the suggested clean-ups and reran the commands. I also ran yum install php-common again, first as it was the dependency then 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 /]#

Update 2

Tried yum clean all as @Janne Pikkarainen suggested but still failed (I hadn't tried yum clean all but had tried the other things suggested before that)

[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 /]#

Then tried re-running the commands, first yum install php-xml - failed, perhaps the dependency first then? so, yum install php-common - already installed as we've seen before, so again yum install php-xml - still failed :-

[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 /]#

Update 3

It would appear that the version I have of php-common-5.2.10-1.el5.centos is newer than the one being asked for as a dependency of 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 /]#

So how would I force php-xml to use the later verion I already have?

(Spawned off this question and asked separately here: How to force CentOS yum to use a later version of a package dependency already installed (php-common as a dependency of php-xml) )

2 Answers 2

2

Did you try the commands yum asked you to run to fix the situation?

package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest

Try those and after that see if you can install php-xml.

EDIT: Just for kicks, run yum clean all and after that try to reinstall php-xml.

11
  • Yes I had tried that already - I have tried it again and updated the question. Still same outcome though but thanks anyway. May 23, 2012 at 9:54
  • Do you think it is because php-common-5.1.6-34.el5_8.i386 already installed has the .i386 on the end whereas what's been asked for php-common = 5.1.6-34.el5_8 is needed doesn't have the .i386 suffix? May 23, 2012 at 9:57
  • OK, edited my reply a bit. May 23, 2012 at 9:57
  • what did you edit? The commands changed? I just retried your answer but the same outcome, still the problem, this is the same as what I had already tried. May 23, 2012 at 9:59
  • Ahh didn't see yum clean all trying that now... May 23, 2012 at 10:00
2

The solution is the accepted answer in:

How to force CentOS yum to use a later version of a package dependency already installed (php-common as a dependency of php-xml)

In summary: move to php5.3.

Reason: support for php5.2 as been removed owing to security issues as explained in that other question's accepted answer. This removal causes mismatch of the versions of the dependencies and therefore the error seen.

Background

I wanted to run Drupal 7 on a CentOS 5.4 machine. So I needed 5.3 version of PHP.

Here are the full working steps to upgrade to PHP 5.3 with working repositories as of May 24 2012 ( I provide comments preceded by # - you don't need these, just for your info)

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .