Total Pageviews

Saturday 13 October 2012

CentOS vps下,安装包的依赖问题


php-mysql-5.1.6-27.el5_5.3.i386 from base has depsolving problems
--> Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-mysql-5.1.6-27.el5_5.3.i386 (base)
php-pdo-5.1.6-27.el5_5.3.i386 from base has depsolving problems
--> Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-pdo-5.1.6-27.el5_5.3.i386 (base)
Error: Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-pdo-5.1.6-27.el5_5.3.i386 (base)
Error: Missing Dependency: php-common = 5.1.6-27.el5_5.3 is needed by package php-mysql-5.1.6-27.el5_5.3.i386 (base)

如出现类似上面的依赖问题,解决方法目前我知道有三种
1.使用package-cleanup --dupes && package-cleanup --problems命令(无效的话尝试下面方法)
若提示#package-cleanup: command not found
请执行yum install yum-utils.noarch
2.启用该源安装 yum install --enablerepo=webtatic 需要安装的软件包名 (建议使用)
3.或者yum remove 依赖包(谨慎使用)

删除依赖包的时候会同时删除依赖于它的软件包,所以删除依赖包后需要重新安装这些软件包(包括依赖包)。一定谨慎使用。比如通过命令:yum remove openssl -y来卸载openssl,该命令会同时卸载150个依赖包,其中包括wget,yum,openssh这三个重要的软件包,这样你的centos系统再也下载不了东西(因为wget被卸载了),再也安装不了东西(因为yum被卸载了),再也无法重新登录你的linux系统(因为openssh被卸载了),基本上你的centos系统是彻底瘫痪了,除了重装linux系统,别无他途。所以在centos系统下,用yum remove卸载软件时建议不要加上-y参数,以便你人工确认它会同时卸载哪些重要的依赖包而确定是否操作下去。