dpkg-scanpackages(1)

名前
dpkg-scanpackages - Packages ファイルの作成

書式
dpkg-scanpackages [-u] [-a <arch> ] [-m] binarydir overridefile [pathprefix] > Packages

説明
dpkg-scanpackages は Debian バイナリパッケージのツリーを見て Packages ファイルを生成する。Packages ファイルは apt(8) や dselect(1) などに、どのパッケージがインストールできるかをユーザに知らせるために利用している。これらの Packages ファイルは Debian アーカイブサイトや CD-ROM などで使われているものと同じものである。もし、たくさんのマシンにインストールしたいローカルなパッケージのディレクトリを作るなら、自分で dpkg-scanpackages を使うことができる。

注意: apt で使うのであれば、生成した Packages ファイルを gzip(1) で圧縮する(Packages.gz を生成する)必要があるだろう。apt はローカルアクセス(つまり file:// ソース)以外での非圧縮の Packages ファイルを無視する。

binarydir は処理するバイナリパッケージのツリーの名前である(例えば contrib/binary-i386 など)。Debian アーカイブのルートからの相対にしておくのが最もいい方法である。なぜなら Packages ファイルに含まれている各々の Filename フィールドはこの文字列で始まるからである。

overridefile はパッケージがディストリビューションに合うようにするための情報を含んでいるファイルの名前である。以下を参照のこと。

pathprefix は Filename フィールドで前に追加できるオプションの文字列である。

-u を指定した場合は、*.deb の代わりに *.udeb をスキャンする。

-a<arch> を指定した場合は、すべての deb ファイルをスキャンする代わりに、*_all.deb や *_arch.deb パターンにマッチするファイルを対象とする。

2 つ以上のバージョンのパッケージがあれば、最新の 1 つだけが出力に含まれる。同一のバージョンでアーキテクチャだけが異なる場合は、最初の 1 つだけが使用される。この動きは -m スイッチで変更できる。このスイッチが指定された場合は、みつかったパッケージすべてが出力に含まれる。

OVERRIDE ファイル
パッケージに関するほとんどの情報は control ファイルで見つけることができるが、いくつかはメンテナではなくディストリビューション作成者により、それらの情報を与える必要がある。パッケージの実際の依存関係や説明よりも、リリースにむけてファイルをどう配置するかに関係してくるからである。これらの情報は override ファイルにある。

override ファイルは簡単な空白で区切られた形式になっている。コメントも許されている(# 以降がコメント)。

package priority section [maintainerinfo]

package はパッケージ名である。override ファイルにあるがバイナリパッケージのツリーにはないパッケージ名のエントリは無視される。

priority と section はパッケージをリリースツリーでどこに置くかを指定する。これらは control ファイルにあるべきではない。もしパッケージが binarydir のサブディレクトリにあれば section の値とチェックされる。

maintainerinfo がもしあればメンテナの名前を無条件に上書きできる。もしくは oldmaintainer => newmaintainer の場合は置換される。

公式の Packages リストを作成するために使われている override ファイルは、 Debian ミラーの indices ディレクトリにある。

診断
dpkg-scanpackages は通常の自己説明的なエラーを出力する。パッケージが間違ったディレクトリにある、複数ある、control ファイルに Filename フィールドがある、override ファイルにない、実行されなかったメンテナの置換があるなどといった警告もする。

関連項目
dpkg(1), dselect(1), dpkg-scansources(1).

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