いくつかの関連質問を確認しましたが、最も近い質問は次のとおりです。RPMから仕様ファイルを抽出する- 私の質問も同じように表現するという点を付け加えなければなりません。ただし、.specファイルは.rpmファイルにないようです(バイナリパッケージの場合)。
だから私の質問は、仕様ファイルから派生した情報を少なくともできるだけ多く取得する方法です。
- .rpmの内容をリストするコマンドがあることを知っています(実際に
rpm2cpio xxx.rpm | cpio -itv
は少なくとも2つあります。) - 必要なものを得るための他のコマンド
- 具体的には、インストールプロセスの一部としてpre/post/etcスクリプトを実行するために使用するコマンドです。
理想的には、答えは単一のコマンドです。しかし、いくつかの命令でなければならないのはそれです。
ps確認しましたがrpmbuild --rebuild
(ソースRPMが必要だと言われています)見つかりませんでした。rpmlint
ありがとうございます。
答え1
はい、rpm SPECはパッケージRPMの一部ではありません。ただし、SPECファイル内の情報についてRPMパッケージを照会することはできます。
たとえば、
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の実際の名前は上に示されています。この情報は、Name、Arch、Requires(pre)、Requires(post)、BuildRequiresなどのSPECファイルの特定のセクションにあります。有効なクエリオプションについては、こちらをご覧ください。協会
答え2
rpmを生成したソースrpmを所有していない限り、rpmを生成したビルド指示を抽出することはできません。
問題のrpmが公式リポジトリにある場合/etc/yum.repos.d
(RHEL / CentOS用)フォルダでそのソースリポジトリを有効にし、yumからソースrpmをダウンロードできます。 (DNF / Zypperなどで同様のことができます。)