软件包管理之RPM

Posted dugukeling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件包管理之RPM相关的知识,希望对你有一定的参考价值。

RPM,Redhat Package Manager,即为红帽公司为RHEL开发的专用包管理器,后来更改为RPM Package Manager,类似于GNU项目,使用递归命名,GNU is Not Unix

RPM包的安装

rpm -ivh [install-options] PACKAGE.rpm ...
     i:安装 v:显示详细过程 h:以#显示进度  
         [install-options]
              --test: 测试安装,但不真正执行安装,即dry run模式
              --nodeps:忽略依赖关系
              --replacepkgs:重新安装
              --force:强制安装
              --oldpackage:安装旧的包
              --nosignature: 不检查来源合法性
              --nodigest:不检查包完整性
              --noscripts:不执行程序包脚本
                     %pre: 安装前脚本--nopre
                     %post: 安装后脚本--nopost
                     %preun: 卸载前脚本--nopreun
                     %postun: 卸载后脚本--nopostun

RPM包的升级

rpm -Uvh PACKAGE.rpm ...   安装有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”
rpm -Fvh PACKAGE.rpm ...   安装有旧版程序包,则“升级”,如果不存在旧版程序包,则不执行升级操作

注意:不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核即可

包查询

rpm -q PACKAGE_NAME : 查询包是否安装
rpm -qa : 查询本机安装的所有包
rpm -qf FILE : 查看指定的文件由哪个程序包安装生成
rpm -qc PACKAGE_NAME : 查询程序的配置文件
rpm -qd PACKAGE_NAME : 查询程序的文档
rpm -qi PACKAGE_NAME : 查询程序的信息
rpm -ql PACKAGE_NAME : 查看指定的程序包安装后生成的所有文件
rpm -q --changelog PACKAGE_NAME : 查询rpm包的changelog
rpm -q --scripts PACKAGE_NAME : 查询程序包自带的脚本
rpm -qp PACKAGE.rpm : 针对尚未安装的程序包文件做查询操作,通常要结合 c,d,l,i等选项
rpm -q --provides PACKAGE_NAME : 列出指定程序包所提供的CAPABILITY
rpm -q --whatprovides CAPABILITY :查询指定的CAPABILITY由哪个包所提供
rpm -q --whatrequires CAPABILITY :查询指定的CAPABILITY被哪个包所依赖

包校验

rpm -V  PACKAGE_NAME

若无如何输出信息,则包完整,若有以下信息,则包被修改过

S : 表示文件大小是否被修改
M : 表示文件类型或权限被修改
5 : 表示文件MD5校验被修改,也就是文件内容被修改
D : 表示设备中的,代码是否改变
L : 表示文件路径是否改变
U : 表示文件的所有者是否改变
G : 表示文件的所属组是否改变
T : 表示文件修改时间是否被改变
P :  表示程序提供的能力是否改变

导入公钥,安装包不再有警告信息

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

查寻公钥包名并查看信息

[[email protected] ~]# rpm -qa "gpg-pubkey*"
gpg-pubkey-f4a80eb5-53a7ff4b

[[email protected] ~]# rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b

rpm数据库重建

rpm的数据库放置于 /var/lib/rpm 下

rpm --initdb : 初始化,如果事先不存在数据库,则新建之;否则,不执行任何操作
rpm --rebuilddb : 重建已安装的包头的数据库索引目录

 

 





























以上是关于软件包管理之RPM的主要内容,如果未能解决你的问题,请参考以下文章

程序包管理之rpm

Linux基础之rpm软件包yum管理rpm软件包

软件包管理之RPM

Linux程序包管理之rpm

Linux系列教程——Linux软件包管理之yum在线管理

Linux系列教程——Linux软件包管理之yum在线管理