欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

rpm卸载软件忽略循环依赖

  今天由于某些原因需要卸载掉服务器上的php软件,然后我使用下面命令显示出本机安装的所有和php相关的软件,如下:

iteblog$ rpm -qa | grep php
php-mysqlnd-5.6.25-0.1.RC1.el6.remi.x86_64
php-fpm-5.6.25-0.1.RC1.el6.remi.x86_64
php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
php-pecl-memcache-3.0.8-3.el6.remi.5.6.x86_64
php-pdo-5.6.25-0.1.RC1.el6.remi.x86_64
php-mbstring-5.6.25-0.1.RC1.el6.remi.x86_64
php-pear-1.9.4-4.el6.noarch
php-cli-5.6.25-0.1.RC1.el6.remi.x86_64
php-gd-5.6.25-0.1.RC1.el6.remi.x86_64
php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64
php-pecl-apcu-4.0.11-2.el6.remi.5.6.x86_64
php-common-5.6.25-0.1.RC1.el6.remi.x86_64
php-5.6.25-0.1.RC1.el6.remi.x86_64
php-mcrypt-5.6.25-0.1.RC1.el6.remi.x86_64

然后我一一把它们卸载掉,如下:

iteblog$ rpm -e php-mysqlnd-5.6.25-0.1.RC1.el6.remi.x86_64

一切都很正常,但是当卸载到php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64的时候出现以下的错误:

[iteblog@iteblog.com ~] $ rpm -e php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
error: Failed dependencies:
  php-pecl-jsonc(x86-64) is needed by (installed) php-common-5.6.25-0.1.RC1.el6.remi.x86_64

[iteblog@iteblog.com ~] $ rpm -e php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64
error: Failed dependencies:
  php-pecl-zip(x86-64) is needed by (installed) php-common-5.6.25-0.1.RC1.el6.remi.x86_64

很容易就可以看出php-pecl-jsonc和php-pecl-zip都被php-common-5.6.25-0.1.RC1.el6.remi.x86_64依赖,所有理所当然的想到先卸载php-common-5.6.25-0.1.RC1.el6.remi.x86_64,如下:

 
[root@iteblog.com ~] $ rpm -e php-common-5.6.25-0.1.RC1.el6.remi.x86_64
error: Failed dependencies:
  php(api) = 20131106-64 is needed by (installed) php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
  php(api) = 20131106-64 is needed by (installed) php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64
  php(zend-abi) = 20131226-64 is needed by (installed) php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
  php(zend-abi) = 20131226-64 is needed by (installed) php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64

当看到上面的错误信息的时候我只想说fuck!php-common居然又被php-pecl-jsonc和php-pecl-zip依赖,这岂不是变成了循环依赖了吗?这时候我想到了man命令,看到了rmp命令还有个--nodeps参数:

 
[root@iteblog.com ~] $ man rpm
........................这里省略了很多输出.....................

       --nodeps
              Don’t do a dependency check before installing or upgrading a package.

........................这里省略了很多输出.....................

这不就是卸载的时候忽略依赖检测吗?然后我使用下面命令顺利地卸载了上面三个软件包:

 
[root@iteblog.com ~] $ rpm --nodeps -e php-common-5.6.25-0.1.RC1.el6.remi.x86_64
[root@iteblog.com ~] $ rpm --nodeps -e php-pecl-zip-1.13.4-1.el6.remi.5.6.x86_64
[root@iteblog.com ~] $ rpm --nodeps -e php-pecl-jsonc-1.3.10-1.el6.remi.5.6.x86_64
[root@iteblog.com ~] $ rpm -qa|grep php

终于卸载干净了!有困难找man啊。

本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【rpm卸载软件忽略循环依赖】(https://www.iteblog.com/archives/1731.html)
喜欢 (2)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!