今天由于某些原因需要卸载掉服务器上的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_64和php-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啊。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190726.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有