Loading... <p>前言<br /> RPM(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。</p> <p>rpm的命名格式:<br /> name-version-release.arch.rpm<br /> version: major.minor.release,同源代码<br /> release: rpm自身的发行号,与程序源码的发行号无关,仅用于标识对rpm包不同制作的修订;<br /> 同时,release还包含此包适用的OS<br /> 例如:bash-4.2.3-3.centos5<br /> arch: 适用于的硬件平台,<br /> x86: i386, i486, i586, i686等;<br /> x86_64: x86_64<br /> powerpc: ppc<br /> noarch: 依赖于虚拟机<br /> 示例:bash-4.2.3-3.centos5.x86_64.rpm</p> <p>获取rpm包的途径:<br /> 1、发行的光盘或站点服务器<br /> 镜像:<br /> http://mirrors.163.com<br /> http://mirrors.sohu.com<br /> 2、项目的官网<br /> 源代码、rpm包<br /> 3、很多第三方机构或个人制作并公开发布许多rpm包<br /> http://rpmfind.net<br /> http://rpm.pbone.net<br /> 可靠的途径:EPEL<br /> </p> <p>rpm的命令格式::<br /> rpm [option…] PACKAGE_FILE</p> <p>rpm包管理器:<br /> 1、打包<br /> 2、安装<br /> 3、卸载<br /> 4、升级<br /> 5、信息查看<br /> 6、校验<br /> 7、数据库管理</p> <p>1、打包</p> <p> 略……</p> <p>2、安装</p> <pre class="brush:bash;toolbar:false"> -i:安装指定包 -{v|vv|vvv}:显示详细安装信息,v字母越多显示越详细 -h:显示进度条 --nodeps:忽略依赖关系 --test:仅做测试,不执行安装 --replacepkgs:重新安装</pre> <p>3、卸载</p> <pre class="brush:bash;toolbar:false">-e:卸载包 --nodeps:忽略依赖关系 如果被其它包所依赖: 1、将依赖于此包的所有包一并卸载 2、忽略依赖关系;能卸载,但依赖于此包程序包可能会运行不正常; 3、如果包的配置文件安装后曾被改动过,卸载时,此文件将不会卸载,而是被重命名并保留</pre> <p>4、升级</p> <pre class="brush:bash;toolbar:false"> -U:升级或安装 -F:纯升级,前提是得有老版本 --force:强制升级</pre> <p></p> <p>5、信息查看</p> <pre class="brush:bash;toolbar:false"> -q:查询包是否已安装 常用查询选项组合: -qa:列出所有已安装的包 -qi:列出某已安装包的描述信息 -ql:列出某已安装包生成了哪些文件 -qc:列出某已安装包生成了哪些配置文件 -qd:列出某已安装包生成了哪些帮助文件 -qf:/path/to/some_file:查询某文件是由哪个包生成的 -qs:查询某已安装包内文件的状态,有三种:normal、not installed、replaced -qp:查询某未安装包的相关信息 -qpi:列出某未安装包的描述信息 -qpl:列出某未安装包生成了哪些文件 -qpc:列出某未安装包生成了哪些配置文件 -qpd:列出某未安装包生成了哪些帮助文件 -q --scripts package_name:列出某已安装包的相关脚本 脚本有四类: preinstall:安装前脚本 postinstall: 安装后脚本 preuninstall: 卸载前脚本 postuninstall: 卸载后脚本</pre> <p>6、校验</p> <p> 包制作者制作完成之后会附加数字签名于包上;</p> <p> 来源合法性,包的完整性</p> <p> 包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。<br /> 验正过程:<br /> 前提:必须有可靠机制获取到包制作者的公钥;<br /> ① 使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;<br /> ② 使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作比对,相同,则意味着完整性没问题;</p> <pre class="brush:bash;toolbar:false">rpm --import:导入公钥,导入后即可自动检查 rpm -qa gpg-pubkey:查看所有已导入的公钥 rpm -qi gpg-pubkey-NAME:显示密钥的详细信息 rpm --checksig package:手动检测包的合法性及完整性 rpm -K package:手动检测包的合法性及完整性 rpm -K --nodigest:不检查包完整性 rpm -K --nosignature:不检查来源合法性 rpm -V package_name S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ 某属性无变化,显示为.</pre> <p></p> <p>7、数据库管理:</p> <p> 路径:/var/lib/rpm,保存所有包相关信息,如:包名、包组、依赖关系、公钥文件等</p> <p> rpm –initdb:初始化,如果没有库,会新建一个,如果有则不重建</p> <p> rpm –rebuiddb:重建</p> <p> </p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信