使用 -q 选项, rpm 将初始化查询,使查看 RPM 存档(通过添加选项 -p)并查询已安装包的 RPM 数据库成为可能。可以使用多个开关指定所需信息的类型。请参见表 16.1 “最重要的 RPM 查询选项”。
表 16.1. 最重要的 RPM 查询选项
| 包信息 |
| 文件列表 |
| 查询包含文件 |
| 带有状态信息的文件列表(间接指定 |
| 仅列出文档文件(间接指定 |
| 仅列出配置文件(间接指定 |
| 带有完整详细信息的文件列表(将用于 |
| 列出包中可被另一个包通过 |
| 包需要的功能 |
| 安装脚本(预安装、后安装、卸载) |
例如,命令 rpm -q -i wget 显示 例 16.1 “rpm -q -i wget” 中所示的信息。
例 16.1. rpm -q -i wget
Name : wget Relocations: (not relocatable) Version : 1.9.1 Vendor: SUSE LINUX AG, Nuernberg, Germany Release : 50 Build Date: Sat 02 Oct 2004 03:49:13 AM CEST Install date: Mon 11 Oct 2004 10:24:56 AM CEST Build Host: f53.suse.de Group : Productivity/Networking/Web/Utilities Source RPM: wget-1.9.1-50.src.rpm Size : 1637514 License: GPL Signature : DSA/SHA1, Sat 02 Oct 2004 03:59:56 AM CEST, Key ID a84edae89c800aca Packager : http://www.suse.de/feedback URL : http://wget.sunsite.dk/ Summary : A tool for mirroring FTP and HTTP servers Description : Wget enables you to retrieve WWW documents or FTP files from a server. This can be done in script files or via the command line. [...]
只有当您指定带有完整路径的完整文件名时,选项 -f 才起作用。根据需要提供任意多个文件名。例如,以下命令
rpm -q -f /bin/rpm /usr/bin/wget
产生:
rpm-4.1.1-191 wget-1.9.1-50
如果只知道部分文件名,则可以使用壳层脚本,如例 16.2 “搜索包的脚本”所示。当运行所显示的脚本时,将部分文件名以参数的形式传递给该脚本。
例 16.2. 搜索包的脚本
#! /bin/sh
for i in $(rpm -q -a -l | grep $1); do
echo "\"$i\" is in package:"
rpm -q -f $i
echo ""
done
命令 rpm -q --changelog rpm 按照日期显示有关特定包更改信息的详细列表。此示例显示有关包 rpm 的信息。
借助已安装的 RPM 数据库,可以进行校验检查。使用 -V、-y 或 --verify 对其进行初始化。使用此选项,rpm 显示安装后已被更改的包中的所有文件。rpm 使用 8 个字符符号给出有关以下更改的一些提示:
对于配置文件,将输出字母 c。例如,对于 /etc/wgetrc (wget) 的更改:
rpm -V wget S.5....T c /etc/wgetrc
RPM 数据库的文件被放置在 /var/lib/rpm 中。如果分区 /usr 的大小为 1 GB,则此数据库可能会占用将近 30 MB,特别是在完全更新之后。如果数据库比预期大得多,则最好使用选项 --rebuilddb 重构建数据库。在执行此操作之前,制作旧数据库的备份。cron 脚本 cron.daily 每天制作数据库的副本(用 gzip 打包)并将这些副本储存在 /var/adm/backup/rpmdb 中。副本的数目是由 /etc/sysconfig/backup 中的变量 MAX_RPMDB_BACKUPS(默认值为 5)控制的。对于 1 GB 的 /usr,单个备份的大小大约为 1 MB。