名 称
rpm - RPM 软 件 包 管 理 器
总 览
查 询 和 验 证 软 件 包 :
rpm {-q|--query} [select-options] [query-options]
rpm --querytags
rpm
{-V|--verify} [select-options]
[verify-options] 安 装 、
升 级 和 卸 载 软
件 包 :
rpm {-i|--install} [install-options]
PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {--reinstall} [install-options] PACKAGE_FILE ...
rpm
{-e|--erase} [--allmatches] [--nodeps]
[--noscripts]
[--notriggers] [--test]
PACKAGE_NAME ... 杂 项 :
rpm --showrc
rpm --setperms PACKAGE_NAME ...
rpm
--setugids PACKAGE_NAME ... 选 择
相 关 选 项
[PACKAGE_NAME] [-a,--all] [-f,--file
FILE]
[-g,--group GROUP] {-p,--package
PACKAGE_FILE]
[--hdrid SHA1] [--pkgid MD5]
[--tid TID]
[--querybynumber HDRNUM] [--triggeredby
PACKAGE_NAME]
[--whatprovides CAPABILITY]
[--whatrequires CAPABILITY] 查
询 相 关 选 项
[--changelog] [-c,--configfiles]
[--conflicts]
[-d,--docfiles] [--dump] [--filesbypkg]
[-i,--info]
[--last] [-l,--list] [--obsoletes]
[--provides]
[--qf,--queryformat QUERYFMT]
[-R,--requires]
[--scripts] [-s,--state]
[--triggers,--triggerscripts] 验 证
相 关 选 项
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nofiledigest]
[--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode]
[--nordev]
[--nocaps] 安 装 相 关
选 项
[--allfiles] [--badreloc]
[--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch]
[--ignoreos]
[--includedocs] [--justdb]
[--nocollections]
[--nodeps] [--nodigest] [--nosignature]
[--noorder] [--noscripts]
[--notriggers]
[--oldpackage] [--percent] [--prefix
NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--replacefiles] [--replacepkgs]
[--test]
描 述
rpm是 一 个 强 大 的 的 包 管 理 器 , 可 以 用 于 构 建 、 安 装 、 查 询 、 核 实 、 更 新 以 及 卸 载 单 个 软 件 包 。 一 个 软 件 包 通 常 包 括 一 个 文 件 档 以 及 关 于 包 的 用 于 安 装 和 卸 载 的 元 信 息 , 包 括 帮 助 脚 本 、 文 件 属 性 和 软 件 包 的 描 述 性 信 息 。 必 须 选 取 下 列 基 本 模 式 中 一 个 : 初 始 化 数 据 库 , 重 新 生 成 数 据 库 , 生 成 包 , 重 新 编 译 包 , 从 Tar包 生 成 RPM包 , 查 询 , 显 示 查 询 标 签 , 安 装 , 更 新 , 卸 载 , 核 实 , 签 名 检 查 , 再 签 名 , 添 加 签 名 , 设 置 所 有 者 和 组 以 及 显 示 配 置 .
通 用 选 项
这 些 选 项 可 以 各 种 不 同 的 方 式 使 用 .
-vv 将 打 印 出 许 多 难 以 阅 读 的 调 试 信 息 |
. |
--quiet 打 印 尽 可 能 少 的 信 息 - 普 通 只 展 示 错 误 信 息 .
--help 给 出 比 常 规 更 多 的 用 法 信 息 |
. |
--version 在
单 独 一 个 行 里
给 出 所 用 rpm 的
版 本 号
--rcfile <filelist> 在
<filelist>里 列 出 了
一 些 文 件 , 各 文
件 之 间 以 冒 号
分 隔 , rpm 顺 序 读
取 这 些 文 件 以
获 得 配 置 信 息 .
<filelist>缺 省 是
/usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc. 列
表 中 的 第 一 个
文 件 (/usr/lib/rpm/rpmrc)且 只
有 这 个 文 件 必
须 存 在 , 代 字 符
~指 向 $HOME的 值 .
--root <dir> 对 所 有
操 作 均 将
<dir>视 为 系 统
根 目 录 . 注 意 这
意 味 着 对 数 据
库 的 读 或 修 改
操 作 都 将 是 在
<dir>目 录 下 进
行 , 并 且 脚 本 的
pre或 post操 作 都
是 在 做 了 以
<dir>为 根 目 录
的 chroot() 之 后 进 行 .
--dbpath <path> 依 照
<path>使 用 RPM的 数
据 库 .
--justdb 更 新 只 针 对
数 据 库 ,而 不 是
整 个 文 件 系 统 .
--ftpproxy <host>, --httpproxy
<host> 设 <host>为
FTP或 HTTP的 代 理 服 务
器 . 参 阅 FTP/HTTP 选
项 .
--ftpport <port>, --httpport
<port> 设 <port>为
FTP或 HTTP的 代 理 服 务
器 的 端 口 . 参 阅
FTP/HTTP 选 项 .
--pipe <cmd> 通 过 管
道 将 rpm的 输 出
输 入 到 命 令
<cmd>.
安 装 和 升 级 选 项
通 常 的 rpm安 装 命 令 如 下 :
rpm -i [install-options] <package_file>+ 这 样 将 安 装 一 个 新 的 包 . 通 常 的 rpm升 级 命 令 如 下 :
rpm -U [install-options] <package_file>+ 这 样 将 当 前 已 安 装 的 包 升 级 或 新 安 装 到 一 个 新 的 RPM版 本 . 升 级 和 安 装 是 一 样 的 , 区 别 在 于 升 级 要 将 所 有 别 的 版 本 的 包 从 系 统 移 去 .
rpm
[-F|--freshen] [install-options]
<package_file>+ 这 样 也
升 级 包 , 但 只 有
在 系 统 存 在 一
个 更 早 版 本 的
包 时 候 才 使 用
这 种 方 式 . 如 果
包 在 安 装 之 前
要 先 进 行 下 载 ,
<package_file>应 该 指
明 为 一 个 ftp或 者
http URL. 要 得 到 关 于
RPM包 生 成 的 ftp和
http支 持 的 信 息 , 可
以 参 阅 FTP/HTTP 选 项
.
--force 与 使 用 --replacepkgs,
--replacefiles, 以 及
--oldpackage效 果 相 同
-h, --hash 包 档 如 果
没 有 被 解 包 , 打
印 50个 破 折 号 . 配
合 -v使 用 可 以
使 得 有 更 好 的
展 示 .
--oldpackage 允 许 用 旧
版 本 的 包 取 代
较 新 的 版 本 .
--percent 给 出 文 件 从
包 档 解 包 的 百
分 比 . 该 项 的 作
用 是 为 了 使 rpm相
比 于 别 的 工 具
更 容 易 使 用 .
--replacefiles 即 使 要 安
装 的 包 会 取 代
别 的 已 安 装 包
的 文 件 , 也 安 装
该 包 .
--replacepkgs 即 使 包 的
部 分 内 容 已 安
装 在 系 统 里 ,也
安 装 该 包 .
--allfiles 安 装 或 升 级
包 里 所 有 的 缺
失 文 件 ,不 管 其
是 否 存 在 .
--nodeps 在 安 装 或 升
级 包 之 前 不 做
依 赖 检 查 .
--noscripts 不 执 行 安 装
前 或 安 装 后 脚
本
--notriggers 不 执 行 由
该 包 的 安 装 所
激 发 的 脚 本
--ignoresize 安 装 该 包
前 不 检 查 mount文 件
系 统 是 否 有 足
够 的 磁 盘 空 间 .
--excludepath <path> 不 安
装 文 件 名 以 路
径 <path>开 头 的
文 件 .
--excludedocs 不 安 装 任
何 标 记 为 文 档
的 文 件 (包 括 手
册 页 及 文 本 信
息 档 案 ).
--includedocs 安 装 文 档
文 件 , 这 是 缺 省
的 操 作 .
--test 不 安 装 包 , 只 是 简 单 地 检 查 并 报 告 可 能 的 冲 突 |
. |
--ignorearch 允
许 安 装 或 升 级
其 体 系 与 主 机
不 匹 配 的 二 进
制 RPM包 .
--ignoreos 允 许 安 装 或
升 级 其 操 作 系
统 与 主 机 不 匹
配 的 二 进 制 RPM包 .
--prefix <path> 对 于 可
浮 动 包 , 这 将 把
安 装 前 缀 设 置
到 <path>.
--relocate
<oldpath>=<newpath>
将 文 件 从
<oldpath>改 置 到
<newpath>, 这 使 得 可
以 浮 动 包 .
--badreloc 与 --relocate配 合 使
用 , 强 制 改 置 不
可 浮 动 的 包 .
--noorder 安 装 时 对 包
不 重 新 排 序 , 正
常 在 安 装 时 应
该 重 新 排 序 包
列 表 , 以 满 足 依
赖 性 .
查 询 选 项
rpm的 查 询 命 令 通 常 的 格 式 如 下 :
rpm -q
[query-options] 可 以 制 定
包 信 息 的 打 印
格 式 , 这 时 要 用
[--queryformat|-qf]选 项 , 格
式 串 跟 在 选 项
后 面 . 查 询 格 式
由 标 准 printf(3)格 式
的 版 本 决 定 . 格
式 由 静 态 字 符
串 (包 括 除 了 换
行 符 , tab, 以 及 其 它
的 特 殊 字 符 之
外 的 标 准 C字 符 ),
以 及 printf(3)类 型 格
式 符 . 如 果 rpm已
经 知 道 打 印 类
型 , 则 类 型 说 明
就 必 须 被 忽 略 ,
并 且 以 要 打 印
的 头 部 tag的 名 字
取 代 , 该 名 字 被
括 在 {}之 间 . 而
且 tag的 RPMTAG_部 分
也 被 忽 略 . 可 以
用 :typetag来 改 变
输 出 格 式 .当 前
支 持 的 有 如 下
类 型 :octal, date,
shescape, perms, fflags, 以
及 depflags. 例 如 ,要
只 打 印 被 查 询
包 的 名 字 ,可 以
用 %{名 称 }作 为
格 式 字 符 串 . 要
在 两 个 栏 里 打
印 包 名 及 分 布
信 息 ,可 以 用
%-30{名 称 }%{分 布 }.
当 被 --querytags参 数
激 发 时 ,rpm将 列
出 所 有 tags. 查 询 选
项 有 两 种 子 设
置 : 包 选 择 和 信
息 选 择 . 包 选 择
选 项 :
<package_name> 查 询 名 为
<package_name>的 安 装
包 .
-a, --all 查 询 所 有
安 装 的 包 .
--whatrequires <capability> 查
询 所 有 需 要
<capability>才 能 提 供
适 当 功 能 的 包 .
--whatprovides <virtual> 查 询
所 有 提 供
<virtual>功 能 的 包 .
-f <file>, --file
<file> 查 询 拥 有
文 件 <file>的 包 .
-g <group>, --group
<group> 查 询 属 于
???组 <group>的 包
-p <package_file> 查 询
一 个 没 有 安 装
的 包 <package_file>.
<package_file>可 以 被
说 明 为 ftp或 http URL,这
时 包 头 会 被 下
载 并 被 查 询 . 要
得 到 关 于 RPM生 成
的 ftp和 http客 户 端 支
持 的 信 息 ,请 参
阅 FTP/HTTP OPTIONS
--specfile <specfile> 像 对
待 一 个 包 一 样
Parse并 查 询 <specfile>.
虽 然 不 是 所 有
的 信 息 (例 如 文
件 列 表 )可 用 ,这
种 查 询 类 型 允
许 rpm在 不 用 写 一
个 specfile parser的 情 况 下
从 spec files提 取 信 息 .
--querybynumber <num> 直 接
查 询 <num>数 据
库 入 口 ,该 选 项
在 调 试 时 很 有
用 处 .
--triggeredby <pkg> 查 询
由 包 <pkg>所 激
发 的 包 . 信 息 选
择 选 项 :
-i 展 示 包 信 息 ,包 括 名 字 ,版 本 ,以 及 描 述 |
.??? |
-R, --requires
列 出 该 包 所 依
赖 的 别 的 包 .
--provides 列 出 该 包 所
提 供 的 功 能 .
--changelog 展 示 该 包 的
变 更 信 息 .
-l, --list 列 出 该 包
的 文 件 .
-s, --state 展 示 该 包
各 文 件 的 状 态
信 息 ,因 此 该 选
项 实 际 隐 含 了
-l选 项 . 文 件 状
态 可 以 是 如 下
之 一 : normal, not installed,
或 者 replaced.
-d, --docfiles 只 列 出
文 档 文 件 (隐 含
-l选 项 ).
-c, --configfiles 只 列 出
配 置 文 件 (隐 含
-l选 项 ).
--scripts 如 果 有 的 话
,就 列 出 该 包 里
作 为 安 装 或 卸
载 过 程 一 部 分
的 特 殊 shell脚 本 .
--triggers, --triggerscripts 如 果
有 的 话 ,展 示 该
包 包 含 的 激 发
子 脚 本 .
--dump 如 下 的 哑 文 件 信 息 : |
path size mtime md5sum mode owner group |
isconfig isdoc rdev symlink. 该 选 项 必 须 至 少 配 合 如 下 选 项 之 一 :-l, -c, -d使 用 .
--last 按 包 的 安 装 时 间 进 行 排 序 ,这 使 得 最 新 的 包 在 序 列 顶 部 |
. |
--querybypkg 列
出 每 个 包 里 的
所 有 文 件 .
--triggerscripts 显 示 所 选
包 的 所 有 激 发
子 脚 本 .
核 实 选 项
rpm
-V|-y|--verify [verify-options] 将 所
安 装 包 的 文 件
信 息 和 源 发 包
的 文 件 信 息 以
及 在 rpm数 据 库 的
文 件 信 息 做 比
较 , 以 此 来 核 实
包 . 对 于 别 的 东
西 ,则 ??? 任 何 的 差
异 都 会 展 示 .包
的 说 明 选 项 与
查 询 选 项 相 同 .
对 于 不 是 从 包
安 装 的 文 件 ,例
如 在 安 装 的 时
候 用 "--excludedocs" 选
项 排 除 了 的 文
档 文 件 ,将 在 没
有 提 示 的 情 况
下 被 忽 略 掉 . 核
实 选 项 可 以 使
用 如 下 模 式 :
--nofiles 核 实 时 忽 略
缺 失 文 件
--nomd5 核 实 时 忽 略
MD5校 验 错 误
--nopgp 核 实 时 忽 略
PGP校 验 错 误
--nofiles 核 实 时 忽 略
缺 失 文 件 输 出
的 格 式 是 一 个
八 个 字 符 的 字
符 串 ,和 一 个 可
能 有 的 "c", 指
明 后 面 是 一 个
配 置 文 件 ,以 及
后 面 的 文 件 名 .
八 个 字 符 中 的
每 一 个 都 代 表
着 一 个 文 件 属
性 与 保 存 在 RPM的
数 据 库 中 的 属
性 纪 录 值 的 比
较 结 果 . 单 个 的
"."(句 号 )表 明
检 查 通 过 .下 列
字 符 代 表 特 定
检 查 的 失 败 :
5 |
MD5校 验 和 |
|||
S |
文 件 大 小
L 符 号 连 接 |
||
T 修 改 时 间 |
||
D 设 备 |
||
U 用 户 |
||
G 组 |
||
M 模 式 |
(包 括 许 可 和 文 件 类 型 )
签 名 检 查
通 常 的 rpm签 名 检 查 命 令 如 下 :
rpm --checksig <package_file>+ 这 将 检 查 包 <package_file>的 PGP签 名 以 确 保 其 完 整 性 和 源 发 性 . 可 以 从 配 置 文 件 读 取 PGP配 置 信 息 .细 节 请 查 阅 PGP 签 名 部 分 .
卸 载 选 项
rpm卸 载 命 令 的 通 常 格 式 如 下 :
rpm -e
<package_name>+
--allmatches 将 移 去 与
<package_name>相 匹 配
的 所 有 版 本 的
包 .正 常 的 话 ,如
果 <package_name>与 多
个 包 相 匹 配 ,就
会 给 出 错 误 信
息 .
--noscripts 不 执 行 安 装
前 或 安 装 后 脚
本 .
--notriggers 不 执 行 由
移 去 该 包 所 激
发 的 脚 本
--nodeps 卸 载 前 不 检
查 依 赖 性
--test 不 真 正 卸 载 任 何 东 西 ,只 是 遍 历 该 动 作 |
.配 合 -vv选 项 会 很 有 用 处 . |
生 成 选 项
The general form of an rpm build command is
rpm -[b|t]O [build-options] <package_spec>+
The argument used is -b if a spec file is being used to build the package and -t if RPM should look inside of a gzipped (or compressed) tar file for the spec file to use. After the first argument, the next argument (O) specifies the stages of building and packaging to be done and is one of: rpm通 常 的 生 成 选 项 如 下 :
rpm -[b|t]O [build-options] <package_spec>+
-bp |
Executes the "%prep" stage from the spec file. Normally this involves unpacking the sources and applying any patches. | ||||||||||||||||
-bl |
Do a "list check". The "%files" section from the spec file is macro expanded, and checks are made to verify that each file exists. | ||||||||||||||||
-bc |
Do the "%build" stage from the spec file (after doing the prep stage). This generally involves the equivalent of a "make". | ||||||||||||||||
-bi |
Do the "%install" stage from the spec file (after doing the prep and build stages). This generally involves the equivalent of a "make install".
生 成 一
个 二 进 制 包 (在
完 成 prep, build, 以 及
install阶 段 之 后 ) 包 和 源 包 (在 完 成 prep, build, 以 及 install阶 段 之 后 ) 还 可 以 使 用 的 选 项 如 下 : --short-circuit 忽
略 导 致 specified阶 段
(比 如 ,忽 略 所 有
导 致 specified阶 段 的
阶 段 ). 只 有 与 -bc
以 及 -bi合 用 才
有 效 .
PGP签 名 .该
签 名 可 以 用 来
核 实 该 包 的 完
整 性 和 源 发 性 .
配 置 细 节 可 以
察 看 PGP 签 名 一 节 .
重 新 生 成 以 及 重 新 编 译 选 项There are two other ways to invoke building with rpm: 有 两 种 不 同 的 方 法 用 rpm重 新 生 成 包 : rpm --recompile <source_package_file>+ rpm --rebuild <source_package_file>+ 当 以 这 种 方 式 激 发 的 时 候 ,rpm安 装 指 明 的 源 包 ,并 且 完 成 prep,compile,install工 作 . 另 外 ,--rebuild生 成 一 个 新 的 二 进 制 包 . 当 包 的 生 成 完 成 的 时 候 ,生 成 所 用 目 录 被 移 去 (就 如 同 使 用 了 --clean), 而 且 该 包 的 源 和 spec文 件 也 要 移 走 . 签 名 一 个 已 存 在 的 RPMrpm --resign <binary_package_file>+ 该 选 项 生 成 并 将 新 签 名 插 入 所 列 出 的 包 里 .已 存 在 的 签 名 会 被 移 走 . rpm --addsign <binary_package_file>+ 该 选 项 生 成 并 将 新 签 名 附 加 到 所 列 出 的 包 的 签 名 之 后 . PGP 签 名要 使 用 签 名 特 性 ,RPM必 须 要 能 够 运 行 PGP(要 安 装 了 PGP并 且 你 可 以 访 问 它 ), 而 且 还 需 PGP能 找 到 一 个 带 有 RPM公 钥 的 公 钥 环 . 缺 省 情 况 下 ,RPM使 用 PGP的 缺 省 设 置 (著 名 的 PGPPATH)来 查 找 钥 环 . 如 果 你 的 钥 环 并 不 在 PGP所 期 望 它 们 处 在 的 地 方 ,则 你 需 要 配 置 宏 _pgp_path 将
其 设 为 要 使 用
的 PGP钥 环 所 在 的
位 置 . 如 果 你 想
要 签 名 一 个 你
自 己 生 成 的 包
,你 还 必 须 创 建
自 己 的 公 钥 和
密 钥 对 (请 参 阅
PGP手 册 ). 还 需 要 配
置 签 名 类 型 宏 :
pgp %_pgp_name /etc/rpm/.pgp %_pgp_name John Doe <jdoe [AT] foo.com>" 包 括 在 一 个 宏 配 置 文 件 里 . 对 于 系 统 的 配 置 可 以 使 用 /etc/rpm/macros, 而 对 于 个 人 配 置 可 以 使 用 ~/.rpmmacros. 重 新 生 成 数 据 库 选 项rpm重 建 数 据 库 的 命 令 是 rpm --rebuilddb 要 重 建 一 个 新 的 数 据 库 ,可 以 : rpm --initdb 对 这 些 模 式 唯 一 的 选 项 是 --dbpath 和 --root. SHOWRC运 行 rpm --showrc 展 示 一 些 设 置 在 rpmrc文 件 里 的 值 ,RPM所 有 选 项 都 会 利 用 这 些 值 . FTP/HTTP选 项RPM包 括 简 单 的 FTP和 HTTP客 户 端 程 序 ,这 样 可 以 简 化 那 些 从 internet取 得 的 包 的 安 装 和 查 询 . 用 于 安 装 ,升 级 ,以 及 查 询 操 作 的 包 文 件 可 以 说 明 为 ftp或 者 http格 式 的 URL: ftp://<user>:<password>@hostname:<port>/path/to/package.rpm 如 果 忽 略 掉 :password部 分 ,会 提 示 要 求 给 出 口 令 (每 个 用 户 /主 机 名 对 一 次 ) 如 果 用 户 名 和 口 令 都 忽 略 了 ,就 使 用 匿 名 ftp. 总 是 使 用 消 极 (PASV) ftp传 送 . RPM允
许 使 用 下 列 操
作 辅 助 ftp URLs RPM允
许 使 用 下 列 操
作 辅 助 http URLs 文 件/usr/lib/rpm/rpmrc
另 见glint(8), rpm2cpio(8) http://www.rpm.org/ 作 者Marc Ewing
<marc [AT] redhat.com> [中 文 版 维 护 人 ]mapping <email> [中 文 版 最 新 更 新 ]2001/7/21 《 Linuxfourm 中 文 MAN-PAGE计 划 》跋本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh |