RPM 查詢

使用 -q 選項,rpm 會啟動查詢,可檢查 RPM 歸檔 (藉由新增選項 -p),也可以查詢安裝套件的 RPM 資料庫。有多個切換參數可用於指定所需的資訊類型。請參閱表格 16.1 「最重要的 RPM 查詢選項」

表格 16.1. 最重要的 RPM 查詢選項

-i

套件資訊

-l

檔案清單

-f FILE

查詢包含 FILE 檔案的套件 (完整的路徑必須以 FILE 指定)

-s

含有狀態資訊的檔案清單 (隱含 -l)

-d

只列出文件檔案 (隱含 -l)

-c

只列出組態檔案 (隱含 -l)

--dump

含有完整詳細資訊的檔案清單 (與 -l-c-d 一起搭配使用)

--provides

列出另一個套件可以使用 --requires 要求的套件功能

--requires-R

套件所需的功能

--scripts

安裝程序檔 (預先安裝、後續安裝、解除安裝)


例如,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 使用八個字元的符號來提供下列變更的提示:

表格 16.2. RPM 驗證選項

5

MD5 檢查總數

S

檔案大小

L

符號連結

T

修改時間

D

主要和次要的設備編號

U

擁有者

G

群組

M

模式 (許可權和檔案類型)


如果是組態檔,會印出字母 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。