DebianやUbuntuで公式パッケージのソースをダウンロード/ビルドする

こんにちは。今回のテーマは『DebianやUbuntuで公式パッケージソースをダウンロード/ビルドする』です。最近、Debianで公式パッケージのソースをビルドする機会がありまして、改めてAPTってよく出来てるなと思ったので記事にしました。個人的な備忘録的な記事ですので人様の役にはたたないかも知れませんが・・・
【関連記事】
意外に簡単!Debパッケージを自作する方法



【目次】
Debian系はソースのダウンロードもAPTで
Debianの公式パッケージのソースをダウンロードする
ダウンロードしたパッケージをビルドする
ソースのダウンロードとビルドを同時に行うには

Debian系はソースのダウンロードもAPTで

Debian系の公式パッケージはバイナリで配布されているので、通常はAPTでインストールするだけでソースをダウンロードする必要はありません。しかし、プログラムの修正や学習のため等の理由でソースをダウンロードしたいということは結構あります。Debian系のディストロはソースのダウンロードやパッケージのビルドも割と簡単に行うよう工夫がされています。詳しくは公式ドキュメントをご覧ください。

Debianの公式パッケージのソースをダウンロードする

一般的なソースをダウンロードするコマンドは以下となります。

apt-get source <パッケージ名>

今回は例として~/temp/mousepadディレクトリにエディタソフトmousepadのソースをダウンロードしてみます。

$ mkdir -p ~/temp/mousepad/
$ cd ~/temp/mousepad
$ apt-get source mousepad

これでソースがダウンロードされました。package-versionの形式でソースパッケージが展開されています。
01

ダウンロードしたパッケージをビルドする

準備

まず、ビルドに必要なパッケージを揃える必要があります。もし、build-essentialがインストールされていない場合は以下コマンドでインストールします。

$ sudo apt-get install build-essential

APTではソースパッケージをビルドするのに必要なソフトウェアをインストールする機能としてapt-get build-depコマンドがあります。今回はmousepadをビルドするのに必要な環境を整えてみます。

$ sudo apt-get build-dep mousepad

これでmousepadをビルドする環境が整いました。

ビルド

今回は前段でダウンロードしてきたmousepadのソースをビルドしてみます。ビルドは展開されたディレクトリに移動して行って下さい。

$ cd temp/mousepad/mousepad-0.3.0
$ dpkg-buildpackage -b -uc

ビルドが無事に完了すれば以下の様にdebパッケージが作成されています。このパッケージはdpkg -iやgdebiコマンドでインストール可能です。
02

ソースのダウンロードとビルドを同時に行うには

特にソースに修正する必要がない場合はソースのダウンロードと同時にビルドすることも可能です。ただし、前述のビルド準備は必要ですので注意して下さい。ビルド環境が整ったら以下のコマンドを実行するだけで自動的にソースがダウンロードされビルドされます。

例えばmousepadのソースを~/temp/mousepadにダウンロードして自動的にdebパッケージをビルドしたい場合は以下のようにします。

$ cd ~/temp/mousepad
$ apt-get -b source mousepad

実行するとダウンロードとビルドが一度に自動で行われて、マニュアルでソースをビルドした場合と同じ結果となります。

最後に

バイナリパッケージはとても便利で普通に使う分にはソースファイルをダウンロードしてビルドする機会など少ないかも知れません。オープンソースソフトの醍醐味はソースが見れるという点にもあると思います。この記事が何かのお役に立てば幸いです。

Sponsored Link


2件のコメント

  • 初めまして。
    Xubuntu 14.04(+elementay os 3.2)使いのもので、
    こちらのページの有益な情報を参考にさせて頂いています。
    さて、この記事にありましたコマンド”$ sudo apt-get install build-essential”ですが、
    このコメントに先立って、端末から実行してみましたが、
    以下の表示がありました。
    パッケージリストを読み込んでいます… 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています… 完了
    パッケージ build-essential はデータベースには存在しますが、利用できません。
    おそらく、そのパッケージが見つからないか、もう古くなっているか、
    あるいは別のソースからのみしか利用できないという状況が考えられます

    E: パッケージ ‘build-essential’ にはインストール候補がありません

    この状態について、対策をご存知でしたら、ぜひご返信いただきたいのです。
    (elementaryのnoiseプレイヤーをインストール出来ず、こうしたコマンドライン操作なら、圧縮ファイルからインストールできる、と思ったのです)
    以上、よろしくお願いいたします。

    • xubuのしろうと さん

      はじめまして。コメントありがとうございます。

      ご質問の件ですが、頂いたエラー内容からするとリポジトリからbuild-essentialパッケージが取得できない状態になっていると推察されます。
      当方の方ではbuild-essentialはインストールできましたので、パッケージ自体は有効だと思います。
      対策としては以下の2つが思いつきますが、動作の保証はできかねますので、ご了承下さい。
      1.リポジトリ情報の更新
      これは既に試みているとは思いますが、念の為実行下さい。
      sudo apt-get update && sudo apt-get upgrade

      2.リポジトリサーバーの変更
      ダウンロード元のリポジトリサーバーを変更すると上手くいくかも知れません。
      手動で行う場合は/etc/apt/sources.listを編集することになりますし、
      「ソフトウェアとアップデート」ならGUIで操作可能な筈です。

      また、noise music player をUbuntuにインストールする記事をみつけましたので参考までに載せておきます。
      http://www.tutorialspoint.com/articles/how-to-install-noise-music-player-on-ubuntu

      曖昧な回答で申し訳ありませんが、良いLinuxライフを送ってくださいね!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です