[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 次のページ ]


Debian 新メンテナガイド
第 5 章 - debian/ の中にあるその他のファイル


debian/ サブディレクトリには他にもいくつかのファイルが あるはずです。それらのほとんどには「.ex」サフィックスが 付いており、そのファイルがただの例、サンプルであることを 示しています。 これらのファイルにはすべて目を通しておいてください。 もしこれらの機能のどれかを使いたいと思ったり、また使う必要が 生じたりした場合には、

これらのファイルのうち、特によく利用されるものについては、 以下のセクションに説明があります。


5.1 README.Debian

パッケージに関して何か特別にユーザに知らせる必要がある情報や、 オリジナルのソフトウェアとあなたが Debian パッケージにした バージョンとの相違点は、ここに記述しておくべきです。

以下はデフォルトとして dh_make が生成するものです。

       gentoo for Debian
       ----------------------
     
       <possible notes regarding this package - if none, delete this file>
     
       Josip Rodin <joy-mg@debian.org>, Wed, 11 Nov 1998 21:02:14 +0100

今回は特に何も書き込む必要はありませんから、あとでこのファイルを 削除しておきます。


5.2 conffiles.ex

ソフトウェアに関して最もうんざりさせられることのひとつに、 大変な量の時間と労力を費してプログラムをカスタマイズした後で そのための設定変更が一回のアップグレードによってすべて上書き されてしまった場合が挙げられるでしょう。 Debian はこの問題を、設定ファイルを記録しておいて、パッケージを アップグレードする際に古い設定をそのまま使いたいかどうか質問する という方法で解決しました。

この機能を使うには、パッケージのプログラムが使う各設定ファイル (たいてい /etc にあります) のフルパス名を 1 行にひとつずつ、 conffiles という名前のファイルに記載します。 gentoo では /etc/gentoorc という名前の設定ファイルが 使われるので、これを conffiles ファイルに記載します。

あなたのプログラムが設定ファイルを利用する場合であっても、 その設定ファイルがプログラム自身によって頻繁に上書きされる ような場合には、パッケージをアップグレードするたびに dpkg に よって設定ファイルの変更について確認を求められることになるので、 その設定ファイルを conffiles に登録しないほうが良いでしょう。

あなたがパッケージにしたプログラムでは、設定ファイルを 変更しない限り、誰も利用できない、というような場合も、 その設定ファイルを conffile として登録しないほうが良いかも しれません。

設定ファイルのサンプルを「メンテナースクリプト」によって 用意することも可能です。詳細は postinst.ex、preinst.ex、postrm.ex、prerm.ex, 第 5.12 節 を 参照してください。

もしあなたのプログラムが設定ファイルを一切利用しないので あれば、 debian/ ディレクトリから conffiles ファイルを 問題無く削除できます。


5.3 cron.d.ex

もしあなたのパッケージがきちんと動作するために、 決められたスケジュールに従った定期的な作業の実行を 必要とする場合、このファイルを使ってその作業を cron に登録します。

ここではログのローテーションは扱いません。 ログローテーションについては dh_installlogrotate(1) および logrotate(8) を参照してください。

もし必要無ければ、このファイルを削除してください。


5.4 dirs

このファイルには、我々のパッケージが必要としているが、 通常のインストール手順 (make install) では作成されない ディレクトリを指定します。 デフォルトでは、こんな風になっています:

       usr/bin
       usr/sbin

一番最初のスラッシュが含まれない事に注意してください。 たいていの場合、このファイルの内容は以下のように変更して おけば問題無いでしょう。

       usr/bin
       usr/share/man/man1

ただ今回の場合、これらのディレクトリは Makefile 中の 処理によって既に作成されているので、このファイルは 不要であり、そのまま削除してしまうことにします。


5.5 docs

このファイルには、dh_installdocs を使ってパッケージ 生成用の一時的なディレクトリにインストールするために、 パッケージに附属する資料のファイル名を指定します。

ソースディレクトリのトップレベルに存在する「BUGS」、 「README*」、「TODO」などの名前を持つファイルはすべて デフォルトとして含まれます。

