rpm

RPM软件包管理器


语法格式

安装、升级、更新、删除、查询与验证软件包等

rpm -i [install-options] pkgs
rpm -U [install-options] pkgs
rpm -F [install-options] pkgs
rpm -e [--allmatches] [--nodeps] [--noscripts] [--test] pkgs
rpm -q [query-options] [pkg]
rpm -V [verify-options] [pkg]
rpm -K [--nosignature] [--nodigest] pkgs

其他功能

rpm --import pubkeys
rpm {--initdb|--rebuilddb} [-v] [--dbpath dir] [--root dir]
rpm {--addsign|--resign} pkgs
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} pkgs
rpm [-?|--help] [--version]

安装选项

[--aid] [--allfiles] [--excludepath oldpath] [--excludedocs] [--force]
[-h] [--ignoresize] [--ignorearch] [--ignoreos] [--includedocs]
[--justdb] [--nodeps] [--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers] [--oldpackage] [--percent]
[--prefix newpath] [--relocate oldpath=newpath] [--replacefiles]
[--replacepkgs] [--test]

查询选项

[-acdilRs] [--changelog] [--dump] [-f file] [--filesbypkg] [--fileid md5]
[-g grp] [--hdrid sha1] [--last] [-p pkgs] [--pkgid md5] [--provides]
[--scripts] [--triggers]

验证选项

[-a] [-f file] [--nodeps] [--nofiles] [--noscripts] [--nodigest]
[--nosignature] [--nolinkto] [--nofiledigest] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev] [-p pkgs]

命令简介

rpm是一个强有力的软件包管理工具,用于建立、安装、查询、验证、升级或删除软件包。一个软件包主要由档案文件和用于档案文件安装与删除的元数据组成。元数据包括脚本、软件包的文件属性和描述信息等。软件包可以分为两种类型:二进制软件包(用于封装需要安装的软件)和源代码软件包(其中包含源代码和生成二进制软件包的必要工具)。

在运行rpm命令时,必须选取安装、升级、更新、删除、查询和验证等功能选项之一。然后从通用选项或相应的选项中选取必要的辅助选项,实现软件包的维护。

在上述语法格式中,pkg是单个软件包,pkgs可以是一个或一组RPM格式的二进制软件包。指定的软件包可以是ftp或http格式的URL,如ftp://user:password@host:port/path/to/ package.rpm。如果省略了密码,FTP服务器将会提示用户输入密码。如果用户名与密码均省略,意味着采用匿名方式访问FTP服务器。在指定ftp或http URL的情况下,安装前首先需要下载软件包。

命令选项(功能选项)

-i, --install  安装新的软件包。

-F, --freshen  更新系统中已安装的软件包。

-U, --upgrade  升级软件包。其功能相当于安装(“-i”选项)与更新(“-F”选项)的组合:更新系统中已安装的软件包;如果指定的软件包尚未安装,则安装新的软件包。

-e, --erase  删除指定的软件包。

-q, --query  查询软件包的安装信息。

-V, --verify  验证软件包的各种属性。

命令选项(通用选项)

--dbpath dir  使用指定目录dir而非默认目录/var/lib/rpm中的数据库文件。

--pipe cmd  利用管道,把rpm命令的输出提交给指定的命令cmd处理。

--quiet  除非出现错误,显示错误信息之外,尽可能减少输出信息。

--rcfile filelist filelist  由冒号分隔的一组配置文件组成,用于定义rpm顺序读取的配置信息。如果定义了filelist,第一个文件必须存在,其他文件是选用的。文件路径名中可以包含波浪号,表示用户的主目录。默认的filelist是/usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/ etc/rpmrc:~/.rpmrc。

--root dir  对于所有的软件操作,都是在以指定的目录dir作为根目录的文件系统中完成的。

-v  详细显示模式。显示rpm命令的处理过程。“-vv”选项表示显示rpm命令的调试信息。

命令选项(安装、升级与更新选项)

--aid  必要时安装为满足依赖性要求而建议安装的软件包。

--allfiles  安装或升级软件包中缺失但无碍的所有文件,不管其是否存在。

--excludepath oldpath  禁止安装以指定的目录为起始路径名的文件。

