13
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

いっつも忘れてしまうので、例によってメモ代わりに。
タイトルは釣りです。


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を使う奴はエンジニアじゃない!!
(特に過去の自分…)


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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
13
Help us understand the problem. What are the problem?