[ 前のページ ] [ 著作権表示 ] [ 目次 ]

Debian メンテナ入門
章 6 最終段階


6.1 パッケージの構築

プログラムのメインディレクトリに移動して 以下のコマンドを実行してください:

       dpkg-buildpackage -rfakeroot

途中で PGP の秘密鍵を 2 回入力する必要がありますが、 それを除けばこのプログラムにすべてお任せで大丈夫です。 一連の作業が終わった後、上記のディレクトリ (~/debian/) には 新しいファイルが 4 つ作成されているはずです。

大規模なパッケージの場合には、debian/rules をちょっといじるたびに 毎回最初からパッケージの再構築をやりなおしたくはないでしょう。 テスト目的の場合、以下のようにすれば上流 (upstream) ソースの再構築を しないで .deb ファイルを生成できます。

       fakeroot debian/rules binary

`dh_clean -k` が確実に毎回実行されるように、「install」ルールが 「install-stamp」という子供 (これは最近のデフォルトです) を *持たない* ことだけは確認してください。それから、最終的にきちんとテストが 完了したら、ちゃんと upload できるようにするため、正しい手順に 従ってパッケージを再構築することを忘れないようにしてください。


6.2 できたパッケージの誤りを調べる

lintian(1)をあなたの .changes ファイルに かけてみましょう。このプログラムはパッケージ化におけるよくある間違いを チェックしてくれます。実行するコマンドは:

       lintian -i gentoo_0.9.12-1_i386.changes

もちろん、ファイル名はあなたのパッケージのために生成された changes ファイルの名前に置き換えてください。 もしエラー (E: で始まる行) が表示されたなら、説明 (N: の行) を 読んで誤りを訂正し、パッケージの構築, Section 6.1 に記述されているように 再構築してください。 W: で始まる行は単なる警告ですので、もし大丈夫だという確信があれば 無視してしまっても結構です (しかし多くの場合には、 修正すべき点が何かしら存在しているようです)。

dpkg-buildpackage によるパッケージの生成と、lintian の実行を すべてひとつのコマンド debuild(1) で 行なってしまうこともできます。

