2011年11月18日金曜日

bind9をリビルド

今日うちのキャッシュサーバを更新してみたら
debianのセキュリティアップデートが来ていたので、
更新しました。ただし、debianのパッケージでは
filter-aaaaが無効(defaultだけど)になっているので、
再度有効化したうえで独自パッケージとしてインストールします。

debianのパッケージではconfigure/Makefileの代わりに
debian/rulesを記述してプリプロセス/ポストプロセスも含めた
統合管理できる形で配布しているようです。

今回のように使いたい機能があっても無効になっているなどの
場合は自分で再構築する必要があります。


パッケージ再構築の方法は検索でいくらでもでてきたので
今回のトラブルシュートの覚え書きを。
・必要な依存関係のパッケージ
# apt-get build-dep bind9

作業はapt-get sourceで取得した際に作成されるソースの
トップディレクトリで行う。

・debian/rulesの編集
debianってディレクトリがあるけど、パッケージを作る際に
行ったり来たりが面倒なのでcdせずに編集する。

少しスクロールするとconfigureのオプションがリストに
列挙してあるのでそこに--enable-filter-aaaaを追加する。

※今回のトラブルの大元
rulesファイルは基本的にはMakefileと同等の記述ルールに基づきます。
そのためアクションとして動かすコマンドの行頭にタブが無い場合
エラーになります。(スペースでもダメ)
今回dh_clean以降でエラーになったのはそのため。
missing separatorってなんだよってのはこの行頭タブがないことでした。
追記:
別マシンのi386で確かめたところ、こっちはちゃんとタブに
なってました。armelだけかも。

# dpkg-buildpackage -rfakeroot -uc -b
でパッケージのビルドが開始されます。
玄箱Proだとそれなりに時間がかかります。

作成されるパッケージはソースのトップディレクトリの
さらに上のディレクトリにできます。(apt-get sourceを実行したところ)
気をつけないとぐちゃぐちゃになるので注意。

0 件のコメント:

コメントを投稿