提供文件的rpm

提供文件的rpm

列出哪些 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」字串中可以明顯看出)。

相關內容