mc(1) などのファイルマネージャを 使ってパッケージの中を見たり、dpkg-deb(1) を使ってパッケージの中身を一時的な場所へ取り出したりしてみましょう。 なにかがうまく行かなくて、妙なものが削除されないままに残されて しまった場合に備えて、バイナリおよびソースパッケージの両方について 不要なファイルが余分に含まれたりしていないかどうか、 しっかり検査してください。 ヒント: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz` を実行すると、 ソースファイルに対してあなたが行なった変更や追加のリストを 得ることができ、また `dpkg-deb -c gentoo_0.9.12-1_i386.deb` を 実行するとパッケージ中のファイルのリストを得ることができます。

自分でパッケージをインストールして試してみましょう。 例えば、debi(1) コマンドを root で 実行してみましょう。 自分の環境以外のマシンでも試してみて、インストール時や実行時に 警告やエラーが発生しないか注意深く観察してみてください。

また、後日プログラムの新版を元にしたバージョンを構築する際には、 パッケージが基本的にアップグレード可能であることを検証するために、 以下を実行してください。


6.3 パッケージをアップロードする

徹底的に新パッケージをテストしたら、次にこれらのファイルを dupload(1) を使って master.debian.org に アップロードする必要があります。 まず dupload の設定ファイル ~/.dupload.conf を編集しましょう 以下はこのファイルの例です。

       package config;
       $default_host = "master";
       
       $cfg{"master"}{"method"} = "scpb";
       $cfg{"master"}{"login"} = "joy";
       $cfg{"master"}{"visibleuser"} = "jrodin";
       $cfg{"master"}{"visiblename"} = "jagor.srce.hr";
       $cfg{"master"}{"fullname"} = "Josip Rodin";
       
       $cfg{"non-us"}{"method"} = "scpb";
       $cfg{"non-us"}{"login"} = "joy";
       $cfg{"non-us"}{"visibleuser"} = "jrodin";
       $cfg{"non-us"}{"visiblename"} = "jagor.srce.hr";
       $cfg{"non-us"}{"fullname"} = "Josip Rodin";
       
       1;

もちろん、私の個人的な設定の部分はあなたの設定に従って 変更してください。またそれぞれのオプションが持つ意味を理解する ために dupload.conf(5) マニュアルページ を読んでください。

インターネットプロバイダに接続し、以下のコマンドを 実行してください:

       dupload --to master gentoo_0.9.12-1_i386.changes

dupload は各ファイルの md5 チェックサムを計算し、 .changes ファイルの中の情報と照合します。もし一致しない時は 正しく upload できるように パッケージの構築, Section 6.1 の説明に従って 再構築するよう、警告してきます。

dupload は master.debian.org 上でのあなたのパスワードを 質問し、パッケージを upload し、今回のあなたの upload に ついての短いアナウンスを必要に応じて debian-devel-changes@lists.debian.org に流します。

もしあなたがヨーロッパに住んでいるなら、master の代わりに 他のいくつかの upload queue を利用することが可能です。 詳細については dupload(1)dupload.conf(5)、 および開発者レファレンスを参照してください。


6.4 パッケージの更新

例えば仮に、#54321 という番号のバグレポートがあなたのパッケージ に対してファイルされ、解決するべき問題が記述されていたとしましょう。 パッケージの新しい Debian レビジョンを作成するには、以下を実行する 必要があります。

さて、ではまた別の、もうすこし複雑な状況を考えてみましょう - 新しい上流のバージョン (new upstream version) がリリースされ、 もちろんあなたはそれをパッケージ化したい、という状況です。 この場合、以下を実行する必要があります。

もし 「debian/watch」ファイルを watch.ex, Section 5.6 で 説明したように設定していれば、 uscan(1) を実行して、改訂されたソースを探して、ダウンロードし、 uupdate を実行、という手順を自動的に行なわせることができます。


6.5 相談するには

公共の場で質問する前に、まずはマニュアルを読みましょう。 ここでいうマニュアルには、例えば /usr/share/doc/dpkg、 /usr/share/doc/debian、/usr/share/doc/package/* といった ディレクトリに含まれる文書や、この文書で言及されたプログラムに 関する man/info ページなどが含まれます。 もしあなたがバグレポート (そう、ホンモノのバグレポートです!) を受け取ったら、それはあなたが Debian バグ追跡システム をじっくり調べて、そこにある文書を読み、バグレポートに効率よく 対処する方法を知る時が来たということです。

Debian Mentors メーリングリスト debian-mentors@lists.debian.org に参加すれば、あなたの質問に答えてくれる経験豊富な Debian 開発者に 相談することができます。このリストに参加するには、 サブジェクト (件名) に「subscribe」という単語を書いたメールを debian-mentors-request@lists.debian.org 宛に送ってください。

それでもまだ質問があるのなら、Debian Developers メーリングリスト debian-devel@lists.debian.org で尋ねてみるとよいでしょう。 このリストに参加するには、 サブジェクト (件名) に「subscribe」という単語を書いたメールを debian-devel-request@lists.debian.org 宛に送ってください。 もしあなたが Debian 開発者だったら、どっちにしてもこのリストに 参加するべきです。

((訳注: 日本では、Debian JP Project が主催する Debian JP 開発者 メーリングリスト debian-devel@debian.or.jpに参加して質問して みても良いでしょう。 このリストに加入するにはメール本文に 「subscribe あなたのお名前 (ローマ字で)」を書いて debian-devel-ctl@debian.or.jp に送り、あとは管理サーバの 指示にしたがってください。 Debian JP Project では他にもいくつかのメーリングリストを用意しています。 詳しくは メーリングリスト を参照してください。))

万事うまく行ったとしても、神様にお祈りを忘れずに。 なんでかって?考えても見てください、ほんの数時間の内に (あるいは 数日かかるかも知れませんが) 世界中のユーザがあなたのパッケージを 使うようになるのです。 そしてもしあなたがとんでもないヘマをしでかしていたら、きっと数知れぬ 怒れる Debian ユーザからメール爆撃を食らうはめになるでしょう… まあ冗談ですけど :-)

楽に構えて、バグ報告に対応する準備をしましょう。 それに、Debian ポリシーに完全に沿うようにするまでには まだまだやるべきことがいっぱい残っています。 (もう一度言いますが、ちゃんとした文書 を読んで勉強しましょう)。 好運を祈ります!


[ 前のページ ] [ 著作権表示 ] [ 目次 ]
Debian メンテナ入門
version 1.0, 2000 年 1 月 25 日
Josip Rodin jrodin@jagor.srce.hr
翻訳: 八田真行 mhatta@debian.or.jp