[% title = "Debian Packaging Manual - 制御ファイルとそのフィールド" %]
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]
dpkg
プログラム群のうちの多くは、
制御ファイルとして知られる共通のファイル形式を扱います。
バイナリとソースパッケージは、データを .changes
ファイルに従って制御します。この、.changes ファイルは、
アップロードされたファイルのインストールを制御し、
dpkg
の内部データベースも類似したフォーマットに なっています。
このファイルは、一つまたはそれ以上のフィールドの段落から 成ります。段落は、ブランク行で区切られます。いくつかの 制御ファイルは、一つの段落しか持てませんが、 他の制御ファイルは複数の段落を持つことができます。 その場合には、通常、別の段落は、それぞれ違うパッケージに対する 記述になっています。
一つ一つの段落は、フィールドと値の連続したものです。個々の フィールドは、名前とそれに続くコロンと値によって構成されます。 そして、行末が終りです。水平方向に連続する空白 (スペースとタブ) は値の前後に入れることもできますが、 その場合は無視されます; 慣習として、コロンの後に一つの空白を 入れます。
いくつかのフィールドは、複数行で構成されることもあります; この場合、継続行は、空白かタブで始まらなければなりません。 フィールドの行の最後に続く空白やタブは全て無視されます。
明記されている場合を除いて、フィールドの本体は一行の データのみが許されており、空白は意味を持ちません。空白は、 名前 (パッケージやアーキテクチャ、ファイル、その他) や バージョン番号、複数のキャラクタのバージョン関係の中には、 絶対にあってはいけません。
フィールドの名前には、大文字か小文字かは関係ありません。 しかし、以下に示すように、大文字小文字を混在させる場合には、 最初の一文字だけを大文字にするのが普通です。
空白行や空白とタブでだけ構成されている行は、フィールドの値や、 フィールドとフィールドの間にあってはいけません - それは、 新しい段落を意味してしまいます。
dpkg
とその関連ツールに関する範囲では、
いくつかのフィールドがオプションとして扱われることに
注意が必要です。これらのフィールドは、すべての Debian
パッケージに必要なものか、省略した場合に問題を
引き起こすようなものである場合があります。このため、 Debian
パッケージのために、制御ファイルを書くときは、
以下に記載された個々のファイルのフィールドに対する詳細説明に 合わせ、Debian
Policy Manual を必ず読んでください。
バイナリパッケージの名前です。パッケージの名前は、 英数字と + - . (プラスとマイナス、ピリオド) から成ります。 [14]
これには、少くとも二つのキャラクタが必要です。また、 英数字で始まらなければいけません。現在のバージョンの dpkg は、ある程度、大文字と小文字を区別します。 [15]; 作ったパッケージがすでに大文字を使っているか、 その他のフィールドから参照されている名前が、 大文字でない限り、パッケージの名前は小文字にしてください。
これは、ソースやバイナリパッケージのバージョン番号を 並べたものです。バージョン番号付け, Chapter 5を見てください。
これは、アーキテクチャに関する文字列です; Debian アーキテクチャをある一単語で表わしたものです。
dpkg
は、インストールする前に、
コンパイル時のアーキテクチャと、バイナリパッケージ中で
宣言されたアーキテクチャの値をチェックします。
allという特別の値の場合は、そのパッケージが アーキテクチャに依存しないということを示しています。
ソースパッケージの中の、メインの debian/control ファイル中や、 ソースパッケージ制御ファイル .dsc の中には、スペースで区切られた複数のアーキテクチャの リストを書くことでもできます。また、特別な値、 any も許されます。ソースファイルは、 このリストにあるアーキテクチャに依存したパッケージとして コンパイルされます。そして、リストにある アーキテクチャ以外では、おそらく正常に動作しないでしょう。 any は、ソースパッケージは、特定の アーキテクチャに依存しないことを示しており、あらゆる アーキテクチャにおいて正常にコンパイルできなければ なりませんが、生成されたバイナリパッケージは、 アーキテクチャ独立ものではなく、作成時に指定した アーキテクチャがなんであれ、そのアーキテクチャに 特有の(依存した)ものとなります。
.changesファイルの中の、Architecture フィールドは、そのパッケージが現在対応している アーキテクチャを示します。もし、そのパッケージのソースも アップロードされていて、特別なエントリ source があれば、そのフィールドは一連のリストになるでしょう。
パッケージ構築の過程でアーキテクチャをどのように 得るかについての情報は、debian/rules - メイン構築スクリプト, Section 3.2.1を 見てください。
パッケージ管理者の名前と email アドレスです。最初に名前が こなくてはいけません。その後に email アドレスを <> の中に(RFC822 フォーマットで)入れます。
パッケージ管理者の名前にピリオドが含まれていると、 RFC822 に規定されている文法のミスによって、全ての フィールドが email アドレスとして適用されなくなります; このフィールドをアドレスとして使用するプログラムは、 これをチェックして、必要であれば修正しなければ いけません(例えば、名前を括弧のなかに入れて最後尾に移動し、 email アドレスを前の方に持ってきます)。
.changesファイルや解析された changelog データの 中に、ある特定のバージョンのメンテナンスを担当している人の 名前と email アドレスが含まれています - これは、通常の パッケージの管理者ではないかもしれません。
このフィールドは通常、dpkg
が扱うかぎり、
オプションです。けれども、これがないと、パッケージを
構築するときに普通は警告がでます。
このフィールドは、ソースパッケージの名前です。
メインのソース制御情報の中や、 .changes ファイル、.dsc ファイル、 解析された changelog データ中のフィールドでは、 ソースパッケージの名前だけが含まれます。
バイナリパッケージなかの制御ファイルの中 (または、Packages
ファイルの中)では、 バージョン番号が括弧に入って続くことになっています。 [16] このバージョン番号は、該当の
バイナリパッケージのVersionフィールドと同一の値を
持っていた場合、dpkg-gencontrol
によって、
削除されます。また、ソースパッケージがバイナリパッケージと
同じ名前とバージョンを持っていた場合は、この
フィールド自体がバイナリパッケージ制御ファイルから 削除されます。
これらのフィールドは、パッケージ間の関係を記述します。 文法は、パッケージ間の関連性の宣言, Chapter 8を参照してください。
バイナリパッケージの Packages ファイルかメインの ソース制御ファイルに、このフィールドが 含まれている場合、この中には、バイナリパッケージに関する ある特別な形式の説明文 (Description) を含みます。 詳細は、パッケージの説明文 - Description フィールド, Chapter 7をご覧ください。
.changes ファイルは、アップロードされている パッケージに関する説明文の要約 (Summary) を含んでいます。 このフィールドが始まる直前の行は、空行です。その後の それぞれの行にバイナリパッケージ名とそのパッケージの 説明文の要約が記されます。それぞれの行は、一つの空白で インデントされます。
これは、バイナリパッケージの制御ファイル中か、 Packages ファイル、またはメインの ソース制御データファイル中のパッケージごとの 段落に記述される Yes/No の値です。
yes とセットしてあった場合、dpkg
と
dselect
は、このパッケージの削除を
行いません(更新と置き換えとは出来ます)。 no
の場合は、このフィールドを持っていない 場合と同じです。
この 2 つのフィールドは、パッケージを分類します。 Priority フィールドは、ユーザがこのパッケージを インストールする時の優先度を示します。Section フィールドは、そのパッケージが分類される アプリケーション分野を示します(訳注:net、mail など)。
これらが、debian/control ファイルにあった場合、 これらのフィールドは、.changes ファイル中の Files フィールドの section と priority サブフィールドの値となります。これらはまた、 バイナリパッケージの section と priority フィールドの デフォルト値となります。
この section と priority フィールドは、それぞれ独立した フィールドではなく、.changesファイルの -Files フィールドに それぞれのファイルの情報として出てきます。 .changesファイルの section の値は、パッケージを FTP アーカイブにアップロードするとき、 そのインストール場所を決めるのに使用します。
dpkg
には、これらのフィールドはそれほど
関係ありません。一方、dselect
が、パッケージを
ソートして、デフォルト値を選ぶときに、これらの フィールド値を使用します。Debian
パッケージの選択時の Priority フィールドの使用方法とその選択基準は Debian
Policy Manual を見てください。また、実際に 使用されている Debian FTP
アーカイブのリストを 見てみるのもいいでしょう。
このフィールドはバイナリパッケージ制御ファイルに
現れても構いません。そのときは、Packages
ファイルにこの情報が欠落していた場合のデフォルト値が
ここから採られます。dpkg
と
dselect
は、他に参照できる情報がない場合だけ、
.debファイルからこれらの情報を得ます。 Packages
ファイルの情報が常に優先されることに
なります。デフォルトでは、dpkg-gencontrol は、
バイナリパッケージの制御ファイルに section と priority
フィールドを入れません。もし、入れたいのであれば、
-ispか、-is、-ipオプションを
付けてください。
このフィールドはバイナリパッケージのリストです。
.dscファイルに記載されている場合は、それは そのソースパッケージが生成できるバイナリパッケージの リストです。すべてのアーキテクチャでここに記載された 全バイナリパッケージが生成できる必要はありません。 個々のバイナリパッケージがどのアーキテクチャに 対応しているかの詳細は、ソース制御ファイルには 含まれません。
これらの項目が、.changesファイルのなかに あったなら、それは実際にアップロードされている バイナリパッケージの名前のリストです。
その書式は、コンマで区切られたバイナリパッケージの リストです。 [17] 現在は、.changes ファイルの中は 空白だけで区切られていなければいけません。
このフィールドは、バイナリパッケージの 制御ファイルと Packages ファイルに 現われます。そのパッケージをインストールするのに必要な ディスク容量を示します。
ディスク容量は、十進整数であらわされ単位は キロバイトです。
このフィールドは、ファイルとそれについての情報を 逐一記したリストから構成されます。厳密な情報と書式は 使われる状況によります。どの場合においても、 フィールド名 (i.e. Files:) のある行にはフィールドの内容は 記述できません。引き続く残りの部分には1つの ファイルにつき一行の内容が記されます。このとき各行は 1つの空白文字でインデントされ、フィールドの 各副フィールドが空白で区切られて続きます。
.dsc (デビアンソース制御) ファイルの 場合には、このフィールドには tar ファイルと必要なら ソースパッケージの残りの部分になる diff ファイルのおのおのに ついて、MD5 チェックサム、サイズ、ファイル名が 記されます。この diff ファイルは、ソースパッケージの リマインダの役目を補完します。 [18] ファイル名などの項目についての正確な書式は、 アーカイブとしてのソースファイル, Section 3.3をごらんください。
.changesファイルの場合には、このフィールドには 1つのアップロードされるファイルごとに1行ずつ、 MD5 チェックサムとサイズ、セクション、プライオリティ、 ファイル名が記述されます section と priority フィールドは メインのソース制御ファイルの対応する値となります。 Section と Priority, Section 4.2.9をごらんください。もし、 セクションとプライオリティが決定されていなかったら、 - が使われます。しかしながら、セクションと プライオリティの値は新しいパッケージを適切に インストールするため、本来指定しておかなければならない ものです。
.changes ファイルのセクションが「手製」の 特別の値であれば、該当するファイルは通常の パッケージファイルとして扱えないため、 ディストリビューション管理者が手動でインストールしなければ なりません。セクションが「手製」の値であった場合には、 プライオリティは - でなくてはいけません。
新しいデビアンパッケージをリリースする時に、新しい上流の ソースアーカイブの配布を伴わない場合、.dsc ファイルの Files フィールドには、オリジナルの ソースアーカイブに対するエントリ package-upstream-version.orig.tar.gz を含んでいなければなりません。一方、.changes ファイル中の Files フィールドにはこのエントリが あってはいけません。この場合、配布サイトの オリジナルソースアーカイブは、アップロードしようとしている .dsc ファイルと、diff ファイルを生成するのに 使用されたソースアーカイブとバイト単位で正確に 一致していなければなりません。
パッケージのコンパイルの基準となる文書 (dpkg
プログラマーズマニュアル、 ポリシーマニュアルおよびそれに関連するテキスト)
のバージョン。新しい基準と整合性をとるために
ソースパッケージを編集したときに、メンテナが手で更新します。
時々、そのパッケージに注意を喚起するために使われます。
このフィールドのフォーマットはバージョン番号のフィールドと 同じですが、epoch や、Debian revision は許されていません。 バージョン番号付け, Chapter 5をごらんください。
.changes ファイルか changelog の解析出力には、 このパッケージがインストールされていた、またはこれから インストールされるディストリビューションの名前が空白で 区切られて含まれます。ディストリビューションの名前は、 パッケージの名前の規則に従います。 (Package, Section 4.2.1をごらんください。)
現在、ディストリビューションの取り得る値は:
これは、現在の Debian GNU/Linux のリリースされている バージョンです。新しいバージョンは、開発コードが 凍結されたのち一ヶ月ほどのテスト期間をおいて、 だいたい三ヶ月ごとにリリースされています。 ディストリビューションが、stable になり 安定したら、主要なバグフィックスだけが許されます。 このディストリビューションに変更が加えられるときは、 リリース番号が増えます (例えば、1.2r1 は 1.2r2 になり、1.2r3 になります)。
このディストリビューションは、Debian の配布ツリーの 中で、開発中のものであるということを示します。 新しいパッケージおよびパッケージの最新のバージョン、 バグフィックスが含まれます。個人の責任において ダウンロードしてください。
このディストリビューションのパッケージ群は Policy Manual に規定されている Debian の main ディストリビューションの配布条件を満たしていません。 しかし、contrib の配布基準を満たしています。 現在のところ、contrib や non-free ディストリビューションのパッケージに関しては stable か unstable かという区別はありません。これらの ディストリビューションからダウンロードするときは 気をつけてください。
contrib セクションのパッケージと同様に、 non-free のパッケージは Policy Manual に 規定されている Debian の main ディストリビューションの 配布条件を満たしていません。この ディストリビューションからダウンロードするときも 気をつけてください。
このディストリビューションのパッケージは、 メンテナから、ハイリスクであると宣言されています。 初期のβ版や開発中のパッケージで、多くのソースコードから 構成されている開発中のパッケージや試してほしいと 思っているけれども、Debian の他の ディストリビューションに 含まれるほどの完成度では ないものが含まれています。個人の責任でダウンロードして ください。
時々 (現在ではだいたい三ヶ月ごと)、 unstable ディストリビューションが、 「コード凍結」の状態に移行します。stable バージョンとしてリリースされるためです。 このテスト期間 (ふつう四週間です) には、現存するバグか 新しく発見したバグについての手直しだけが許されます。
パッケージをアップロードするときには、 そのパッケージがアップロードされる、すべての ディストリビューションにアップロードしなければいけません。 例外をのぞいて、stable ディストリビューションへの アップロードは、(もしあれば) frozen と unstable にも行ないます。同様に、frozen にアップロードするときには unstable にも アップロードしてください。
以前のバージョンからのアップグレードがどの程度重要なのかを 示します。たいてい LOW、MEDIUM、 HIGH のうちの一つのキーワードから成ります。 空白で区切られたコメント (たいてい括弧にはいっています) が オプションとしてつくこともあります。例えば:
Urgency: LOW (HIGH for diversions users)
このフィールドは、.changes ファイルのなかと、 パースされた
changelog 中にあらわれます。そして、 dpkg
形式の changelog
においては、 urgency 属性としてあらわれます。 (debian/changelog, Section
3.2.3をごらんください。)
Urgency キーワードは、大文字でも小文字でも構いません。
このフィールドは、.changes ファイルのなかと、 パースされた changelog 中にあらわれます。そして、 パッケージの作成された日付か最後に変更された日付を 示します。
.changes ファイルにあらわれるこのフィールドは、 ファイルのフォーマットのバージョンを指定します。 この手引きに書かれているフォーマットは、 バージョン 1.5 です。書式はバージョン番号と 同じですが、debian-revision や、epoch は許されていません。 バージョン番号付け, Chapter 5をごらんください。
このフィールドは、.changes ファイルに中や、 パースされた changelog 中に現われます。このフィールドは、 人間にとって解読可能な変更点のデータを示します。一つ前の バージョンと現在のバージョンとの相違を説明します。
最初の改行までは何もデータを含んではいけません。そして、 それに続く各行は、最低限一つの空白よって インデントされなければなりません。空行は、空白と ピリオドだけからなります。
それぞれのバージョンの変更情報は、「title」行の後に 続きます。この「title」行には、すくなくとも、バージョン、 ディストリビューション、緊急度のフィールドが人間にとって 可読な形式で含まれています。
もし、最新のバージョンに対するいくつかのバージョンの バージョン情報が多くて、エントリ行が改行しなければいけなく なったとしたら、改行したあとに空行を入れてエントリ行を 分割してください (「title」行の後もまた空行のあとで 続けてください)。
Packages ファイルにあるこれらのフィールドは、 ディストリビューションディレクトリのパッケージ、 またはパッケージの一部のファイル名を、デビアン階層構造の トップからの相対パスで示します。そのパッケージが いくつかの部分に分かれているときは、順番に空白で区切られて 並べられます。
Packages ファイルにあるこれらのフィールドは、 サイズ (単位は十進法で表現されたバイトです。) と ディストリビューションのバイナリパッケージを構成する ファイルの MD5 チェックサムです。パッケージがいくつかの 部分に分かれているときは、順番に空白で区切られて 並べられます。
このフィールドは dpkg
のステータスファイルに
含まれます。そして、ユーザがパッケージをインストールしたか、
また削除されたか、そのまま残しておいたのか、あるいは そのパッケージが壊れている
(再インストールが必要) かどうか、
現在のシステムの状態を示します。それぞれの情報は一単語で 示されます。
パッケージがインストールまたはコンフィグされて
いなかった場合、dpkg
のステータスファイル中の
このフィールドは、ユーザによってきちんとコンフィグされて
インストールされたときの最後のバージョンを記録しています。
dpkg
のステータスファイル中のこのフィールドは、
自動処理されたパッケージ中の設定ファイルについての情報を 保持します。
これらは、dpkg
によって認識されますが、
以後これらは使ってはいけません。 互換性のためだけに残されています。
パッケージバージョンの Debian バージョンの部分は、 以前、制御ファイル中の分離された一つの フィールドでした。このフィールドは、このように、 いくつかの名前で実装されていました。
Recommends の古い名前。
Suggests の古い名前。
Priority の古い名前。
[ 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