
列出哪些 rpm 可以提供特定檔案的指令是什麼:提供已安裝檔案的 rpm 或可以提供未安裝檔案的 rpm?
答案1
對於已安裝的檔案/套件:
[jb@smokey ~]$ rpm -qf /etc/sudoers sudo-1.6.9p13-8.fc9.x86_64
對於尚未安裝的檔案和套件:
[jb@smokey ~]$ yum whatprovides“/etc/sudoers” sudo-1.6.9p13-8.fc9.x86_64 :允許指定使用者限制 root 訪問 回購:更新-newkey 匹配自: 檔案名稱:/etc/sudoers sudo-1.6.9p13-4.fc9.x86_64 :允許指定使用者限制 root 訪問 回購:軟呢帽 匹配自: 檔案名稱:/etc/sudoers sudo-1.6.9p13-8.fc9.x86_64 :允許指定使用者限制 root 訪問 回購:已安裝 匹配自: 其他:提供匹配:/etc/sudoers
請注意,「yum whatprovides」是模式匹配,因此,如果您不確定要查找的檔案將位於目錄結構中的哪個位置,只需用引號和星號將其括起來:
百勝提供了“*foo*”
同樣,如果您確定要尋找的是二進位文件,您可以執行以下操作:
yum whatprovides“*bin/foo”
答案2
我不知道尚未安裝的文件,但對於已安裝的文件,您可以使用 rpm -qif:
rpm -qif /bin/ls 名稱: coreutils 重定位:(不可重定位) 版本:5.97 供應商:Red Hat, Inc. 發佈:23.el5 建置日期:2009 年 7 月 13 日星期一 04:21:27 AM MDT 安裝日期:2009 年 9 月 11 日星期五 04:46:01 MDT 建置主機:hs20-bc1-7.build.redhat.com 群組:系統環境/基礎來源 RPM:coreutils-5.97-23.el5.src.rpm 大小:9053874 授權:GPLv2+ 簽名:DSA/SHA1,MDT 2009 年 7 月 28 日星期二 03:42:40 AM,金鑰 ID 5326810137017186 打包者:紅帽公司 網址: 摘要 : GNU 核心實用程式:shell 腳本中常用的一組工具 描述 : 這些是 GNU 核心實用程式。這個包是以下的組合 舊的 GNU fileutils、sh-utils 和 textutils 軟體包。如果您下載了 RPM,您可以查詢以查看要安裝的內容:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm 警告:./Server/jzlib-1.0.7-4jpp.1.i386.rpm:標頭 V3 DSA 簽章:NOKEY,金鑰 ID 37017186 名稱:jzlib 重定位:(不可重定位) 版本:1.0.7 供應商:Red Hat, Inc. 發佈:4jpp.1 建置日期:2006 年 8 月 8 日星期二 12:10:03 PM MDT 安裝日期:(未安裝)建置主機:hs20-bc1-6.build.redhat.com 群組:開發/函式庫/Java 來源 RPM:jzlib-1.0.7-4jpp.1.src.rpm 大小:280436 許可證:BSD 風格 簽名:DSA/SHA1,2007 年 1 月 18 日星期四上午 08:49:50 MST,金鑰 ID 5326810137017186 打包者:紅帽公司 網址: 總結:JZlib純Java重新實作zlib 描述 : zlib 被設計為免費的、通用的、法律上不受阻礙的 -- 也就是說,不受任何專利保護 -- 無損資料壓縮 庫幾乎可以在任何電腦硬體和作業系統上使用。 zlib 由 Jean-loup Gailly(壓縮)和 Mark Adler 編寫 (減壓)。 /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so /usr/share/doc/jzlib-1.0.7 /usr/share/doc/jzlib-1.0.7/LICENSE.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jar如果您不想查看有關 RPM 的所有信息,您可以從選項中省略“-i”。
答案3
在基於 yum 的儲存庫中,您可以嘗試類似的操作 yum provides */filename
答案4
如果您不想(或無法)使用 yum(例如在離線電腦上),您可以透過以下方式搜尋未安裝的 RPM:
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
這可能需要一些時間,因此在大型儲存庫(例如安裝 DVD)上搜尋 *.rpm 時請耐心等待。但是,與「-qpl」不同,「-qp --filesbypkg」將列出檔案及其所屬的 RPM,例如:
# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4
# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs /usr/lib/libpq.so.4
postgresql-libs /usr/lib64/libpq.so.4
在這種情況下,明顯的重複是由於 i386 和 x86_64 軟體包的存在(從「lib64」字串中可以明顯看出)。