RPM是一种用于互联网下载包的打包及安装工具,它包含在一些Linux分发版中。使用rpm安装软件往往比使用源码安装更加方便快捷。

      下面,我们通过rpm包的安装,卸载,升级,查询,校验,及数据库重建了解rpm的使用。

-------------------------------------------------------------------------------------------------------------------------------------

1.rpm包的安装

    [常用选项]

-i         install 安装
-v         显示详细信息
-vv        显示更加详细的信息
-h         使用#显示安装进度
--test     仅测试是否可以安装,但是不进行安装
--nodeps   不考虑依赖关系进行安装,可能造成软件无法正常使用
--replacepkgs    重新安装软件包,如原有配置文件存在,可能无法覆盖
常用组合:    rpm -ivh

    [示例]

[root@localhost Packages]# rpm -ivh zsh-4.3.10-4.1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]   
1:zsh                    ########################################### [100%]

2.rpm包的卸载

    [常用选项]

-e        程序卸载--nodeps  不卸载相关依赖包,可能导致其他软件无法使用

    [示例]

[root@localhost Packages]# rpm -e zsh

3.rpm包的升级

    [常用选项]

-U        软件存在则升级软件,不存在则安装软件
-F        软件存在则升级软件,不存在则不做任何动作
-v        显示详细信息
-h        使用#显示安装进度

    [示例]

[root@localhost ~]# rpm -Uvh zsh-4.3.10-7.el6.x86_64.rpm
 warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
 Preparing...                ########################################### [100%]   
 1:zsh                    ########################################### [100%]
[root@localhost ~]# rpm -e zsh #卸载后通过-U可以安装
[root@localhost ~]# rpm -Uvh zsh-4.3.10-7.el6.x86_64.rpm
 warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]   
1:zsh                    ########################################### [100%]
[root@localhost ~]# rpm -e zsh #卸载后通过-F不会安装
[root@localhost ~]# rpm -Fvh zsh-4.3.10-7.el6.x86_64.rpm
 warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

4.rpm包的查询

    [常用选项]

-q PKG_NAME :查询某软件是否已经安装
-qa         :查询所有已安装的软件包列表
-qi         :查询包的描述信息-ql PKG_NAME:查询指定软件包所生成的文件列表
    -qc     :查询指定软件包所生成的配置文件
    -qd     :查询指定软件包所生成的文档文件    
    -q --scripts :查询指定软件包所生成的文档        
    脚本有4类:	
        preinstall :安装前执行的脚本	
        postinstall:安装后执行的脚本	
        preuninstall:卸载前执行的脚本	
        postuninstall:卸载后执行的脚本
-qf FILE :查询某文件是由哪个软件包生成的
#在使用-qi,-qc,-ql,-qd时,加入-p选项可以查看指定rpm包的相关信息,而非已安装的软件包信息

    [示例]

[root@localhost ~]# rpm -q zshzsh-4.3.10-7.el6.x86_64
[root@localhost ~]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
[root@localhost ~]# rpm -qpc zsh-4.3.10-7.el6.x86_64.rpm
 warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

5.rpm包的校验操作

    [常用选项]

-V PKG_NAME:校验指定包的配置文件是否发生更改
	S 大小	
	M 权限,文件类型	
	5 MD5	
	D 设备号	
	L 路径	
	U 属主	
	G 属组	
	T 修改时间	
	P 能力	
	. 未发生改变

    [示例]

#在指定文件中加入部分注释信息后执行如下命令
[root@localhost ~]# rpm -V zsh 
S.5....T.  c /etc/skel/.zshrc #说明指定文件的大小,MD5修改时间发生了变化

6.rpm包的来源合法性及完整性校验

    [常用选项]

--import            导入公钥文件
-qa gpg-pubkey*     查询已导入的公钥文件
-qi gpg-pubkey-NAME 查询指定密钥的详细信息
-K PKG_FILE         查询指定包文件校验是否成功,安装过程中会自动进行校验

    [示例]

[root@localhost ~]# rpm --import /test/RPM-GPG-KEY-redhat-release

7.rpm数据库的重建

--initdb        如果数据库文件不存在则新建,存在则退出
--rebuilddb     直接覆盖原有数据库文件