ここでは gentoo のために、附属文書をいくつか指定します。

       BUGS
       CONFIG-CHANGES
       CREDITS
       ONEWS
       README
       README.gtkrc
       TODO

別の方法として、このファイルを削除し、その代わり以下のように rules ファイルにある dh_installdocs コマンド行の中で これらの文書ファイル名を指定することも可能です。

             dh_installdocs BUGS CONFIG-CHANGES CREDITS ONEWS README \
                            README.gtkrc TODO

ありそうにないことですが、パッケージのソース中にここで 指定したくなるような附属文書がまったく存在しないという 場合もあるかもしれません。 そうした場合には、この docs ファイルを削除しても問題無い でしょう。 ただし、その場合にも rules ファイルの中の dh_installdocs コマンドを削除してはいけません。 このコマンドは copyright ファイルやその他のファイルを インストールするために利用されます。


5.6 emacsen-*.ex

パッケージをインストールする際にバイトコンパイル可能な Emacs ファイルがあなたのパッケージに含まれている場合、  これらの emacsen-* ファイルを利用してそれを設定することが  できます。

これらの emacsen-* ファイルは dh_installemacsen(1) によってパッケージ作成用の一時的なディレクトリに インストールされます。このため、もしこれらのファイルを 使用するのなら、rules ファイルの中にコメントとして 書かれている、この dh_installemacsen コマンドを起動して いる行を、忘れずに有効にしておいてください。

もしこれらの emacsen-* ファイルが必要なければ、 削除しておいてください。


5.7 init.d.ex

もしあなたのパッケージがデーモンであり、システムの起動時に 自動的に動作させる必要があるとしたら、私が最初に勧めたことを あなたはまるっきり無視してしまったわけですよね。そうでしょ ? :-)

これは /etc/init.d/ スクリプトの 非常に一般的なほんの骨組みのファイルにすぎません。 もしこれを使いたければ、内容を大幅に変更する必要が あるでしょう。このファイルは dh_installinit(1) によってパッケージ作成用の一時的なディレクトリに インストールされます。

もし不要なら、このファイルを削除してください。


5.8 manpage.1.ex, manpage.sgml.ex

すべてのプログラムは man ページを持つべきです。 もし無かったら、これらのひな型のどちらかを利用して、 必要な情報を追加すれば作成できます。

マニュアルページは通常 nroff(1) を利用して作成されます。 これにならって、manpage.1.ex も nroff で 作成されています。 man(7) のマニュアルページには、 このファイルの編集方法についての簡潔な説明があります。

一方、もし nroff より SGML のほうが好みでしたら、 manpage.sgml.ex のほうをひな型として使うことも できます。こちらの場合には、以下の手順が必要です。

それから、このファイルの名前を gentoo.sgml と いった名前に変更することを忘れないように!

最終的なマニュアルページファイルの名前には、そのマニュアル ページで解説するプログラムの名前が含まれているべきです。 このため、ここではファイル名を「gentoo」から「manpage」に 変更します。ファイル名にはまた、デフォルトの拡張子として 「.1」が含まれていますが、これはこのファイルがユーザー コマンドのマニュアルページであることを示しています。 この拡張子の示す分類が正しいものであることを確認して おいてください。 マニュアルページの分類をまとめたリストを以下に示します。

       セクション |     説明     |     メモ
          1     ユーザコマンド         実行可能なコマンドやスクリプト
          2     システムコール         カーネルの提供する機能
          3     ライブラリコール       システムライブラリに含まれる機能
          4     特別ファイル           たいていは /dev 内にあるもの
          5     ファイルの書式         例えば /etc/passwd の書式
          6     ゲーム                 またはその他のおもしろいプログラム
          7     マクロパッケージ       man マクロのようなもの
          8     システム管理           実行するのに root 権限が必要なものなど
          9     カーネルルーチン       標準的でないシステムコールや内部仕様

そんなわけで gentoo のman ページは gentoo.1 と呼ばれることに なります。 元のソースには gentoo.1 という man ページが含まれていなかったので、 上に説明したサンプルと、上流開発者が提供している文書からの情報を もとに筆者が作成しました。


5.9 menu.ex

