これでパッケージを構築する準備が整いました。
プログラムのメインディレクトリに移動して 以下のコマンドを実行してください:
dpkg-buildpackage -rfakeroot
このコマンドは、あなたのためにパッケージ構築の 作業をすべて行なってくれます。これには以下の作業が 含まれます。
fakeroot
を使ったソースツリーの初期化 (debian/rules clean)
fakeroot
を使ったバイナリパッケージの構築 (debian/rules binary)
gnupg
を使ったソース .dsc ファイルへの署名
dpkg-genchanges
および gnupg
を使った アップロード用
.changes ファイルの作成および署名
途中で GPG の秘密鍵を 2 回入力する必要がありますが、 それを除けばこのプログラムにすべてお任せで大丈夫です。
一連の作業が終わった後、上記のディレクトリ (~/debian/) には 以下のファイルが作成されているはずです。
これは単に Debian 標準に合わせるために名前を変更しただけで、
中身はオリジナルなソースコードの tar アーカイブです。 これは
dh_make
を最初に実行した際、「-f」オプションを
指定して作成されたということを覚えておいてください。
これはソースコードの内容の概要です。このファイルは
あなたの「control」ファイルから生成され、 dpkg-source(1)
によって
ソースを展開する時に使われます。 このファイルは GPG
で署名されているので、本当にあなた自身が
作成したものかどうかを利用者が検証できます。
この圧縮されたファイルにはあなたがオリジナルのソースコードに
行なったすべての変更や追加などの情報が「unified diff」の形式で
含まれています。これは dpkg-source(1)
によって生成され、また利用されます。警告: もしオリジナルの tar
アーカイブの名前を packagename_version.orig.tar.gz の形式に
変更していなかった場合、dpkg-source
を使って 適切な .diff.gz
ファイルを作成できなくなります!
上記の 3 つのファイルを使えば、誰でも簡単にあなたのパッケージを 最初から再構築できます。ソースツリーを取り出す手順は簡単です。 単にこれらの 3 つのファイルをどこか別の場所にコピーして、 dpkg-source -x gentoo_0.9.12-1.dsc. を実行するだけです。
これは作成されたバイナリパッケージです。他のすべてのパッケージと
同じく、dpkg
を使ってインストールしたり削除したりできます。
このファイルは現在のレビジョンのパッケージにおける変更点を すべて記載したもので、Debian FTP アーカイブ管理プログラムに よってバイナリおよびソースパッケージを FTP アーカイブに インストールするために利用されます。 これは「changelog」ファイルと .dsc ファイルとを元にして 生成されます。このファイルは GPG で署名されているので、 パッケージの利用者はこのファイルが本当にあなた自身が作成した ものかどうかをちゃんと判断できます。
パッケージの保守管理を続けていくと、プログラムの動作が 変更されたり新機能が追加されたりすることがあります。 あなたのパッケージをダウンロードする人は、このファイルを見れば 何が変わったのか一目で分かります。 またこのファイルの中身は Debian アーカイブ管理プログラムによって debian-devel-changes メーリングリストへ流されます。
.dsc ファイルと .changes ファイルに記載されている長い数字の 羅列は各ファイルの
MD5 チェックサムで、パッケージをダウンロード した人は md5sum(1)
を使って整合性を テストすることができます。もし数字が一致しない場合には、
ファイルが壊れているか、あるいは何者かによって改ざんされている
と分かるわけです。
大規模なパッケージの場合には、debian/rules
を
ちょっといじるたびに、毎回最初からパッケージの再構築を
やりなおしたくはないでしょう。 テスト目的の場合、以下のようにすれば上流
(upstream) ソースの 再構築をしないで .deb ファイルを生成できます。
fakeroot debian/rules binary
最終的にきちんとテストが完了したら、正しい手順に従って パッケージを最初から再構築することを忘れないでください。 このやり方で生成した .deb ファイルをアップロードしようと しても、おそらくきちんとアップロードできないでしょう。
Debian 新メンテナガイド
version 1.2, 6 April 2002.joy-mg@debian.org
mhatta@debian.or.jp
sano@debian.org