Search code examples
phplinuxapachecentosmbstring

How do I install php-mbstring with missing dependency php-common which is already installed?


How do I get php-mbstring to recognize php-common?

I am trying to install the php module php-mbstring so I can install phpMyAdmin on PHP version 5.2.10.

Some info about my machine:
cpu: Intel(R) Xeon(R) CPU X5355 @ 2.66GHz, width: 64 bits
OS: centOS

Upon trying to install using yum, the installation fails due to a dependency. How ever the required dependency is already installed. Maybe there's a version conflict? Does the .386 at the end matter? Also why is the error in my log at the bottom describe a missing dll, shouldn't it be looking for a .so (not really sure what 'it' is here)?

already tried:

--skip-broken

--nodeps

changing yum mirror site in the .repo file

Installing using a downloaded rpm (I get the same error: need dependency) Here is my shell session including the yum install process and my apache error log:

[]$ yum install php-mbstring
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: yum.tamu.edu
 * base: centos.expedientevirtual.com
 * extras: dallas.tx.mirror.xygenhosting.com
 * rpmforge: mirror.us.leaseweb.net
 * updates: centos.expedientevirtual.com
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from RPMforge RPM Repository for Red Hat Enterprise 5 - dag
Finished
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-mbstring.i386 0:5.1.6-44.el5_10 set to be updated
--> Processing Dependency: php-common = 5.1.6-44.el5_10 for package: php-mbstring
--> Finished Dependency Resolution
php-mbstring-5.1.6-44.el5_10.i386 from updates has depsolving problems
  --> Missing Dependency: php-common = 5.1.6-44.el5_10 is needed by package php-mbstring-5.1.6-44.el5_10.i386 (updates)
Error: Missing Dependency: php-common = 5.1.6-44.el5_10 is needed by package php-mbstring-5.1.6-44.el5_10.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.



[]$ yum install php-common
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: yum.tamu.edu
 * base: centos.expedientevirtual.com
 * extras: ftp.osuosl.org
 * rpmforge: mirror.us.leaseweb.net
 * updates: centos.expedientevirtual.com
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from RPMforge RPM Repository for Red Hat Enterprise 5 - dag
Finished
Setting up Install Process
Package matching php-common-5.1.6-44.el5_10.i386 already installed. Checking for update.
Nothing to do

[]$ yum update php-common
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: yum.tamu.edu
 * base: centos.expedientevirtual.com
 * extras: centos.mirror.lstn.net
 * rpmforge: mirror.us.leaseweb.net
 * updates: centos.expedientevirtual.com
Reducing CentOS-5 Testing to included packages only
Finished
Excluding Packages from RPMforge RPM Repository for Red Hat Enterprise 5 - dag
Finished
Setting up Update Process
No Packages marked for Update


[]$ grep -r "mbstring" /etc/httpd/logs
/etc/httpd/logs/error_log.1:PHP Warning:
PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/php_mbstring.dll' 
- /usr/lib/php/modules/php_mbstring.dll:
cannot open shared object file: No such file or directory in Unknown on line 0

Solution

  • php-mbstring is not supported until php 5.3. You need to upgrade PHP to 5.3 first then mbstring can be installed.