rpmCentOSなどrpmを使っているシステムで、欲しいツールのrpmが見つからない、使いたいツールのバージョンが古いときに、rpmbuildを使って望みのrpmを作成することが出来ます。ウェブを探せば色々と情報はあるんですが、ざっとスタートするときに必要な流れをまとめて書いてみることにしました。専用の環境を準備た方が吉です。centXbuildXXみたいな名前でVMを作ってます。cent4build32.tnmt.localcent5build64.tnmt.localとか。パッケージの依存性もあるので、あまりサードパーティのyumリポジトリなどを追加しないか、実環境と同じリポジトリのみ有効にするとよいです。複数サービスがあったらそれごとにVMを作るのもありかと思います。必要なパッケージ類のインストールrpmbulidに必要なパッケージ類をインストールします。パッケージ名はハイフンつきに注意。installしておくと吉です。TOにもこう載ってます。warned.「rpmビルドはrootでやっちゃだめだぞ、システムにダメージ与える可能性あるからやるなよ、絶対やるなよ!」と書いてありますので、フリじゃなくてきちんとそれにしたがいましょう。自分のアカウントでもいいですが、俺はrpmbuilderなユーザを作ってます。-して環境を設定します。必要なのはビルドに使用するディレクトリと、rpmbuildをコントロールする.rpmmacrosです。ビルドした際にsrc.rpmが出来るようにしていればそれが格納されるディレクトリ.rpmmacrosrpmbuild時に参照される設定一覧です。さきほど作成したrpmbuild以下を使用するために、以下で新規作成を行います。~/.rpmmacros俺はあとdebugパッケージを作らないような設定とsmpの設定を入れてます。smpのj3はmakeの引数になる感じなので適宜自分の環境に合わせてですね。-j3以上2つの作業はepelリポジトリにあるrpmdevtoolsの中のrpmdev-setuptreeで簡単に設定可能です。Diemあとはビルドよくやる2通りを書いておきます。src.rpmをそのままビルドバイナリが提供されていないパッケージが欲しかったり、少しバージョンが古かったりな時に使えます。お目当てのsrc.rpmをダウンロードします。http://foo.var.com/foovar-1.0.src.rpmrpmbuildします。foovar-1.0.src.rpmひと手間加えてビルド既存のパッケージにパッチをあてたり、configureオプションをいじったりするときに使う方法。yum-utilsパッケージ内のyumdownloaderが便利なので合わせて紹介します。このfoovar.specに色々と変更を加えます。以下にあてたいパッチを作成する。configureオプションを変更こんな風にして修正したspecファイルをビルドします。オプションで指定します。ビルドしたマシンのアーキテクチャごとに配置されます。これらを独自yumリポジトリを作成して登録しておくと、各サーバーへのインストールも楽ちんです。独自yumリポジトリ作成については、以下のエントリが参考になります。DiemCobbler便利です。まとめrpmbuildの始め方についてのざっとの流れでした。オレオレパッケージはあまり作らないに越したことはないですが、ソースインストールよりも管理のミスも減りますし、バージョン管理や展開が早く行えるメリットもあるので、今後も色々とやり方の効率化は探っていきたいと思います。