[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 次のページ ]
パッケージにしたいプログラムについてはすでに各自お考えがあると
思います。まず最初にしなければならないことは、そのパッケージが
すでにディストリビューションに収録されていないかどうか確認することです。
もしあなたが「安定版」を使っているのなら、 たぶん パッケージ検索ページ
に行って調べるのが最上の策です。 ((訳注: Debian JP パッケージ
もついでに見ておくといいかもしれません。))
もしあなたが現在の「開発版」ディストリビューションを使って
いるのなら、以下のコマンドを使って調べてみてください。
dpkg -s プログラム名 dpkg -l '*プログラム名*'
もしパッケージが既に存在していたら、インストールしましょう! :-)
もしそのパッケージが「みなし子」にされていたら (もしメンテナの名前が 「Debian
QA Group」になっていたら)、そのパッケージを引き取ることが
できるかもしれません。 みなしごにされたパッケージ
および 引き取り手を探しているパッケージ
を調べて、本当にそのパッケージが引き取ってくれるメンテナを
待っている状態なのかどうか、確認してください。
もしパッケージを引き取ることができたら、 (apt-get source パッケージ名 などの方法で) ソースを入手して、調べてみてください。 残念ながらこの文書ではパッケージを引き取ることについて わかりやすく説明してはいません。ありがたいことに、既に 誰かがあなたのためにパッケージを準備してくれたわけですから、 そのパッケージがどのように動作するのか理解することはそれほど 難しくはないでしょう。 とはいえ、そうした場合でもこの文書に書かれた多くのアドバイスは そのまま通用しますから、このまま読み進んでいってください。
もしあなたの選んだプログラムがまだパッケージ化されていない もので、それを Debian に入れたいと決めたなら、以下のチェック 項目について確認してください。
作業中のパッケージ
((訳注: 作業を必要としているパッケージ
も見ておきましょう))、
を見て、誰か他の人が同じプログラムのパッケージを作っていないかどうか
確かめてください。もし誰か作っていたら、必要に応じて連絡をとって
ください。もしその必要が無ければ、まだ誰も手をつけていない
他の面白いプログラムを探して再チャレンジです。
プログラムはライセンスを与えられていなければなりません。
そのライセンスが Debian
フリーソフトウェアガイドライン、DFSG
に示された基準を満たす「フリー」なものであれば言うことなしです。 ((訳注:
日本のミラーサイトは Debian
フリーソフトウェアガイドライン
にあります))
もしガイドラインにそぐわない点があっても、ライセンスが
プログラムの配布を許可している場合には、Debian の「contrib」や
「non-free」のセクションに含めることができます。
もしどのセクションに入れるべきか迷ったら、 debian-legal@list.debian.org
で聞いてみてください。
動作のために setuid root が必要なプログラムを パッケージ作成の最初の練習問題として選ぶべきでは ありません。 さらに言えば、すべての場面において setuid や setgid でさえも 必要とすべきではありません。
デーモンとして動作するプログラムや、システム管理者の ための専用のコマンド (*/sbin ディレクトリに含まれるもの)、 また root 特権を使ってポートを開くプログラムは、すくなくとも 最初は避けておいたほうが賢明です。
バイナリ実行形式として使えるプログラムを選びましょう。 ライブラリをパッケージ化するのはずっと難しいのです。
ちゃんとした説明書きのあること。あるいは理解可能な ソースコードであること (つまり、コードに書かれた処理の流れが 混乱していないこと)。
プログラムの作者に連絡をとってパッケージ化の承諾をもらいましょう。 何かプログラムそのものに起因する問題が発生した際に、作者にいろいろ聞けると いうことは重要なので、由来のはっきりしないソフトウェアの断片をパッケージ化 するのはやめておきましょう。
そして最後に、といってもこれが重要なのですが、 ちゃんと動くかどうか確かめましょう。そして何回か試してみましょう。
もちろんこれらのことは安全策というだけのことです。筆者としては、 何も知らないままにパッケージ化しておまけにミスった ある種の setuid デーモンのせいで 怒り狂ったユーザからあなたに向けて抗議殺到というような事態を 回避したいのです。 パッケージ化についてもっと経験を積めば、こうしたパッケージも 作れるようになるでしょう。しかし、どんなに老練な開発者だって 何か分からないことがあれば debian-mentors メーリングリストで 質問するのです。そこには喜んで手助けしてくれる人々がいます。
もっと詳しい話は、開発者リファレンスに載っていますので そちらを参照してください。
さて、最初にすべきことは、オリジナルのソースを探してダウンロード することです。ここでは作者のホームページからすでにソースファイルを入手した として話を進めます。 フリーな Unix 用プログラムのソースはふつう 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 にインストールするものとして説明されています が、 そうしてはいけません。これについては サブディレクトリへのインストール, 第 3.1 節 を 参照してください)。
プログラムによって構築の手順は代わりますが、最近のプログラムだと 「configure」スクリプトが付属していることがあります。 このスクリプトはソースをあなたのシステムに合わせて設定し、 このままコンパイルできるかどうかをチェックします。 たいていのプログラムは「./configure」を実行してソースコードの 設定を行なった後、「make」を実行してコンパイルします。 「make check」でプログラムのソースツリーに含まれている 自己診断テストを実行できるものもあります。 目的のディレクトリへのインストールは一般に「make install」によって 実行されます。
さあ、試しにプログラムをコンパイルし、実行してみましょう。 インストール中や実行中に他の何かを壊してしまうことが無いかどうか、 またちゃんと動作するかどうか、などを確認してください。
それから、たいていの場合は「make clean」(「make distclean」を 使えるならそのほうが良いです) を実行すると、コンパイル用の ディレクトリをきれいにしてくれます。さらに「make uninstall」を 実行するとインストールされたファイルをすべて削除できることさえも あります。
パッケージ化の作業は完全にクリーンな (オリジナルのままの) ソースディレクトリ、簡単に言えば新しく展開したソースから 始めるべきです。
パッケージをきちんと作るためには、(もしまだそうなっていなければ) プログラム名がすべて小文字になるよう、オリジナルの名前から 変更しておかなければいけません。 またソースディレクトリ名を <パッケージ名>-<バージョン> に 変更しておきましょう。
もしプログラムの名前が一語以上で構成されていたら、 一つの語につなげるか省略形にしましょう。 例えば、「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 の実行は ただ一度だけ です。注意して ください。既に「Debian 化」された同じディレクトリで再び実行すると、 正しく動作しないでしょう。これはつまり、将来パッケージの改訂版や 新バージョンをリリースする時には別の方法を使うことになる、という ことでもあります。パッケージの更新作業についての詳細は後で説明する パッケージの更新, 第 9 章 の部分を読んでください。
[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 次のページ ]
Debian 新メンテナガイド
version 1.2, 6 April 2002.joy-mg@debian.org
mhatta@debian.or.jp
sano@debian.org