linux下yum与rpm的关系-linux下使用rpm,yum,uninstall卸载php等软件

2018-07-18 18:05:01 8414


[root@localhost lua]# php -v
PHP 5.3.3 (cli) (built: Nov 22 2013 10:59:29) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
[root@Kermit ~]# rpm -qa | grep php 
php-cli-5.3.3-26.el6.x86_64
php-common-5.3.3-26.el6.x86_64
[root@Kermit ~]# rpm -e php-cli-5.3.3-26.el6.x86_64
[root@Kermit ~]# rpm -e php-common-5.3.3-26.el6.x86_64
[root@Kermit ~]# rpm -qa | grep php                   
[root@Kermit ~]# php -v
-bash: php: command not found

    虽然之前也看了rpm,但实际我用rpm用得很少,多是用yum。rpm和yum到底是什么关系?经查:


    rpm是RPM Package Manager(RPM软件包管理器)的缩写,是由红帽公司开发的软件包管理方式,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准。使用rpm可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum会从一个资源库(repository)中下载软件包,并经过完全依赖解析来安装它,所以每次运行yum install的时候会看到安装一堆相关软件;而rpm则需要先下载好一个rpm文件然后进行安装,并且如果rpm程序发现缺少了一个依赖,就会报错并退出。

    对比可见还是yum更好用。回到几个疑惑的问题:

    1:为什么使用yum remove卸载不了,而需要使用rpm卸载呢?这里需要首先判断软件是通过什么方式安装的,执行

rpm -q php #如果此命令返回php版本,则是rpm安装;如不返回php版本则是二进制安装。

    2:卸载有没有顺序?有的。使用

rpm –qa | grep php #此命令是把php相关的包都列出来,而卸载最好从最下面的一个包开始,直到卸载掉第一个为止。

#注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包即可。


如果实在实在有卸载不掉的包,可以增加—nodeps这个参数来卸载,比如我们卸载php-4.3.4-11,实在卸不掉了。就用:

    rpm -e php-4.3.4-11 --nodeps(或 rpm -e --nodeps php-4.3.4-11)

    上面提过了两种卸载的方法,一个是yum remove,另一个是rpm -e.实际还有一个卸载方式,使用编译安装make 安装软件(清除编译过程中生成的目标模块 make clean)。使用make install安装之后,如果要卸载可以使用:
make uninstall

    其它:在最上面执行的脚本中可以看到,前后的hostname被我改掉了,要修改这个需要修改配置文件:/etc/sysconfig/network配置文件HOSTNAME=值,改完后需要重启服务器。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: