Rpm

如何提取 rpm 規範文件提供的說明

  • December 7, 2016

我已經回顧了幾個相關的問題——最接近的是:從 RPM 中提取規範文件——我必須補充一點,我會以同樣的方式表達我的問題。但是,.spec 文件似乎不在 .rpm 文件中(當它是二進制包時)。

所以,我的問題是:如何獲取源自規範文件的資訊 - 至少盡可能多。

  • 我知道有一個命令可以列出 .rpm 的內容(實際上至少有兩個 -rpm2cpio xxx.rpm | cpio -itv一個
  • 獲取所需內容的其他命令
  • 特別是:獲取作為安裝過程的一部分執行的 pre/post/etc 腳本的 WHAT 命令。

理想情況下,答案是一個命令 - 但如果它必須是多個命令,c’est la vie。

ps 我已經檢查過rpmbuild --rebuild(說它需要源 RPM)並且找不到rpmlint

謝謝你。

是的,rpm SPEC 不是打包的 RPM 的一部分。但是,您可以查詢 RPM 包以獲取 SPEC 文件中存在的資訊。

例如:

**1)**以下命令將為您提供安裝或更新 RPM 包時執行的前/後腳本。

rpm -q --scripts (installed RPM name, this name will be without the .rpm extension)
rpm -qp --scripts (if you have a rpm file)

2)--queryformat您可以使用rpm 命令 的選項查看 SPEC 文件中存在的特定資訊。

rpm -q --queryformat '%{ARCH} %{NAME}\n' (RPM name, if it installed)
rpm -qp --queryformat '%{ARCH} %{NAME}\n' (if you have an RPM file)

上面將給出 RPM 設計的體系結構和 RPM 的實際名稱。這些資訊位於 SPEC 文件的特定部分,如 Name、Arch、Requires(pre)、Requires(post)、BuildRequires 等。有關有效查詢選項,請查看此連結

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