[% title = "Debian Packaging Manual - バイナリパッケージ" %]
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]
バイナリパッケージは2つの部分からなります。 最初の部分には dpkg
がインストールや削除に使う 様々な制御情報ファイルやスクリプトが入っています。
パッケージ制御情報ファイル, Section 2.2
を見てください。
2つめの部分はインストールされるファイルやディレクトリを含んだ アーカイブです。
将来、他にもチェックサムや電子署名などがバイナリパッケージに 含まれるようになるでしょう。 アーカイブのフォーマットについてはマニュアル deb(5) に完全な記述があります。
dpkg-deb
バイナリパッケージファイルの操作はすべて dpkg-deb
によって行います。 dpkg-deb
はパッケージフォーマットを
理解する唯一のプログラムです。 (dpkg-deb
は dpkg
に呼び出されます。 dpkg
は依頼されたオプションが
dpkg-deb
に適切であるかを見分け、同じ引数で 代わりに
dpkg-deb
を呼び出します。)
バイナリパッケージを作るためにはパッケージの ファイルシステムデータ部分に入れたいファイルやディレクトリを 全て含むディレクトリツリーを作らなければなりません。 Debianフォーマットのソースパッケージでは、このディレクトリは 通常はパッケージのソースツリーのトップからの相対パスで debian/tmp です。
これらのファイルやディレクトリは、インストールされた時に あなたが望むようなシステム上での (あなたが作るディレクトリツリーのルートとの相対での)場所と 所有者と許可属性を持っていなければなりません。
現在のバージョンの dpkg
では、 ユーザーとグループに用いる
uid/username、gid/groupname の 対応はパッケージが作られたシステムと
インストールされるシステムとで同じにするべきです。
あなたが作るミニチュアファイルシステムのルートに DEBIAN
という特別なディレクトリを 追加しなければなりません。そこには制御情報ファイル、
特にバイナリパッケージ制御ファイルが含まれます (メイン制御情報ファイル: control, Section
2.3 を見て下さい)。
DEBIAN
ディレクトリはパッケージの
ファイルシステムアーカイブには入れられません。 よって、 dpkg
によってパッケージが インストールされる時にはインストールされません。
パッケージの用意をしたら次のようにします。
dpkg --build directory
これにより directory.deb に パッケージが構築されます。
(dpkg
は --build が dpkg-deb
のオプションであることを知っているため、 パッケージを構築するために
dpkg-deb
を同じオプションで起動します。)
新しく作られたファイルの中身を調べる方法についての詳細は manpage の
dpkg-deb(8)
を見てください。
次のコマンドの出力から得られることがわかるでしょう。
dpkg-deb --info filename.deb dpkg-deb --contents filename.deb dpkg --contents filename.deb
パッケージの著作権ファイルを見るには次のコマンドが使用できます。
dpkg --fsys-tarfile filename.deb | tar xof usr/doc/\*copyright | less
バイナリパッケージの制御情報部は dpkg
が
理解できる名前を持ったファイルの集合です。 これらのファイルの内容は
dpkg
に特別に 扱われます。 -
ファイルの内容がパッケージのインストールや削除の時に dpkg
に使われるものであったり、 パッケージ管理者が dpkg
に実行させたい
スクリプトであったりします。
パッケージ制御エリアにそれ以外のファイルを入れても 構いませんが、あまりいいアイデアではありません (もっとも、それらは一般に無視されますが)。
ここで、dpkg
がサポートする制御情報ファイルの
簡単なリストとそれらが何に使われるかについての概要を 挙げておきます。
このファイルには dpkg
が使う鍵となる
情報が書かれています。このファイルにより
パッケージ名とバージョンの指定や、パッケージに関する
説明のユーザーへの提供、他のパッケージとの関連の 指定などを行ないます。 メイン制御情報ファイル: control, Section
2.3 を見て下さい。
このファイルは通常 dpkg-shlibdeps
の助けを
借りてソースパッケージ内の情報から dpkg-gencontrol
によって自動的に 作られます。 ソースパッケージを処理するためのツール,
Section 3.1 を見て下さい。
これらは dpkg
が、パッケージの
インストール、アップグレード、削除の時に起動する
実行可能なファイル(通常はスクリプト)です。
これらのファイルにより、パッケージがパッケージに特有の
事柄を扱ったり、dpkg
が提供するよりも
より複雑な処理を要求することが可能になります。
これらのファイルが、いつ、どの様に呼び出されるかに ついての詳細は パッケージ管理スクリプトと インストールの手順,
Chapter 6 にあります。
これらのスクリプトに「常に同じ効き目」を持たせておく [2]
ことは非常に重要です。もしエラーが起きたり、 ユーザーが dpkg
を中断したり、また その他の予期できない問題が起きても、後に
ひどく壊れたパッケージを残しません。
管理スクリプトは制御端末で実行されることが
保証されており、ユーザーと対話することができます。
もしパスワードのプロンプトを出す場合は、 dpkg
はインストールの過程のログを とるためにスクリプトの標準入出力を同じところに
リダイレクトするので /dev/tty を通じて
フルスクリーンによる対話もしくは同様のことを 行なわなければなりません。
同様に、これらのスクリプトは、ログをとる目的で
パイプに標準出力をリダイレクトして実行される場合も あります。そのため、Perl
スクリプトは出力が バッファリングされずにすぐに表示されるようにするために
$|=1 とセットして出力をバッファリングしない
ように設定しなければなりません。
いずれのスクリプトも成功した場合には 0 、 失敗した場合には 0 以外を終了時の値として 返さなくてはなりません。
このファイルには dpkg
により自動的に
扱われなければならない設定ファイルのリストが含まれます (設定ファイルの取り扱い, Chapter 9 を参照)。
すべての設定ファイルをここに書く必要はないことに 注意して下さい。
このファイルにはパッケージが提供する共有ライブラリの
リストが、それぞれの依存関係の詳細と共に含まれます。 このファイルは
dpkg-shlibdeps
が パッケージ制御ファイルで、どの依存関係が
必要かを決める時に使用します。 shlibs ファイルの書式については shlibs ファイルの書式, Section
12.1 に記述があります。
dpkg
がパッケージをインストールする時に使う
もっとも重要な制御情報ファイルが control です。
このファイルはパッケージの`人口動態統計'をすべて 含んでいます。
Debian ソースから作られたパッケージのバイナリパッケージ 制御ファイルは
dpkg-gencontrol
という特別な ツールで作られます。このツールは
debian/control と
debian/changelogから必要な情報を捜し出します。 詳細は ソースパッケージ, Chapter 3 を見て下さい。
バイナリパッケージ制御ファイルの fields は:
Package (必須)
Version (必須)
Architecture (必須) [3]
制御ファイルの文法とこれらのフィールドの目的についての記述は 制御ファイルとそのフィールド, Chapter 4 で得られます。
可能な限りアップストリームソースファイルの更新時間を パッケージ中に保持しておくことをメンテナに推奨します。 [4]
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]
Debian Packaging Manual
version revision 1.13, 2000-08-22ijackson@gnu.ai.mit.edu
bweaver@debian.org
schwarz@debian.org
srivasta@debian.org
J.D.Gilbey@qmw.ac.uk
debian-policy@lists.debian.org
shayase@tky3.3web.ne.jp
debian-doc@debian.or.jp