RPM软件包管理

   RPM(RedHat PackageManager,红帽子软件包管理器)用于软件包的安装、查询、升级、校验、卸载,以及生成.rpm格式的软件包。RPM使用数据库的方式来记录已经安装的软件包信息,数据库存储在目录/var/lib/rpm中。


格式:
rpm 选项[软件名|软件包名]
参数:
-q  #软件名  查看指定的软件是否安装
-qa #查看系统内容已经安装了那些rpm包
-ql #软件名 查看软件包里文件都安装的了系统的什么目录下
-qc #软件名 查看软件包里的配置文件都安装到的什么目录下
-qf #文件名 查看文件由那个软件包安装
-i  #在系统中安装软件
-U  #在系统中升级软件
-e  #在系统中卸载软件
-h  #用 #(hash) 符显示 rpm 安装过程
-v  #详述安装过程
-a  #查询所有已安装的软件包
-f  #查询 文件所属软件包
-l  #显示软件包中的文件列表
-d  #显示被标注为文档的文件列表
-c  #显示被标注为配置文件的文件列表
-p  #表明对 RPM 包进行查询,通常和其它参数同时使用,如:
-qlp  #查询某个 RPM 包中的所有文件列表
-qip  #查询某个 RPM 包的内容信息
--excludedocs  #不安装软件包的文档文件
--prefix PATH  #将软件包安装到指定目录
--test  #只对安装进行测试,并不实际安装(通常用来看下需要的依赖项)
--replace[pkgs|files]  #当出现冲突时或想强制覆盖时可以使用
--nodeps  #不考虑依赖关系,强制安装
--force   #强制安装软件包


RHEL5中安装光盘中的包路径说明:

  • Server 提供服务的软件包

  • VT 提供虚拟化技术的软件

  • Cluster 提供集群功能的软件包

  • ClusterStorage  提供集群和存储功能的软件包

  • images   提供镜像文件和引导文件

  • isolinux  提供镜像文件和引导文件


安装软件

rpm -ivh package.rpm

强制安装(忽略依赖)

   RPM 中的默认安装规则是不允许同一个包多次安装的,也不允许降级安装。使用 --force 辅助参数将不考虑以上因素,强制安装 RPM 包。但是,--force 无法强制安装一个不满足系统依赖性关系的包 ( 此时需要用到 --nodeps 参数 ) 。

rpm -ivh --nodeps package.rpm
rpm -ivh --force package.rpm

远程安装RPM

rpm -Uvh ftp://user:pass@ftpserver/package.rpm

重新安装

   当要安装的软件包的某些文件已经在安装其他软件包时安装过了时,可以通过 --replacefiles参数来替换属于其他软件包的文件,如果安装RPM软件包发生冲突时,可以通过 --replacepkgs参数强制重新安装

rpm -ivh --replacepkgs package.rpm

升级软件包

rpm -Uvh package.rpm  #如此版本的软件包没安装 直接安装当前版本的软件包
rpm -Fvh package.rpm  #如此版本的软件没安装  当前版本的软件包装不上

卸载软件包

-e #卸载rpm 包
--nodeps #忽略包依赖关系卸载
--force  #强制卸载软件包
rpm -ev package
rpm -e package
rpm -e --nodeps package
rpm -e --force package

查询RPM包中包含的文件列表

rpm -qlp package

查询RPM包中包含的内容信息

rpm -qip package

查询系统中所有已安装RPM包

rpm -qa

查询是否安装软件包

rpm -q package

查看软件包文件安装在系统的目录

rpm -ql package

查看软件包配置文件安装在系统的目录

rpm -qc package

查看文件是由那个RPM包安装

rpm -qf package

系统内所有被改动过文件

rpm -Va

查看指定的文件是否被改动过

rpm -Vf filename

查看指定软件提供的文件那些被改过

rpm -V package

验证软件包

rpm -Vp package

S ---文件大小不同
M ---文件权限和文件类型不同
5 ---MD5检验码不同
D ---设备的标识号不同
L ---文件的链接路径不同
U ---文件的所有者不同
G ---文件的所属组不同
T ---文件的修改时间不同

手动更新rpm包的数据库文件

rpm --initdb

查询RPM包的依赖关系

rpm -qRp package_a.rpm

验证RPM签名

   可以使用 --import 导入与软件同时发布的 GPG KEY, 接着使用 -K 命令来验证包的安全性,如:

rpm --import pub_ibm_lotus_notes.gpg
rpm -K ibm_lotus_notes-8.5.i586.rpm
返回信息 :
ibm_lotus_notes-8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OK

重构RPM数据库

   如果底层数据库损坏,RPM 将无法正常使用。此时最常用的解决方法是重构数据库:

rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb

查询RPM包的安装时间

rpm -qa --last

软件包文件提取

#解压指定文件到当前目录
rpm2cpio   /../...rpm |cpio �Cidv   ./../..

查询软件包帮助文档

rpm -qc package









你可能感兴趣的:(linux)