自分の環境に合わせてRPMを再構築

けっこう長いことLinuxを使っていますが、SRPMを使ってRPMを再構築したのは初めてだったりします。

Vine Linux用のSamba3.0.10が、なぜだかldapsamをオフにしてビルドされてるみたいなんです(明示的にオフにしないかぎり使えるはずのオプションなのに)。普通にソースからコンパイルしても良いのですが、別のサーバーにも導入したかったこともあり、RPMのリビルドに挑戦してみました。

挑戦してみたといっても、オンラインマニュアルの記述そのままですけれど、忘れないようにメモメモ。
マニュアルはこちら
もう一つ、specファイルを書き換えた場合のリビルド方法として、@ITのこちらの記事を参照しました。

mkrpmdir .

もしくは

mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}}
echo "%_topdir $HOME/rpm" > ~/.rpmmacros

としてビルド用のディレクトリを作り、

apt-get build-dep samba

で関連するライブリラリなどをインストール。

apt-get source samba

でSRPMSを取得して、これを展開します。
でもこの展開の仕方が分からない。とりあえず、

apt-get -b source samba

として普通にリビルドを初め、すぐに途中終了させます。こうすると、ソースが展開されてます。強引ですけど。そして、SPECSディレクトリ内のspecファイルを開き(たしかsamba3.specだった気がします)、最初の方にある$ldap(大文字だったかも)に1を指定します。ここが0だと、わざわざ--without-ldapsamするようになってるんですね。

そしていよいよリビルドです。

rpm -bb スペックファイル名.spec

あとはひたすら待つだけです。RPMSディレクトリ内にRPMが出来上がるので、それをインストールすれば出来上がり。よしよし。

ちなみに、FedoraCore3用しかないSamba3.0.10をFedoraCore1でも使いたい、といった場合も、同じ手順でFedoraCore1上でリビルドすればOKでした。ただ、mkrpmdirコマンドがないので手動で作成する必要があるのと、rpm -bbの代わりに

rpmbuild -bb スペックファイル名.spec

を使うといった違いがあります。どちらかといえばFedoraのほうがスタンダードなのでしょうか。とにもかくにも、また少し、Linuxのスキルをアップすることが出来ました。RPMであればアップデートも楽ですからね。specファイルを自分で作成するところまでは行きませんけれど、なんとなく方法も分かってきましたし。RPMの作り方が分かってくると、Linuxサーバーの管理もだいぶやりやすくなってきますね。

コメント

zenback

このブログの人気の投稿

夢のようだ・・・

アップルのソフトウェア・アップデート画面の用語のわかりづらさはなんとかならないものか

DuraSpeedとかHuaweiの電源管理とか、やめてくれ