Edited at

SRPMを一撃でRPMビルドする。 (rpmコマンドでつい忘れがちな細かいオプションもおまけで記載)

More than 3 years have passed since last update.

いっつも忘れてしまうので、例によってメモ代わりに。

タイトルは釣りです。




SRPMに含まれているSPECファイルをそのまま使うのであれば、

# rpmbuild --rebuild <SRPMファイル>

これで一撃でbuildできる。




わざわざ、

# rpm -Uvh <SRPMファイル> 

# cd /usr/src/redhat/SPEC
# rpmbuild -ba <SPECファイル>

とやらずに済むので便利。

※そもそも、一撃ビルドせずに、きちんとSPECファイル読めや。変なもん仕込まれてたらどうんだ、ボケ。という憂慮はあるのだが。。。


ちなみに、rpmの-Uオプションは、既に前バージョンのrpmパッケージがインストールされてる場合はアップデート、

インストールされていない場合は、新規インストール(-iオプションと同じ)という便利なオプション。

これ知ってから-iオプションは久しく使っていない。


なお、ネット上で散見される

# rpm --rebuild hogehoge.srpm

これはrpmのバージョン3まで。


○おまけ

ついでに、他にもよく忘れがちになるrpmコマンドの細かいオプションをメモっておく。

(たまにど忘れしてman叩く羽目になるので。。。)




・敢えてインストール済みのパッケージをダウングレードしたい時に。

(Forceでも良いが、ほぼ依存関係壊れるのでこちらで一個ずつ解消することをお薦めする。)


# rpm -Uvh --oldpackage <RPMファイル>




・インストール済みのパッケージを再インストールしたい場合に。

# rpm -Uvh ---replacepkgs <RPMファイル>




・実際にインストールせずに、インストールチェックのみを実施する。

(個人的には毎回使っている。必須。)


# rpm -Uvh --test <RPMファイル>




・RPMファイルを指定して更新履歴を表示する。

# rpm -qp --changelog <RPMファイル>




・既にインストール済みのRPMパッケージの更新履歴を表示する。

# rpm -q --changelog <パッケージ名>




・RPMファイルに含まれるpreinstall/postinstallスクリプトを確認する。

# rpm -qp --scripts rpmファイル




・既にインストール済みのrpmパッケージのスクリプトを確認する。

# rpm -q --scripts <パッケージ名>




・該当ファイルを含むパッケージ名の表示する。

# rpm -qf <ファイル名>




・パッケージが依存しているファイルの表示する。

# rpm -qR <パッケージ名>







rpmのオプションは豊富。

今時はyumでもっと楽に解決できるはずだが、yumが使えない環境などもあるので、少しでも覚えておくといざという時に非常に助かる。

最後に…




困ったらすぐに--nodepsとか--forceを使う奴はエンジニアじゃない!!

(特に過去の自分…)




それでは、また気が向いた時に。