deb-control(5)

名前
deb-control - Debian パッケージのマスターコントロールファイルフォーマット

書式
control

説明
各 Debian パッケージはマスターとなる `control'ファイルをもっている。この `control'ファイルはいくつかのフィールドを含んでいる。それぞれのフィールドは Package や Version (大文字小文字は区別しない) のようなタグで始まり、コロン、フィールドの本体という順序で記述されている。フィールドはフィールドタグによってのみ区切られている。別の言い方をすれば、フィールドテキストは複数行にまたがってもかまわない。しかしインストールに使うツールはそれらのフィールドの本体を処理する時に一行にまとめてしまう。(ただし、以下で説明する Description フィールドは例外である)

必須フィールド

Package: <パッケージ名>
    このフィールドの値によってパッケージ名が決まる。またインストールに使うツールのほとんどがファイル名を生成するために使う。

Version: <バージョン文字列>
    普通は、これはパッケージのプログラムの作者が利用しているパッケージのバージョン番号である。(Debian 独自のパッケージでない場合は) Debian リビジョン番号が追加される。もし、バージョンとリビジョン両方を使う場合にはそれらはハイフン `-' により区切られている。このために、オリジナルのバージョンにはそのバージョン番号にハイフンを使うことができない。

Maintainer: <名前 email>
    `Joe Bloggs <jbloggs@foo.com>' 形式でなければいけない。パッケージ化されたソフトウェアの作者ではなく、パッケージ作成者の名前および e-mail アドレスを使うことになっている。

Description: <短い説明>
    <長い説明>
    パッケージ説明の書式は、まず最初の行 ("Description" フィールドタグの後) が短い要約である。その後に続く行はより長い詳細な説明に使う。長い説明の各行は空白文字ではじまる。行頭のスペースに続けて '.' 一つだけの行は空行を意味する。

オプションのフィールド

Section: <セクション>
    パッケージによりインストールされるソフトウェアがどのカテゴリーに属するかを示すフィールドである。一般的なセクションは `utils' や `net'、`mail'、`text'、`x11' などがある。

Priority: <優先度>
    システム全体からみてこのパッケージの重要度を示す。一般的に使われる優先度としては `required'、`standard'、`optional'、`extra' などがある。

Debian では、 Section と Priority フィールドで使える値はポリシーマニュアルで決められている。これらはアーカイブでどのようにパッケージが配置されるかを決定するのに使われている。これらのリストは最新の debian-policy パッケージの中に含まれている。

Essential: <yes|no>
    このフィールドは普通は `yes' の時にだけ使う。これはパッケージがシステムを適切に運用するために必要とされるパッケージを示す。 dpkg や他のインストールに使うツールは (強制オプションを与えない限り) Essential パッケージを削除することを許さない。

Architecture: <arch|all>
    Architecture はこのパッケージがどのタイプのハードウェアむけにコンパイルされた ものかどうかを示す。一般的な architecture としては `i386', `m68k', `sparc', `alpha', `powerpc' などがある。 all オプションはパッケージが architecture に依存しないことを意味する。例えば、シェルスクリプトや Perl スクリプト、文書などは architecture が all となる。

Source: <ソース名>
    このバイナリパッケージを作るために使われたソースパッケージの名前である。バイナリパッケージの名前とソースパッケージの名前が違う時に使われる。

Depends: <パッケージリスト>
    このパッケージが重要な機能を提供するために必要としているパッケージのリスト。パッケージ管理ソフトウェアは、もしこの Depends フィールドにあげられているパッケージがインストールされていなければ (強制オプションがあたえられない限り) このパッケージをインストールしようとしない。また Depends: フィールドにあげられているパッケージの postinst スクリプトを、それらに依存しているパッケージが prerm スクリプトを実行しようとする前に実行しようとする。

Pre-Depends: <パッケージリスト>
    パッケージがインストールされて かつ そのパッケージがインストールできる前に設定が終わっていないといけないパッケージのリスト。これは通常このパッケージが他のパッケージを preinst スクリプトで利用する場合に使われる。