X Window System のユーザはたいていウィンドウマネージャを 使っており、そのメニュー機能を設定することで好きなプログラムを ウィンドウマネージャから起動できます。 もしユーザが Debian の menu パッケージをインストール していれば、システムにあるすべてのプログラム用のメニューが作成され、 menu に対応したウィンドウマネージャから利用できます。

以下が dh_make によって生成されたデフォルトの menu.ex ファイルです。

       ?package(gentoo):needs=X11|text|vc|wm section=Apps/see-menu-manual\
         title="gentoo" command="/usr/bin/gentoo"

コロン (:) の後の最初の「needs」フィールドには、 プログラムがどういう種類のインターフェースを必要とするかを 指定します。このフィールドはデフォルトとして列挙された 選択肢のどれか (例えばテキスト、X11 など) に変更してください。

次は「section」、プログラムのエントリーが表示される メニューやサブメニューの指定です。現在のセクション一覧は /usr/share/doc/debian-policy/menu-policy.html/ch2.html#s2.1 に 記載されています。

「title」フィールドはプログラムの名称です。 好みによって、大文字から始めることもできます。 ただし、なるべく短くしておきましょう。

最後の「command」フィールドは、実際にプログラムを 実行するコマンドです。

さて、今回はこんな風に menu エントリを変えましょう。

       ?package(gentoo): needs=X11 section=Apps/Tools title="Gentoo" command="gentoo"

他にも「longtitle」、「icon」、「hints」などの フィールドを追加することができます。 より詳細な説明は menufile(5)update-menus(1)、 および /usr/share/doc/debian-policy/menu-policy.html/ を 参照してください。


5.10 watch.ex

このファイルを uscan(1) および uupdate(1) プログラム (これらは devscripts パッケージにあります) と 合わせて使うことによって、オリジナルソースを入手したサイトの 更新をチェックすることができます。

今回は以下のようにしました。

     # watch control file for uscan
     # Site            Directory  Pattern               Version  Script
     ftp.obsession.se  /gentoo    gentoo-(.*)\.tar\.gz  debian   uupdate

ヒント:このファイルを作成したら、インターネットに接続し、ソースを 展開したディレクトリの中から「uscan」を試しに実行してみるとよいでしょう。 それから、マニュアルページも読んでみてください。:)


5.11 ex.package.doc-base

もしあなたのパッケージがマニュアルページや info 形式の 文書以外に附属文書を含んでいるのなら、 「doc-base」ファイルを使ってそれを登録し、 ユーザがそれらの附属文書を、例えば dhelp(1)dwww(1) あるいは doccentral(1) などの コマンドで参照できるようにするべきです。

これには通常 /usr/share/doc/packagename/ の中に収められるような HTML、PS および PDF などの形式の 附属文書が含まれます。

以下に gentoo の doc-base ファイルの例を示します。

       Document: gentoo
       Title: Gentoo Manual
       Author: Emil Brink
       Abstract: This manual describes what Gentoo is, and how it can be used.
       Section: Apps/Tools
     
       Format: HTML
       Index: /usr/share/doc/gentoo/html/index.html
       Files: /usr/share/doc/gentoo/html/*.html

このファイルの書式については install-docs(8) および /usr/share/doc/doc-base/doc-base.html/ にある doc-base のマニュアルを参照してください。


5.12 postinst.ex、preinst.ex、postrm.ex、prerm.ex

これらのファイルはメンテナスクリプトと呼ばれるもので、 パッケージの制御パートに収録され、 あなたのパッケージがインストール、アップグレード、あるいは 削除されるときに dpkg によって実行されます。

今のところは、メンテナスクリプトを手でいじるのは、 できるだけ避けるようにするべきでしょう。 というのも、これらはどんどん複雑になっていってしまう傾向が あるからです。 詳しくはポリシーマニュアルの第 6 章と dh_make によって用意されたこれらのサンプルファイルを 注意して読んでください。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 次のページ ]


Debian 新メンテナガイド

version 1.2, 6 April 2002.

Josip Rodin joy-mg@debian.org
翻訳: 八田真行 mhatta@debian.or.jp
日本語訳更新 (v1.2): 佐野武俊 sano@debian.org