RPM 是 Linux Like 操作系统(RHEL、CentOS 和 Fedora)上的开源包管理器,是Red Hat Package Manager的缩写,从名字就可以看出最初是红帽系统用于管理软件的工具。
RPM 命令用于构建、安装、查询、验证、更新和删除单个软件包。
RPM 实用程序仅适用于以 .rpm 格式构建的包。
RPM 文件不仅包含软件文件,还包含有关该软件的深入信息,例如它的名称、发布时间、进行了哪些更改以及它依赖哪些其他软件包才能工作。
本地 RPM 数据库维护在 /var/lib/rpm 中。
数据库存储有关已安装包的信息,例如文件属性和包准备工作。
RPM命令语法:
# rpm [options] [rpmfile]
主要 RPM 选项(options):
- 安装:rpm -i, –install
- 升级:rpm -U, –upgrade
- 清洁 : rpm -F, –freshen
- 擦除:rpm -e,-erase
- 查询:rpm -q, –query
- 输出选项:-v、-h
RPM 文件格式:
name-version-release.architecture.rpm
其中 version 是指项目的开源版本,而 release 是指对开源代码的 Red Hat 内部补丁。
体系结构显示有关体系结构(32 位或者 64 位)的信息。
rpm 是其他程序的后端,例如 yum 或者 system-config-packages。
这些工具提供了显着的优势,例如自动依赖项解析。
RPM命令示例
示例 1:安装 RPM 包。
# rpm -ivh vim-enhanced-7.2.411-1.8.el6.x86_64.rpm Preparing... ########################################### [100%] 1:vim-enhanced ########################################### [100%]
其中:
-i : 安装一个包
-v : 详细输出
-h :在解压包存档时打印散列标记。
示例2:安装无依赖的rpm包。
# rpm -ivh --nodeps vim-enhanced-7.2.411-1.8.el6.x86_64.rpm
示例 3:删除/擦除 rpm 包。
# rpm -ev vim-enhanced
示例 4:使用 -U 和 -F 选项升级 RPM 包。
rpm 可以使用 -U (–upgrade) 命令行选项升级已安装的软件,升级时,系统上的原始软件包(配置文件除外)将被删除并安装一个新软件包。
原始安装的配置文件以“.rpmsave”扩展名保存。
刷新几乎与升级相同,除非系统上尚未安装命令行上指定的软件包。
使用 -U 升级时,无论是否已安装该软件包,都会安装该软件包。
但是在刷新的情况下,如果尚未安装该软件包,则该软件包将被忽略。
语法:
# rpm -Uvh [rpm-file]
例子:
# rpm -Uvh mozilla-mail-1.7.6-12.i586.rpm
语法:
# rpm -Fvh [rpm-file]
例子:
# rpm -Fvh mozilla-mail-1.7.6-12.i586.rpm
示例 5:显示所有已安装的软件包。
# rpm -qa # rpm -qa | less
示例 6:显示包的配置文件列表。
语法:
# rpm -qc [package-name]
示例 7:找出文件属于哪个包或者找到哪个包拥有该文件。
# rpm -qf [/path/to/file]
示例 8:显示安装包的信息:版本和描述。
# rpm -qi [package name]
示例 9:显示所有最近安装的 RPM 的列表。
# rpm -qa --last # rpm -qa --last | less
示例 10:安装前检查 rpm 文件的依赖关系。
# rpm -qpR [.rpm-file]
其中:
-q :查询一个包。
-p :列出此包提供的功能。
-R :列出此包所依赖的功能。
示例 11:验证 RPM 包。
验证包是指将包的已安装文件信息与 rpm 数据库进行比较。
-Vp(验证包)用于验证包。
# rpm -Vp vim-enhanced-7.2.411-1.8.el6.x86_64.rpm
验证所有 rpm 包:
# rpm -Va
示例 12:导入 RPM GPG 密钥。
要验证 RHEL/CentOS rpm 包,首先,我们必须导入 GPG 密钥,使用以下命令导入密钥。
它将导入 CentOS 6 GPG 密钥。
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6