rpm 命令

语法

rpm [Options] <Package_name>

常用参数

查询/验证软件包选项:

- -a, --all                        查询/验证所有软件包
- -f, --file                       查询/验证文件属于的软件包
- -g, --group                      查询/验证组中的软件包
- -p, --package                    查询/验证一个软件包
- --pkgid                          query/verify package(s) with package identifier
- --hdrid                          query/verify package(s) with header identifier
- --triggeredby                    query the package(s) triggered by the package
- --whatrequires                   query/verify the package(s) which require a dependency
- --whatprovides                   查询/验证提供相关依赖的软件包
- --nomanifest                     不把非软件包文件作为清单处理

查询选项(用 -q 或 –query):

- -c, --configfiles                  列出所有配置文件
- -d, --docfiles                     列出所有程序文档
- -L, --licensefiles                 list all license files
- --dump                             转储基本文件信息
- -l, --list                         列出软件包中的文件
- --queryformat=QUERYFORMAT          使用这种格式打印信息
- -s, --state                        显示列出文件的状态

验证选项(用 -V 或 –verify):

- --nofiledigest                     不验证文件摘要
- --nofiles                          不验证软件包中文件
- --nodeps                           不验证包依赖
- --noscript                         不执行验证脚本

安装/升级/删除选项:

- --allfiles                         安装全部文件,包含配置文件,否则配置文件会被跳过。
- --allmatches                       移除所有符合 `<package>` 的软件包
- --badreloc                         对不可重定位的软件包重新分配文件位置
- -e, --erase=`<package>+`           清除 (卸载) 软件包
- --excludedocs                      不安装程序文档
- --excludepath=`<path>`             略过以 `<path>` 开头的文件
- --force                            强制操作
- -F, --freshen=`<packagefile>+`     如果软件包已经安装,升级软件包
- -h, --hash                         软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好)
- --ignorearch                       不验证软件包架构
- --ignoreos                         不验证软件包操作系统
- --ignoresize                       在安装前不检查磁盘空间
- -i, --install                      安装软件包
- --justdb                           更新数据库,但不修改文件系统
- --nodeps                           不验证软件包依赖
- --nofiledigest                     不验证文件摘要
- --nocontexts                       不安装文件的安全上下文
- --noorder                          不对软件包安装重新排序以满足依赖关系
- --noscripts                        不执行软件包脚本
- --notriggers                       不执行本软件包触发的任何脚本
- --nocollections                    请不要执行任何动作集
- --oldpackage                       更新到软件包的旧版本(带 --force 自动完成这一功能)
- --percent                          安装软件包时打印百分比
- --prefix=`<dir>`                   如果可重定位,便把软件包重定位到 `<dir>`
- --relocate=`<old>=<new>`           将文件从 `<old>` 重定位到`<new>`
- --replacefiles                     忽略软件包之间的冲突的文件
- --replacepkgs                      如果软件包已经有了,重新安装软件包
- --test                             不真正安装,只是判断下是否能安装
- -U, --upgrade=`<packagefile>+`     升级软件包
- --reinstall=`<packagefile>+`       reinstall package(s)

所有 rpm 模式和可执行文件的通用选项:

- -D, --define=“MACRO EXPR”        定义值为 EXPR 的 MACRO
- --undefine=MACRO                 undefine MACRO
- -E, --eval=“EXPR”                打印 EXPR 的宏展开
- --macros=`<FILE:…>`              从文件 `<FILE:...>` 读取宏,不使用默认文件
- --noplugins                      don't enable any plugins
- --nodigest                       不校验软件包的摘要
- --nosignature                    不验证软件包签名
- --rcfile=`<FILE:…>`              从文件 `<FILE:...>`读取宏,不使用默认文件
- -r, --root=ROOT                  使用 ROOT 作为顶级目录 (default: "/")
- --dbpath=DIRECTORY               使用 DIRECTORY 目录中的数据库
- --querytags                      显示已知的查询标签
- --showrc                         显示最终的 rpmrc 和宏配置
- --quiet                          提供更少的详细信息输出
- -v, --verbose                    提供更多的详细信息输出
- --version                        打印使用的 rpm 版本号

常见用法

1. 初始化rpm 数据库;

通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

# 这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;
rpm --initdb
rpm --rebuilddb  # 此命令需要花好长时间;
PS:
   1. rpm 数据库文件位置:/var/lib/rpm
   2. rpm 数据库文件名: __db*
   3. yum命令和rpm命令使用的是同一个数据库文件

2. rpm 安装、升级、卸载软件包

# 1. 安装
rpm -ivh <包名>

# 2. 升级
## 2.1 当软件包之前未安装过时进行安装操作; 当文件包之前安装过则进行升级操作
rpm -Uvh <包名>
## 2,2 仅升级,即当软件包未安装过,则不进行升级
rpm -Fvh <包名>

# 3. 卸载
rpm -evh <包名>

3. rpm 查询

rpm命令对已安装的软件包进行查询操作
# 查找当前主机上所有已安装的软件包
rpm -qa

# 在已安装的软件中查找指定的包
rpm -q <包名>
## 或者
rpm -qa | grep <包名>

# 3. 查看主机上的某个命令或文件是由那个包提供的
#  < CMD|File >: 必须是绝对路径
rpm -qf < CMD | File >

# 4. 查看指定的程序包提供了哪些文件或者命令
rpm -ql <包名>

# 5. 查看指定的程序包的信息,比如版本、大小等
rpm -qi <包名>

# 6. 查看指定的程序包的依赖关系
rpm -qR <包名>

# 7. 查看指定的程序包的帮助文档
rpm -qd <包名>
rpm命令对未安装的软件包进行查询操作

注意:
此操作的前提是有一个未安装的.rpm程序包

# 查看程序包提供了哪些文件或者命令
rpm -qpl <包名>

# 查看程序包的信息,比如版本、大小等
rpm -qpi <包名>

# 查看程序包的依赖关系
rpm -qpR <包名>

# 查看程序包的帮助文档
rpm -qpd <包名>
上一篇
下一篇