RPM Package Manager
RPM软件包格式是Red Hat公司首先提出并使用的,目前广泛应用在各类Linux发行版本中。
RPM建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系 。
其中硬件平台通常为“i386”、“i586”、“i686”或“noarch”(不区分硬件架构)等。
有些软件包的文件名中还会增加所适用的操作系统信息,例如“wget-1.10.2-7.el5.i386.rpm”。
查询已安装的RPM软件信息
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
查询文件或目录是由哪个软件包安装的
格式:rpm -qf 文件或目录名
PS:1、使用“-q”选项时实际上调用了“/usr/bin/rpmquery”程序完成查询工作
2、包查询主要包括两种情况:
1)查询系统中已经安装的软件包信息; 2)查询尚未安装的RPM包文件的信息
对于“-qa”查询选项,命令参数(即软件包名)是非必须的;一般查询时,软件名不需要指定版本号
查询未安装的RPM包文件
格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
•-qpi:通过.rpm包文件查看该软件的详细信息
•-qpl:查看.rpm安装包内所包含的目录、文件列表
•-qpc:查看.rpm安装包内包含的配置文件列表
•-qpd:查看.rpm安装包内包含的文档文件列表
安装或升级RPM软件
格式:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
•-i:安装一个新的rpm软件包
•-U:升级某个rpm软件,若原本未装,则进行安装
•-F:更新某个rpm软件,若原本未装,则放弃安装
如果使用rpm安装软件的时候,出现“warning:……NOKEY……”的警告信息是由于没有导入RedHat提供的公钥所致,但并不影响安装效果,可以忽略,如果需要导入公钥文件,可以参考如下步骤(以后从RHEL5光盘中安装软件时,就不会再出现警告提示了):
[root@localhost ~]#cd /media/cdrom
[root@localhostcdrom]#rpm --import RPM-GPG-KEY-redhat-release
卸载指定的RPM软件
格式:rpm -e 软件名
辅助选项
--force:强制安装所指定的rpm软件包
--nodeps:安装、升级或卸载软件时,忽略依赖关系
eg:rpm -qa|grep yum |xargs rpm -e --nodeps
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息
RPM数据库:用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预
当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且Linux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包,这时可以使用—rebuildbd或—initdb重建RPM数据库
重建RPM数据库
[root@localhost~]# rpm --rebuilddb
或
[root@localhost~]# rpm --initdb
在Linux/Unix应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性。对于用户来说,可以利用软件官方提供的公钥文件,自动对下载的软件包进行验证,如果在安装软件时出现验证失败的提示,则表示该软件包可能已经被非法篡改
导入验证公钥
[root@localhost~]# rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release