2014年9月10日星期三

Linux_087:常用命令之二十六:rpm

RPM(RedHat Packge Manager)是RedHat公司的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。
其中,-v是verbose,打印详细信息;-h是hash,用散列符显示进度。

常用参数说明:
(1)-ivh:安装软件包并显示安装进度。
(2)-Uvh:升级软件包。
(3)-qpl:列出RPM软件包内的文件信息[Query Package list]。
(4)-qpi:列出RPM软件包的描述信息[Query Package install packages]。
(5)-qf:查找指定文件属于哪个RPM软件包[Query File]。
(6)-qc:查询已安装软件的配置文件。
(7)-Va:校验所有的RPM软件包,查找丢失的文件[View Lost]。
(8)-e:删除软件包。

常用命令举例:

(1)查询是否安装了某软件包:# rpm -qa | grep oracle,输出如下:
oracle-xe-11.2.0-1.0.x86_64
这里,oracle-xe是软件包的名字,11.2.0是软件包的版本号,1.0是发行号,x86_64是软件包运行的硬件平台。
注意,grep命令大小写敏感,比如,# rpm -qa | grep mysql,只会输出:
mysql-workbench-community-6.1.7-1.el6.x86_64
而# rpm -qa | grep MySQL,才会输出:
MySQL-client-5.6.20-1.el6.x86_64
MySQL-server-5.6.20-1.el6.x86_64
MySQL-shared-compat-5.6.20-1.el6.x86_64
MySQL-shared-5.6.20-1.el6.x86_64
MySQL-devel-5.6.20-1.el6.x86_64

(2)卸载某软件包:# rpm -e oracle-xe

(3)一次卸载相关的软件包:# rpm -qa | grep MySQL | xargs rpm -e
会提示如下信息:
error: Failed dependencies:
    libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
    libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
    mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
这时,可以增加--nodeps参数,不管依赖关系,强行卸载: # rpm -qa | grep MySQL | xargs rpm -e --nodeps

(4)升级某软件包:# rpm -Uvh vim mysql-workbench-community-6.1.7-1.el6.x86_64
实际上升级其实分两步,先卸载,再安装,只不过用户看不到有关信息。
用户可以总是使用 -Uvh来安装软件包,即使没有安装过该软件包,也能正常运行。

参考文献:
1. http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html
2. xiaotianxin132.blog.163.com/blog/static/3511125020101026105338504/

没有评论: