DEB-CONTROL(5)

NAME
deb-control - Debian GNU/Linux パッケージのマスターコントロールファイルフォーマット

SYNOPSIS
control

DESCRIPTION
各 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(8), dpkg-deb(1).

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