Rpm

在規範中查找特定 rpm 提供的特定文件的路徑

  • December 20, 2013

我想知道由apxs提供的路徑httpd-devel,在可能有其他副本的機器上apxs,這將由首先解決which。我有理由相信這個命令會起作用:

rpm -ql httpd-devel | egrep 's?bin/apxs2?$'

但是,有沒有辦法在不通過管道grep和正則表達式的情況下進行測試?

這就是 unix 的做法——將輸出從一個程序傳送到另一個程序,以便使用小型建構塊來實現您所需要的。

RPM 中的文件目錄

你的問題有點混亂。如果您詢問如何確定特定 RPM 中包含的文件的路徑,那麼不,沒有辦法只使用rpmor來執行此操作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

引用自:https://unix.stackexchange.com/questions/106048