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