--excludedocs  禁止安装标记为文档的任何文件,包括手册页与info文档。

--force  强制安装指定的软件包,其功能相当于同时指定了“--replacepkgs”、“--replacefiles”与“--oldpackage”选项。

-h, --hash  在软件包的解压过程中,随着文件的释放与安装,输出50个“#” 标记,以反映解压的进度。与“-v”选项一起使用时能够获得较好的显示效果。

--ignoresize  在安装指定的软件包之前,禁止检查文件系统是否存在足够的磁盘空间。

--ignorearch  即使二进制软件包的适用机型并不匹配,也允许安装或升级指定的软件包。

--ignoreos  即使二进制软件包适用的操作系统并不匹配,也允许安装或升级指定的软件包。

--includedocs  安装软件包中的文档文件。这是默认的安装方式。

--justdb  仅更新数据库文件,而不更新文件系统。

--nodigest  读取软件包信息时,不必验证软件包及其头的摘要信息。

--nomanifest  禁止把非软件包文件作为manifest文件处理。

--nosignature  读取软件包信息时,不必验证软件包及其数字签字信息。

--nodeps  在安装或升级软件包之前,不必进行软件包的依赖性检测。

--noscripts  禁止执行软件包中的任何脚本。

--nosuggest  禁止提供因依赖性不满足而需要安装某个缺失软件包的建议。

--noorder  禁止重新排序安装的软件包。注意,rpm通常会重新排序指定的多个软件包,以满足软件包的依赖性。

--oldpackage  在软件包的升级过程中,允许老的软件包替换新的软件包。

--percent  在软件包的解压与安装过程中,以百分比的形式显示档案文件的释放与安装进度。

--prefix newpath  对于可重新定位的二进制软件包,把软件包中带有重定位安装前缀的所有文件转换成具有指定起始目录newpath的路径名。

--relocate oldpath=newpath  对于可重新定位的二进制软件包,把软件包中以指定目录oldpath为起始路径名的所有文件转换成具有指定起始目录newpath的路径名。

--replacefiles  安装指定的软件包,即使其中的部分文件会覆盖已经安装的文件。

--replacepkgs  强制安装指定的软件包,即使其中的部分软件包已安装到系统中,仍然重新安装。

--test  禁止安装软件包,仅仅检测并报告指定的软件包是否存在潜在的冲突。

命令选项(删除选项)

--allmatches  删除与指定软件包参数pkgs匹配的所有版本的软件包。如果指定的软件包参数匹配多个软件包,rpm通常会输出一条错误信息。

--nodeps  在删除软件包之前,不必检测软件包的依赖性。

--noscripts  禁止执行软件包中的任何脚本。

--test  禁止真的删除软件包,只是测试一下删除过程。主要用于配合“-vv”选项的调试过程。

命令选项(查询选项)

-a, --all  查询已安装的所有软件包。

--changelog  显示软件包的变动信息。

-c, --configfiles  仅仅查询软件包中的配置文件(蕴含着同时指定了“-l”选项)。

-d, --docfiles  仅仅查询软件包中的文档文件(蕴含着同时指定了“-l”选项)。

--dump  按照下列格式显示文件信息(蕴含着同时指定了“-l”选项):

path size mtime filedigest mode owner group isconfig isdoc rdev symlink

-f file, --file file  查询拥有指定文件file的软件包,用于判定指定的文件属于哪一个软件包。

--fileid md5  查询包含指定文件标识(MD5摘要)的软件包。

--filesbypkg  查询每个指定软件包中的所有文件(每个文件名前冠以软件包的名字)。

-g grp, --group grp  查询从属于指定用户组的软件包。

--hdrid sha1  查询包含指定软件包标识(SHA1摘要)的软件包。

-i, --info  显示软件包的有关信息,包括名字、版本、大小、安装时间及简单描述等。

--last  显示软件包列表时按照安装时间排序,最新安装的软件包排在最上面。

-l, --list  查询指定软件包中包含的文件。

-p pkgs, --package pkgs  查询尚未安装的软件包。指定的软件包可以是ftp或http格式的URL。在此情况下,仅下载并查询软件包的头信息。

--pkgid md5  查询包含指定软件包标识(MD5摘要)的软件包。

