2011年8月19日金曜日

RPM作成時にdebuginfoパッケージが作成されないときの対処方法

先日ZABBIX-JPでRHEL6/CentOS6用のZabbixのパッケージを作成するために、CentOS6のビルド環境を作成したのですが、その際にdebuginfoパッケージが作成されないことに少しハマったのでメモとして書いておきます。

解決方法は簡単で、redhat-rpm-configパッケージをインストールすればOKです。このパッケージがインストールされていなくて、debuginfoパッケージが作成されない場合、バイナリ自体にデバッグ情報が含まれてしまうために出来上がったRPMファイル自体のサイズが少し大きくなります。以下はzabbix-server-mysqlパッケージの比較です。

  • debuginfoなし: 373744 byte
  • debuginfoあり: 355073 byte

Webで検索するとdebuginfoパッケージを作成しない方法は多いのですがdebuginfoが作成されないときの対応方法はあまり出てきません。debuginfo自体あまり使う人も多くないので仕方がないのでしょう。

ただ、debuginfoを作らないことによって実行バイナリに不要な情報が含まれてしまうので、かなり微々たる差ではありますけど、debuginfoが不要な場合でも作成はしておき、配布はしないようにした方が良いのではないかと思います。

ビルド環境を作成するときにOSのインストーラで「すべてのパッケージ」を選択してインストールしていればこういった問題がは出ないのでしょうけど、私は普段ディスクを無駄遣いしないために(MacBook AirのSSDは128GBしかないので)普段から最小構成インストールしています。

この問題、以前にも同じ状態になって何度か調べている気がします。解決の糸口が見つかりにくいのでrpm-buildパッケージと依存関係つけておいてくれればいいのに、と毎回思ってます。

0 件のコメント: