APT-FTPARCHIVE(1)

NAME
apt-ftparchive - インデックスファイル生成ユーティリティ

SYNOPSIS

apt-ftparchive [-hvdsq] [--md5] [--delink] [--readonly] [--contents] [-o=config string] [-c=file] {[packages path... [override [pathprefix]]] | [sources path... [override [pathprefix]]] | [contents path] | [release path] | [generate config-file section...] | [clean config-file]}

説明

apt-ftparchive は、 APT が取得元にアクセスするのに必要な、 インデックスファイルを生成するコマンドラインツールです。 インデックスファイルは、元のサイトの内容に基づき生成されるべきです。

apt-ftparchive は、 dpkg-scanpackages(8) プログラムのスーパーセットで、 packages コマンド経由で機能全体を取り込んでいます。 また、contents ファイルジェネレータ contents と 完全なアーカイブの生成プロセス「スクリプト」である綿密な手段を含んでいます。

本質的に apt-ftparchive は、 .deb ファイルの内容をキャッシュするのにバイナリデータベースを使用できます。 また、gzip(1) 以外のいかなる外部プログラムにも依存しません。 すべて生成する際には、 ファイル変更点の検出と希望した圧縮出力ファイルの作成を自動的に実行します。

-h オプションや --help オプションを除き、 以下に挙げるコマンドが必要です。

packages
    packages コマンドは、 ディレクトリツリーからパッケージファイルを生成します。 与えられたディレクトリから再帰検索し、.deb ファイルを取得します。 またパッケージレコードを標準出力にそれぞれ出力します。 このコマンドは、dpkg-scanpackages(8) とほぼ同じです。

    --db オプションで、 キャッシュ DB を指定できます。

sources
    sources コマンドは、 ディレクトリツリーからソースインデックスファイルを生成します。 与えられたディレクトリから再帰検索し、.dsc ファイルを取得します。 またソースレコードを標準出力にそれぞれ出力します。 このコマンドは、dpkg-scansources(8) とほぼ同じです。

    override ファイルを指定した場合、 src 拡張子がついたソースオーバーライドファイルを探します。 使用するソースオーバーライドファイルを変更するのには、 --source-override オプションを使用します。

contents
    contents コマンドは、 ディレクトリツリーからコンテンツファイルを生成します。 与えられたディレクトリから再帰検索し、.deb ファイルを取得します。 またファイルごとにファイル一覧を読み取ります。 その後、パッケージに対応するファイル一覧を標準出力にソートして出力します。 ディレクトリは出力に含まれません。 複数のパッケージが同じファイルを持つ場合、 パッケージ名をカンマ区切りで出力します。

    --db オプションで、 キャッシュ DB を指定できます。

release
    release コマンドは、 ディレクトリツリーから Release ファイルを生成します。 与えられたディレクトリから、Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, Sources.bz2, Release, md5sum.txt といったファイルを再帰検索します。 その後、ファイルごとの MD5 ダイジェストと SHA1 ダイジェストを含んだ Release ファイルを、標準出力に書き出します。

    Release ファイルの追加メタデータフィールドの値は、 APT::FTPArchive::Release 以下の相当する値 (例: APT::FTPArchive::Release::Origin) をとります。 サポートするフィールドは、 Origin, Label, Suite, Version, Codename, Date, Architectures, Components, Description です。

generate
    generate コマンドは、 cron スクリプトから実行できるよう設計されており、 与えられた設定ファイルに従ってインデックスを生成します。 設定言語は、必要な設定を維持する簡単な方法を提供すると共に、 インデックスファイルをどのディレクトリから作成するかを指定する、 柔軟な方法を提供します。

clean
    clean コマンドは、 設定ファイルで与えられたデータベースを、 もう必要ないレコードを削除して整理します。

GENERATE 設定

generate コマンドは、 生成するアーカイブに関する記述をした設定ファイルを使用します。 設定ファイルは、bind 8 や dhcpd といった ISC ツールに見られるような、 ISC 設定フォーマットに従います。 apt.conf(5) に、文法の説明があります。 generate 設定はセクション法で解析しますが、 apt.conf(5) はツリー法で解析するのに注意してください。 これはスコープタグの扱い方に違いがあるだけです。

generate 設定には 4 個の独立したセクションがあります。 以下それぞれ説明します。

  Dir セクション

Dir セクションは、 生成プロセスで必要なファイルを配置するための、 標準ディレクトリを定義します。 このディレクトリは、完全な絶対パスを生成するため、 後のセクションで定義される相対パスの前に結合します。

ArchiveDir
    FTP アーカイブのルートを指定します。 標準的な Debian 設定では、このディレクトリには ls-LR と dist ノードがあります。

OverrideDir
    オーバーライドファイルの場所を指定します。

CacheDir
    キャッシュファイルの場所を指定します。

FileListDir
    FileList 設定が以下で使用されている場合、 ファイルリストファイルの場所を指定します。

  Default セクション

Default セクションではデフォルト値を指定します。 また、生成器の動作を制御する設定も行います。 他のセクションでは、ここにあるデフォルト値を、 セクションごとの設定で上書きします。

Packages::Compress
    Package インデックスファイルのデフォルトの圧縮方法を設定します。 少なくともひとつは '.' (圧縮なし), 'gzip', 'bzip2' が入る、 空白区切りの文字列です。 圧縮方法のデフォルトはすべて '. gzip' です。

Packages::Extensions
    パッケージファイル拡張子のデフォルト値を列挙します。 このデフォルト値は '.deb' です。

Sources::Compress
    Packages::Compress と同様に、 Sources ファイルの圧縮方法を指定します。

Sources::Extensions
    ソースファイル拡張子のデフォルト値を列挙します。 このデフォルト値は '.dsc' です。

Contents::Compress
    Packages::Compress と同様に、 Contents ファイルの圧縮方法を指定します。

DeLinkLimit
    実行するごとに delink (及びハードリンクの置き換え) する量を、 キロバイト単位で指定します。セクションごとの External-Links 設定と合わせて使います。

FileMode
    作成したインデックスファイルのモードを指定します。 デフォルトは 0644 です。全インデックスファイルは、 umask を無視してこのモードを使用します。

  TreeDefault セクション

特定の Tree セクションのデフォルトを設定します。 これらの変数はすべて置換変数であり、 文字列 $(DIST), $(SECTION), $(ARCH) をそれぞれの値に展開します。

MaxContentsChange
    日毎に生成する contents ファイルをキロバイト単位で設定します。 contents ファイルをラウンドロビンし、数日経つとすべて再生成します。

ContentsAge
    変更がない contents ファイルをチェックする日数を指定します。 この制限を越えた contents ファイルの mtime を、更新します。 パッケージファイルが変更されても、 [例えば上書き編集で] contents ファイルが更新されないような場合、 こういったことが発生します。 新しい .deb ファイルをインストールしたい場合、保留を解除でき、 少なくとも新しいファイルが必要です。 デフォルトは 10 で、単位は日です。

Directory
    .deb ディレクトリツリーの先頭を設定します。デフォルトは $(DIST)/$(SECTION)/binary-$(ARCH)/ です。

SrcDirectory
    ソースパッケージディレクトリツリーの先頭を設定します。デフォルトは $(DIST)/$(SECTION)/source/ です。

Packages
    Packages ファイルの出力先を設定します。デフォルトは $(DIST)/$(SECTION)/binary-$(ARCH)/Packages です。

Sources
    Packages ファイルの出力先を設定します。デフォルトは $(DIST)/$(SECTION)/source/Sources です。

InternalPrefix
    外部リンクではなく、内部リンクと見なす判断材料となる、 パスのプレフィックスを設定します。デフォルトは、 $(DIST)/$(SECTION)/ です。

Contents
    Contents ファイルの出力先を設定します。デフォルトは、 $(DIST)/Contents-$(ARCH) です。 複数の Packages ファイルを ひとつの Contents ファイルにまとめられる設定 (デフォルト) の場合、apt-ftparchive は自動でパッケージファイルをまとめます。

Contents::Header
    contents の出力に付けるヘッダファイルを設定します。

BinCacheDB
    このセクションで使用するバイナリキャッシュデータベースを設定します。 複数のセクションで同じデータベースを共有できます。

FileList
    ディレクトリツリーを走査する代わりに、apt-ftparchive が読み込むファイル一覧ファイルを指定します。 相対ファイル名は、アーカイブディレクトリが先頭につきます。

SourceFileList
    ディレクトリツリーを走査する代わりに、apt-ftparchive が読み込むファイル一覧ファイルを指定します。 相対ファイル名は、アーカイブディレクトリが先頭につきます。 ソースインデックスを処理する際に使用します。

  Tree セクション

Tree セクションでは、 ベースディレクトリからの標準 Debian ファイルツリー、 ベースディレクトリの複数のセクション、 最終的にはセクションごとの複数のアーキテクチャを定義します。 使用する正確なパスは、Directory 変数で定義されます。

Tree セクションは、 $(DIST) 変数で設定されているスコープタグをとり、 ツリーのルート (ArchiveDirが先頭につくパス) を定義します。 通常、この設定は dists/woody のようになります。

TreeDefault セクションで定義される設定はすべて、 3 個の新しい変数と同様に、 Tree セクションで使用できます。

Tree セクションを処理する際、 apt-ftparchive は以下のような操作を行います。

Sections
    distribution 以下に現れるセクションを、空白区切りで指定したリストです。 通常、main contrib non-freeのようになります。

Architectures
    search セクション以下に現れるアーキテクチャを、 空白区切りで指定したリストです。 特殊アーキテクチャ 'source' は、 ソースアーカイブのツリーであることを示します。

BinOverride
    バイナリオーバーライドファイルを設定します。 このオーバーライドファイルには、セクション、優先度、 メンテナのアドレスといった情報が含まれています。

SrcOverride
    ソースオーバーライドファイルを設定します。 このオーバーライドファイルには、 セクションの情報が含まれています。

ExtraOverride
    バイナリ特別オーバーライドファイルを設定します。

SrcExtraOverride
    ソース特別オーバーライドファイルを設定します。

  BinDirectory セクション

bindirectory セクションでは、 特殊な構造を持たないバイナリディレクトリツリーを定義します。 スコープタグはバイナリディレクトリの場所を指定し、 設定は、変数展開のない Tree セクションや SectionArchitecture 設定に似ています。

Packages
    Packages ファイルの出力先を設定します。

SrcPackages
    Sources ファイルの出力先を設定します。 少なくとも Packages や SrcPackages は設定されていなければなりません。

Contents
    Contents ファイルの出力先を設定します。(オプション)

BinOverride
    バイナリオーバーライドファイルを設定します。

SrcOverride
    ソースオーバーライドファイルを設定します。

ExtraOverride
    バイナリ特別オーバーライドファイルを設定します。

SrcExtraOverride
    ソース特別オーバーライドファイルを設定します。

BinCacheDB
    キャッシュ DB を設定します。

PathPrefix
    全出力パスに付加するパス。

FileList, SourceFileList
    ファイル一覧ファイルを指定します。

バイナリオーバーライドファイル

バイナリオーバーライドファイルは、 dpkg-scanpackages(8) と完全に互換性があります。 ここには、空白区切りでフィールドが 4 個あります。 先頭のフィールドはパッケージ名、 2 番目のフィールドはパッケージに強制する優先度、 3 番目のフィールドはパッケージに強制するセクション、 最後のフィールドはメンテナ順列フィールドです。

メンテナフィールドは一般的には、

    old [// oldn]* => new

という形式か、単純に

    new

となります。 最初の形式は、// で区切られた古い email アドレスのリストを許可します。 この形式がある場合は、メンテナフィールドになるよう new に置換してください。 2 番目の形式は無条件にメンテナフィールドに置換します。

ソースオーバーライドファイル

ソースオーバーライドファイルは、 dpkg-scansources(8) と完全に互換性があります。 ここには、空白区切りでフィールドが 2 個あります。 先頭のフィールドはソースパッケージ名、 2 番目のフィールドは割り当てるセクションです。

特別オーバーライドファイル

特別オーバーライドファイルは、 出力中に任意のタグを追加・置換できるようにします。 3 列からなり、先頭はパッケージ、2番目はタグ、残りは新しい値です。

オプション

この説明で示したオプションは、 すべて設定ファイルを使用して設定できます。 設定ファイルに書いた真偽値をとるオプションは -f-,--no-f, -f=no などのようにして上書きできます。

--md5
    MD5 sum を生成します。デフォルトで on になっており、 off にすると生成したインデックスファイルに MD5Sum フィールドがありません。 設定項目 - APT::FTPArchive::MD5

-d, --db
    バイナリキャッシュ DB を使用します。 generate コマンドには影響しません。 設定項目 - APT::FTPArchive::DB

-q, --quiet
    静粛 - 進捗表示を省略し、ログをとるのに便利な出力を行います。 最大 2 つまで q を重ねることでより静粛にできます。 また、-q=# のように静粛レベルを指定して、 設定ファイルを上書きすることもできます。 設定項目 - quiet

--delink
    Delink を実行します。 External-Links 設定を使用している場合、 このオプションはファイルの delink を有効にします。 デフォルトは on で、 off にするには --no-delink としてください。 設定項目 - APT::FTPArchive::DeLinkAct

--contents
    contents の生成を行います。このオプションを指定し、 パッケージインデックスをキャッシュ DB と共に生成する際、 ファイルリストを後で使用するように、抽出し DB に格納します。 generate コマンドを使用する際、 このオプションでいずれの Contents ファイルも作成できます。 デフォルトは on です。 設定項目 - APT::FTPArchive::Contents

-s, --source-override
    sources コマンドで使用する、 ソースオーバーライドファイルを選択します。 設定項目 - APT::FTPArchive::SourceOverride

--readonly
    キャッシュデータベースを読み取り専用にします。 設定項目 - APT::FTPArchive::ReadOnlyDB

-h, --help
    使い方の短い要約を表示します。

-v, --version
    プログラムのバージョンを表示します。

-c, --config-file
    設定ファイル。 使用する設定ファイルを指定します。 この設定ファイルが読めない場合はデフォルトの設定ファイルを読み込みます。 文法については apt.conf(5) を参照してください。

-o, --option
    設定オプションのセット。任意の設定オプションをセットします。 文法は -o Foo::Bar=bar となります。

サンプル

バイナリパッケージ (.deb) があるディレクトリの Packages ファイルを生成するには、以下のようにします。

    apt-ftparchive packages directory | gzip > Packages.gz

関連項目

apt.conf(5)

診断メッセージ

apt-ftparchive は正常終了時に 0 を返します。 エラー時には十進の 100 を返します。

バグ

APT バグページ[1]を ご覧ください。 APT のバグを報告する場合は、 /usr/share/doc/debian/bug-reporting.txt や reportbug(1) コマンドをご覧ください。

訳者

倉澤 望 <nabetaro@debian.or.jp> (2003-2006), Debian JP Documentation ML <debian-doc@debian.or.jp>

AUTHORS

Jason Gunthorpe

    Author.

APT team

    Author.

REFERENCES

1.  APT バグページ
    http://bugs.debian.org/src:apt