Rpm
在規範中查找特定 rpm 提供的特定文件的路徑
我想知道由
apxs
提供的路徑httpd-devel
,在可能有其他副本的機器上apxs
,這將由首先解決which
。我有理由相信這個命令會起作用:rpm -ql httpd-devel | egrep 's?bin/apxs2?$'
但是,有沒有辦法在不通過管道
grep
和正則表達式的情況下進行測試?
這就是 unix 的做法——將輸出從一個程序傳送到另一個程序,以便使用小型建構塊來實現您所需要的。
RPM 中的文件目錄
你的問題有點混亂。如果您詢問如何確定特定 RPM 中包含的文件的路徑,那麼不,沒有辦法只使用
rpm
or來執行此操作yum
。
apxs
這是從 RPM獲取路徑的一種方法。$ dirname $(rpm -ql httpd-devel | grep "apxs$") /usr/bin
RPM 中包含的文件
如果您的問題是關於如何確定給定 RPM 中是否存在文件,那麼在確定磁碟上的文件是否屬於 RPM 時,我熟悉 3 種方法。
方法 #1 - 查詢 RPM DB
$ rpm -ql httpd-devel | grep "apxs$" /usr/bin/apxs
方法 #2 - 查看文件屬於哪個 RPM
$ rpm -qf /usr/sbin/apxs httpd-devel-2.2.22-jason.1
方法#3 - 提供什麼
您可以使用
yum whatprovides ..
.例子
$ yum whatprovides '*apxs' Loaded plugins: langpacks, refresh-packagekit httpd-devel-2.4.4-6.fc19.i686 : Development interfaces for the Apache HTTP server Repo : fedora Matched from: Filename : /usr/bin/apxs httpd-devel-2.4.4-6.fc19.x86_64 : Development interfaces for the Apache HTTP server Repo : fedora Matched from: Filename : /usr/bin/apxs httpd-devel-2.4.6-2.fc19.i686 : Development interfaces for the Apache HTTP server Repo : updates Matched from: Filename : /usr/bin/apxs httpd-devel-2.4.6-2.fc19.x86_64 : Development interfaces for the Apache HTTP server Repo : updates Matched from: Filename : /usr/bin/apxs httpd-devel-2.4.6-2.fc19.x86_64 : Development interfaces for the Apache HTTP server Repo : @updates Matched from: Filename : /usr/bin/apxs