Developer's Corner
にある文書には、パッケージ化を始める上でどこからどうやって
手をつけたらよいのかについてあまり書いてありません。この文書ではどんな
細かい(最初見た時はほとんど無関係に思えるような)手順も余さず説明し、
あなたが最初のパッケージを作るお手伝いをします。
ともかく一つ作ってしまえば、あとは次のリリース、そして他のパッケージへ
と経験を積んでいけばよいのです。
パッケージにしたいプログラムについてはすでに各自お考えがあると 思いますが、未経験者なら以下をチェックしてみてください。
パッケージ検索ページ
に行って調べるのが最上の策です。 ((訳注: Debian JP パッケージ
もついでに見ておくといいかもしれません。))
もしあなたが現在の「開発版」ディストリビューションを使って
いるのなら、以下のコマンドを使って調べてみてください。
dpkg -s プログラム名 dpkg -l '*プログラム名*'
WNPP page
((訳注:
作業を必要としているパッケージ
も見ておきましょう))、 あるいは debian-devel メーリングリストで
誰か他の人が同じプログラムのパッケージを作っていないかどうか
確かめてください。もし誰か作っていたら、現在のメンテナに連絡を
とってご自分の要望を伝えてください。それで満足したならば、まだ誰も
手をつけていない他の面白いプログラムを探して再チャレンジです。
Debian
フリーソフトウェアガイドライン、DFSG
で示されているようなフリーのものであれば言うことなしです。 ((訳注:
日本のミラーサイトは Debian
フリーソフトウェアガイドライン
にあります))
もしガイドラインにそぐわない点があっても、Debian の「contrib」や
「non-free」セクションに入れることは可能です。
もしどのセクションに入れればよいか良く分からなければ、 debian-legal@list.debian.org
で聞いてみてください。
もちろんこれらのことは安全策というだけのことです。筆者としては、 何も知らないままにパッケージ化しておまけにミスった ある種の setuid デーモンのせいで 怒り狂ったユーザからあなたに向けて抗議殺到というような事態を 回避したいのです。 パッケージ化についてもっと経験を積めば、こうしたパッケージも 作れるようになるでしょう。しかし、どんなに老練な開発者だって 何か分からないことがあれば debian-devel メーリングリストで質問するの です。そこには喜んで手助けしてくれる人々がいます。
もっと詳しい話は、開発者リファレンスに載っていますので そちらを参照してください。
さて、最初にすべきことは、オリジナルのソースを探してダウンロード することです。ここでは作者のホームページからすでにソースファイルを入手した として話を進めます。 フリーな Linux 用プログラムのソースはふつう tar/gzip 形式で提供されています。 拡張子は .tar.gz で、普通は「プログラム名-バージョン」という サブディレクトリを含んでいます。そこにすべてのソースが入っているわけです。 もしあなたのプログラムのソースが他の種類のアーカイブで提供されていたら (例えばファイル名が .Zとか.zipで終わっていたら)、 適切なツールで展開しましょう。どうやって展開したらよいのか 良く分からなかったら debian-mentors メーリングリストで聞いてみましょう (ヒント: 「file アーカイブファイル名.拡張子」を実行してるとよいかも)。
さて本稿では、「gentoo」というプログラムを例にとって説明しようと 思います。これは X11 上で動く GTK+ を使用したファイルマネージャです。 ちなみにこのプログラムはすでにパッケージ化されており、また、 この文書が最初に書かれた時点から比べると大幅に改変が加えられていることに 注意してください。
自分のホームディレクトリ以下に 'debian'、'deb'、または何か適当だと 思われる名前 (今回の場合には ~/gentoo/ とでもすれば良いでしょう) の サブディレクトリを作りましょう。 ダウンロードしたアーカイブをここにコピーし、 ( tar xzf gentoo-0.9.12.tar.gz を実行して) 展開してください。 この時エラーが (一見「無関係」に思えるようなものでさえ) 起きなかったか どうか、確認しておいてください。 もしエラーが起きたら、それは他の人々のシステム上で展開する際にもおそらく エラーが起きるということです。そしてそこで使われている展開用のツールは こういった異常を無視するかも知れませんし、無視してくれないかもしれません。
さて、「gentoo-0.9.12」という別のサブディレクトリができました。 展開したディレクトリに移って、提供されているドキュメントを 徹底的に読みましょう。 通常は README*、INSTALL*、*.lsm、*.html などといった名前のファイルが あり、 それらの文書の中に、どうやったら正しくコンパイルできるのか、 どうインストールすればよいのかといった情報が見つかるはずです。 (たぶん /usr/local/bin にインストールするものとして説明されていますが、 そうしてはいけません。これについては サブディレクトリへのインストール, Section 3.1 を 参照してください)。
プログラムによって構築の手順は代わりますが、最近のプログラムだと 「configure」スクリプトが付属していることがあります。 このスクリプトはソースをあなたのシステムに応じて設定し、あなたの システムにおいてコンパイルできるかどうか確かめます。 設定したあと(「./configure」と実行)、プログラムは普通 「make」でコンパイルされます。「make check」でプログラムに含まれている 自己診断テストを実行できるものもあります。 目的のディレクトリへのインストールは一般に「make install」によって 実行されます。
さあ、試しにプログラムをコンパイルし、実行してみましょう。 インストール中や実行中に他の何かを壊してしまうことが無いかどうか、 またちゃんと動作するかどうか、などを確認してください。
それから、「make uninstall」を実行するとインストールされたファイルを すべて削除できる場合が多いです。また 「make clean」(もっと良いのは 「make distclean」) を実行するとコンパイル用のディレクトリを きれいにしてくれます。
パッケージ化の作業は完全にクリーンな (オリジナルのままの) ソースディレクトリ、簡単に言えば新しく展開したソースから始めるべきです。
パッケージをきちんと作るためには、(もしまだそうなっていなければ) プログラム名がすべて小文字になるよう、オリジナルの名前から 変更しておかなければいけません。 またソースディレクトリ名を <パッケージ名>-<バージョン> に 変更しておきましょう。
もしプログラムの名前が一語以上で構成されていたら、 一つの語につなげるか省略形にしましょう。 例えば、「John's little editor for X」というソフトウェアならば johnledx とか jle4x というようにしましょう。あまり長すぎない程度、 せいぜい 20 文字くらいまでの長さで、適当に決めて下されば結構です。
プログラムの正確なバージョンもチェックしましょう (パッケージのバージョンに含めるために)。 もしそのソフトウェアが「バージョン X.Y.Z」という形式で番号付けされて おらず、ある種の日付で区別されている場合には、バージョン番号として "0.0." にその日付を続けたものを使ってもいいでしょう (先頭に "0.0." を付けておくのは、上流の開発者たちがある日 1.0 のような素敵なバージョンをリリースすると決めた場合に備えての ことです。) つまり、もしリリースの、あるいはスナップショットの 日付が 1998 年の 12 月 19 日だったら、0.0.19981219 としておけば 結構です。 およそバージョン番号に使えそうな情報がまったくないと言う場合、 上流メンテナに連絡をとって彼らが何か他のリビジョン管理手段を 使っているかどうか聞いてみましょう。
現在プログラムのソースディレクトリにいることを確認し、以下を 実行してください。
dh_make -e your.maintainer@address -f ../gentoo-0.9.12.tar.gz
もちろん、"your.maintainer@address" の部分は changelog の
エントリやその他のファイルに記載するための、あなたの電子メール
アドレスに置き換えてくさい。またファイル名はオリジナルソース
アーカイブの名前に置き換えてください。 詳細は dh_make(1)
を参照してください。
画面にはいろいろ表示されて、あなたが作ろうとしているパッケージ がどういう種類のものか聞いてきます。gentoo は 単一バイナリパッケージ - すなわちパッケージに含まれるバイナリが一つだけで、一つの .deb ファイル のみが作成される - ですので最初の選択肢を選び、「s」キーを押しましょう。 その後、画面に表示される情報をよく読み、確認したら <enter> を押して ください。 初めてパッケージを作るというときには、マルチバイナリパッケージや ライブラリに手を出さない方が無難です。この話は前にもしましたね。 実際には作業自体はそれほど大変ではないのですが、ちょっとだけ より多くの知識が必要になります。そのため、ここではそれについてごちゃごちゃ 説明することは控えます。
dh_make の実行は ただ一度だけ です。注意して ください。既に「デビアン化」された同じディレクトリで再び実行すると、 正しく動作しないでしょう。これはつまり、将来パッケージの改訂版や 新バージョンをリリースする時には別の方法を使うことになる、ということでも あります。後で説明する パッケージの更新, Section 6.4 の部分をしっかり読んでください。
jrodin@jagor.srce.hr
mhatta@debian.or.jp