Fork me on GitHub

Ubuntu Debパッケージの作成

  • May 07, 2010

categoryプラグインは存在しません。categoryプラグインは存在しません。

概要

Ubuntu上でdebパッケージを作る方法です。とりあえずバイナリパッケージのみを手っ取り早く作ります。

環境

手順

必要ソフトのインストール

sudo aptitude install dpkg-dev dh-make debhelper fakeroot

以下は必要に応じて。

sudo aptitude install devscripts gnupg lintian pbuilder devscripts

インストールするソフトの用意

本来は通常のオープンソースツールをDebian用にパッケージするためのツールなので、決まった形式のファイルとフォルダを用意しておく必要があります。例えばツールの名前がhogeで、バージョン1.0だった場合、

hoge-1.0.tar.gz
hoge-1.0/
  ソースやバイナリファイル群

という関係で、tar.gzファイルとフォルダを用意しておきます。元がBazaarリポジトリだった場合、フォルダの名前を上記のように変更してから、

cd hoge-1.0
bzr export ../hoge-1.0.tar.gz

としてやるとtar.gzファイルを作れます。

ひな型ファイルの生成

上記の形式のフォルダを用意した後、

dh_make -e [email protected] -c gpl -f ../hoge-1.0.tar.gz

と実行すると、debianというフォルダが作られてその中にcontrolなどの必要ファイルのひな型が生成されます。

ひな形ファイルが出来上がったら、上記tar.gzファイルは削除してしまっても問題ありません。

設定ファイルの編集

重要なのは、

  • control
  • rules
  • postinst
  • changelog

あたりです。

controlには主に依存関係と説明を記述します。

依存関係は

Depends: python, ruby

という感じで列挙していきます。途中で改行しても大丈夫です。

説明は

Description: 短い説明
 長い説明

と言う感じに記述します。もちろん英語です。

あとは、rulesファイルにmakefile形式でインストール方法を記述します。注意するのは、DESTDIRとして書かれている

hoge-1.0/debian/hoge/

を、ルートディレクトリと見立ててインストールするという点です。

例えば、/usr/bin にインストールする hoge-exec であれば、

hoge-1.0/debian/hoge/usr/bin/hoge-exec

にインストールします。またrulesに書かれたインストール処理はパッケージを作成する際に行われ、配布したパッケージを実際にインストールする際にはここからファイルがコピーされるだけです。

あとは、パッケージのインストール後に設定等が必要な場合は、postinstなどに必要な処理を記述しておきます。

changelogの最初の行には、作成するパッケージのバージョンを記述します。バージョンは、1.0-2のように、オリジナルのバージョンの後ろにパッケージのバージョンを付加する形にします。

changelogの編集には、以下のようにdevscriptsに含まれるdebchangeコマンドを使うと便利です。

debchange -i

パッケージの作成

dpkg系のコマンドを使うとソースのパッケージの作成も同時に行われるので、バイナリパッケージだけを作成するには、

cd hoge-1.0
fakeroot debian/rules binary

とすると、一個上のディレクトリにdebファイルができます。あとはこのdebファイルを配布すれば簡単にインストールができます。

debファイルのインストール

debファイルが依存関係を多く持っている場合は、apt用パッケージリストを作って、apt-getなどでインストールします。

参考