Recommends: <パッケージリスト>
    余程のことがなければこのパッケージとともにインストールされるべきパッケージのリスト。ユーザがこの Recommends フィールドにあげられているパッケージなしにパッケージをインストールしようとするとパッケージ管理ソフトウェアが警告することがある。

Suggests: <パッケージリスト>
    このパッケージに関連していて、より便利にするパッケージだが、なくてもかまわないパッケージのリスト。

Depends, Pre-Depends, Recommends, Suggests フィールドは、代替パッケージグループのリストで表現する。各代替グループではパッケージを縦棒 (もしくは `パイプ') 記号 `|'で区切る。グループはコンマで区切る。コンマは `AND' と解釈し、パイプは `OR' と解釈することができる。パイプ (OR) の方が演算の優先度が高くなっている。オプションで、それぞれのパッケージ名に続けて括弧でくくられたバージョン番号の指定ができる。

バージョン番号が `>>' ではじまる場合は、それ以降のバージョン全てにマッチする。バージョン番号は、ハイフンに続けて Debian パッケージリビジョンを指定してもよいし、省略してもよい。バージョン関係を示す記号としては、 ">>" 「より新しい」、 "<<" 「より古い」、 ">=" 「同じか新しい」、 "<=" 「同じか古い」、 "=" 「同じ」がある。

Conflicts: <パッケージリスト>
    このパッケージと衝突するパッケージのリスト。例えば同じファイル名をもっている場合など。パッケージ管理ソフトウェアは衝突しているパッケージ同士を同時にインストールできないようにしている。二つの衝突しているパッケージがそれぞれがお互いを Conflicts に書いておくべきである。

Replaces: <パッケージリスト>
    このパッケージが置き換えるファイルを含むパッケージのリスト。このパッケージが他のパッケージのファイルを上書きするのを許すために使われる。また衝突しているパッケージと同じファイルを含んでいる場合 Conflicts フィールドと共に使うことで他のパッケージを強制的に削除することを指示するために使われる。

Provides: <パッケージリスト>
    このパッケージが提供する仮想パッケージのリスト。通常はこれは複数のパッケージがまったく同じサービスを提供している場合に使われる。例えば、 sendmail と exim は共にメールサーバとしての機能を提供しているので、これらは共通のパッケージ (`mail-transport-agent') を提供し、他のパッケージは この `mail-transport-agent' に依存するようにしておく。こうすることで、 sendmail も exim も依存関係を満たすようにすることができる。これによりメールサーバに依存するパッケージが、メールサーバとなるパッケージ全てのパッケージ名を知る必要もなく、また `|' を使って列挙する必要もなくなる。

Conflicts, Replaces, Provides はパッケージ名をコンマで区切って表記する (空白はあってもかまわない)。 Conflicts フィールドの中では、コンマは `OR' と解釈できる。 Conflicts と Replaces フィールドでは、上記のフィールドと同じ表記でバージョンも指定することができる。

例
Package: grep
Essential: yes
Priority: required
Section: base
Maintainer: Wichert Akkerman <wakkerma@debian.org>
Architecture: sparc
Version: 2.4-1
Pre-Depends: libc6 (>= 2.0.105)
Provides: rgrep
Conflicts: rgrep
Description: GNU grep, egrep and fgrep.
 The GNU family of grep utilities may be the "fastest grep in the west".
 GNU grep is based on a fast lazy-state deterministic matcher (about
 twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
 search for a fixed string that eliminates impossible text from being
 considered by the full regexp matcher without necessarily having to
 look at every character. The result is typically many times faster
 than Unix grep or egrep. (Regular expressions containing backreferencing
 will run more slowly, however).

関連項目
deb(5), dpkg(1), dpkg-deb(1).

翻訳者
鵜飼文敏 <ukai@debian.or.jp>