-R, --requires  查询指定软件包依赖的底层支持软件包。

--scripts  查询软件包中用作安装或删除过程一部分的脚本。

-s, --state  列出软件包中的文件的状态(蕴含着同时指定了“-l”选项)。每个文件的状态可以是正常安装、尚未安装或已被替换之一。

--triggers, --triggerscripts  显示软件包中的触发器脚本(如果存在)。

命令选项(验证选项)

-a, --all  验证已安装的所有软件包。

-f file, --file file  验证拥有指定文件的软件包。

--nodeps  禁止验证软件包的依赖性。

--nodigest  读取软件包时禁止验证软件包及其摘要信息。

--nofiles  禁止验证软件包文件的任何属性。

--noscripts  禁止执行验证脚本(如果存在)。

--nosignature  读取软件包时禁止验证软件包及其数字签字信息。

--nolinkto  禁止验证文件的符号链接路径。

--nofiledigest  先前为“--nomd5”。禁止验证文件的MD5校验和。

--nosize  禁止验证文件的大小。

--nouser  禁止验证文件的用户属主。

--nogroup  禁止验证文件的用户组。

--nomtime  禁止验证文件的修改时间。

--nomode  禁止验证文件的模式字段(包括访问权限与文件类型)。

--nordev  禁止验证文件的主次设备号。

-p pkgs, --package pkgs  验证指定的软件包文件。

验证软件包的主要目的是比较软件包中已安装的文件与RPM数据库(参见/var/lib/rpm目录中的每个相应的目录)中存储的软件包元数据记录的文件信息,验证每个文件的大小、MD5校验和、文件的访问权限、类型、属主和用户组等属性信息,显示两者之间的任何差异。软件包中未安装的文件(如在安装时由于选择了“--excludedocs”选项,导致文档文件并未安装)不在验证之列。

输出的内容包括一个8(或9)字符的字符串,以及一个属性标记字符。

在8字符的字符串中,每个字符表示一个相应文件属性的比较结果。句点“.”表示相应的属性通过验证,问号“?”表示无法执行相应的属性测试。其他字符表示相应的属性验证没有通过。可能的属性验证故障如下:

S  文件大小不同。

M  文件的模式字段(包括访问权限与文件类型)不同。

5  MD5校验和不同。

D  设备文件的主次设备号不匹配。

L  文件的符号链接路径不匹配。

U  文件的用户属主不同。

G  文件的用户组不同。

T  文件的修改时间不同。

可能的属性标记字符如下:

c  配置文件。

d  文档文件。

g  软件包中不包括的文件。

l  许可文件。

r  readme文件。

命令选项(数字签字)

--addsign  对软件包进行数字签字(同“--resign”选项)。

--checksig  检测软件包文件包含的所有摘要和数字签字,确保软件包的完整性与原始性。

--import publickey  把指定的公钥加到软件包数据库文件中。

--nodigest  禁止验证软件包及其摘要信息。

--nosignature  禁止验证软件包及其数字签字信息。

--resign  对软件包进行数字签字。

命令选项(重建数据库文件)

--initdb  初始化数据库文件(如果不存在,创建新的数据库文件)。

--rebuilddb  根据安装的软件包重建所有的数据库文件。

应用实例

1. 安装指定的软件包。注意,在指定软件包的名字时,必须给出完整的路径,除非软件包位于当前目录中。

# rpm -ivh dhcp-4.1.1-12.P1.el6.i686.rpm
Preparing...            ########################################### [100%]
   1:dhcp                       ########################################### [100%]
#

2. 使用“-d”选项查询软件包提供的文档文件列表,包括参考手册和Info文档等。

# rpm -qd mdadm
/usr/share/doc/mdadm-3.1.3/COPYING
/usr/share/doc/mdadm-3.1.3/ChangeLog
/usr/share/doc/mdadm-3.1.3/TODO
/usr/share/doc/mdadm-3.1.3/mdadm.conf-example
/usr/share/doc/mdadm-3.1.3/syslog-events
/usr/share/man/man4/md.4.gz
/usr/share/man/man5/mdadm.conf.5.gz
/usr/share/man/man8/mdadm.8.gz
/usr/share/man/man8/mdmon.8.gz
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z