&apt-author.jgunthorpe; &apt-author.team; &apt-email; &apt-product; 29 February 2004
apt-ftparchive
1

# apt-ftparchive

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

          apt-ftparchive
          -hvdsq
          --md5
          --delink
          --readonly
          --contents
          -o=config string
          -c=file

             packagespathoverridepathprefix
             sourcespathoverridepathprefix
             contents path
             release path
             generate config-file section
             clean config-file

## 説明

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

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

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

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

packages

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

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

sources

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

  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; に、文法の説明があります。 generate 設定はセクション法で解析しますが、 &apt-conf; はツリー法で解析するのに注意してください。 これはスコープタグの扱い方に違いがあるだけです。

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` は以下のような操作を行います。

    for i in Sections do
       for j in Architectures do
          Generate for DIST=scope SECTION=i ARCH=j

Sections

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

Architectures

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

BinOverride

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

SrcOverride

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

ExtraOverride

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

SrcExtraOverride

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

### BinDirectory セクション

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

Packages

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

SrcPackages

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

Contents

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

BinOverride

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

SrcOverride

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

ExtraOverride

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

SrcExtraOverride

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

BinCacheDB

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

PathPrefix

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

FileList, SourceFileList

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

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

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

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

    old [// oldn]* => new

という形式か、単純に

    new

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

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

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

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

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

## オプション

&apt-cmdblurb;

`--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`

&apt-commonoptions;

## サンプル

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

    apt-ftparchive packages directory | gzip > Packages.gz

## 関連項目

&apt-conf;

## 診断メッセージ

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

&manbugs; &translator;