Raspberry piにてapt-srcでパッケージをビルドするには

たとえばhttpdのようなLinuxのパッケージをカスタマイズしてビルドしたいとき。

RaspbianやUbuntu等、Debian系のディストリビューションは、apt-srcコマンドでソースパッケージのダウンロードやビルドが行えるようです。

apt-cacheやapt-getコマンドと同様に、使用しているOSのバージョンに合った適切なソースファイルを取得、ビルドすることができるため、簡単かつ安全な方法かと思います。

Raspbianにて、apt-srcコマンドを使用する手順を記録したいと思います。


Raspbianのapt-srcによるパッケージビルド手順

基本的に、下記の公式Wiki情報に従うかたちです。

全体的な流れは以下になります

  1. apt-srcコマンドのインストール・設定変更
  2. ソースパッケージのダウンロード・ビルド
  3. ビルドしたパッケージをインストール

apt-srcコマンドのインストールと設定

OSはRaspbianを使用しました。

  1. 下記のコマンドで、apt-srcをインストールします。ビルドに必要なbuild-essentialも一緒にインストールしましょう。

  2. /etc/apt/sources.lstファイルを編集します。

    3行目のコメントを外して、deb-src行を有効にしました。

  3. アップデートでパッケージのリストを読み込みます。


以上でapt-srcコマンドを使用する準備ができました。


ソースパッケージのダウンロード・ビルド

パッケージは、apt-cacheやdpkgコマンド等で検索できるかと思います。

ここではサンプルとしてntpをビルドしてみたいと思います。

  1. 対象のソースパッケージをダウンロードします。

  2. ビルド設定をカスタマイズします。詳細は後述致します。
  3. 次のコマンドでビルドします。

うまくビルドできましたでしょうか?


パッケージのインストール

ビルドが完了すると、いくつかの.debファイルが作成されていると思います。

  1. dpkgコマンドでパッケージをインストールします。

これでソースファイルからビルドしたパッケージをインストール、使用できるようになりました・・・と思ったら、どこにコピーされたのでしょう?

ビルドしたバイナリを手動でコピーしましたが、もう少し工夫が必要かもしれません。orz


ビルド設定のカスタマイズ

たとえばビルドする際のconfigureオプションを変更したい場合。

基本的に、debianフォルダの中のrulesファイルを変更するようです。

こちらのDebian公式情報を参照致しますと

「override_dh_auto_configure:」と「dh_auto_configure」を使って、ファイルの最後にオプションの差分を追記または更新(sedコマンド利用)できるようです。

サンプルとして、ntpの–enable-ATOMオプションを有効にするため、下記の行を追加してみました。

dh_auto_configureのインデントはタブを使う必要があります。スペースではビルドエラーになりました。ビルドしたところ・・・override_dh_auto_configure:が反映されていないようです。あれれ?

overrideの代わりに、直接./configure行を書き換えたところ、変更が反映されたようです。既存行の間にオプションを入れる場合、行末の「\」を忘れずに付けましょう。(忘れがち


おそらく、apt-srcが使用できる環境でしたら、ディストリビューションやバージョンに関係なく、上記のビルド方法は使えるかと思います。

Debian、Ubuntu、Raspbian、Armbian、DietPi・・・

さて。どんなパッケージをビルドして遊びましょうか?

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク