语法
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 <包名>