软件包管理之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的主要内容,如果未能解决你的问题,请参考以下文章