Provided by: apt-utils_2.7.14build2_amd64
名前
apt-ftparchive - インデックスファイル生成ユーティリティ
概要
apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=設定文字列] [-c=設定ファイル] {packages パ ス [override-file [pathprefix]] | sources パ ス [override-file [pathprefix]] | contents パス | release パス | generate 設定ファイル セクション... | clean 設定ファイル | {-v | --version} | {-h | --help}}
説明
apt-ftparchive は、APT が取得元にアクセスするのに必要な、インデックスファイルを生成するコ マンドラインツールです。インデックスファイルは、元のサイトの内容に基づき生成されるべきで す。 apt-ftparchive は、dpkg-scanpackages(1) プログラムのスーパーセットで、packages コマンド経 由で機能全体を取り込んでいます。また、contents ファイルジェネレータ contents と完全なアー カイブの生成プロセス「スクリプト」である綿密な手段を含んでいます。 本質的に apt-ftparchive は、.deb ファイルの内容をキャッシュするのにバイナリデータベースを 使用できます。また、gzip(1) 以外のいかなる外部プログラムにも依存しません。すべて生成する際 には、ファイル変更点の検出と希望した圧縮出力ファイルの作成を自動的に実行します。 -h オプションや --help オプションを除き、以下に挙げるコマンドが必要です。 packages packages コマンドは、ディレクトリツリーからパッケージファイルを生成します。与えられた ディレクトリから再帰検索し、.deb ファイルを取得します。またパッケージレコードを標準出 力にそれぞれ出力します。このコマンドは、dpkg-scanpackages(1) とほぼ同じです。 --db オプションで、キャッシュ DB を指定できます。 sources sources コマンドは、ディレクトリツリーからソースインデックスファイルを生成します。与え られたディレクトリから再帰検索し、.dsc ファイルを取得します。またソースレコードを標準 出力にそれぞれ出力します。このコマンドは、dpkg-scansources(1) とほぼ同じです。 override ファイルを指定した場合、src 拡張子がついたソースオーバーライドファイルを探し ます。使用するソースオーバーライドファイルを変更するのには、--source-override オプショ ンを使用します。 contents contents コマンドは、ディレクトリツリーからコンテンツファイルを生成します。与えられた ディレクトリから再帰検索し、.deb ファイルを取得します。またファイルごとにファイル一覧 を読み取ります。その後、パッケージに対応するファイル一覧を標準出力にソートして出力しま す。ディレクトリは出力に含まれません。複数のパッケージが同じファイルを持つ場合、パッ ケージ名をカンマ区切りで出力します。 --db オプションで、キャッシュ DB を指定できます。 release release コマンドは、ディレクトリツリーから Release ファイルを生成します。与えたディレ クトリを再帰的に検索し、未圧縮の Packages, Sources, Contents, Components, icons 各ファ イル、それに Release, Index, md5sum.txt ファイルをデフォルト (APT::FTPArchive::Release::Default-Patterns) で探します。また APT::FTPArchive::Release::Patterns に列挙して、さらにファイル名のパターンを追加できま す。その後、(デフォルトで) MD5, SHA1, SHA256 と SHA512 の各ダイジェストをファイルごと に格納した Release ファイルを標準出力に書き出します。 Release ファイルの追加メタデータフィールドの値は、APT::FTPArchive::Release 以下の相当 する値 (例: APT::FTPArchive::Release::Origin) をとります。サポートするフィールド は、Origin, Label, Suite, Version, Codename, Date, NotAutomatic, ButAutomaticUpgrades, Acquire-By-Hash, Valid-Until, Signed-By, 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 パッケージインデックスファイルのデフォルト圧縮方法を設定します。設定項目 APT::Compressor によって設定した圧縮形式の最低1つが入る、空白区切りの文字列です。圧縮 方法のデフォルトはすべて '. gzip' です。 Packages::Extensions パッケージファイル拡張子のデフォルト値を列挙します。このデフォルト値は '.deb' です。 Sources::Compress Packages::Compress と同様に、Sources ファイルの圧縮方法を指定します。 Sources::Extensions ソースファイル拡張子のデフォルト値を列挙します。このデフォルト値は '.dsc' です。 Contents::Compress Packages::Compress と同様に、Contents ファイルの圧縮方法を指定します。 Translation::Compress Packages::Compress と同様に、Translation-en マスターファイルの圧縮を制御します。 DeLinkLimit 実行するごとに delink (及びハードリンクの置き換え) する量を、キロバイト単位で指定しま す。セクションごとの External-Links 設定と合わせて使います。 FileMode 作成したインデックスファイルのモードを指定します。デフォルトは 0644 です。全インデック スファイルは、umask を無視してこのモードを使用します。 LongDescription 長い説明文を Packages ファイルに含めるか、マスター Translation-en ファイルに分割するか を指定します。 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 Sources ファイルの出力先を設定します。デフォルトは $(DIST)/$(SECTION)/source/Sources です。 Translation 万一 Packages ファイルに含まれていない場合、長い説明文がある Translation-en マスター ファイルの出力先を設定します。デフォルトは、$(DIST)/$(SECTION)/i18n/Translation-en で す。 InternalPrefix 外部リンクではなく、内部リンクと見なす判断材料となる、パスのプレフィックスを設定しま す。デフォルトは、$(DIST)/$(SECTION)/ です。 Contents Contents ファイルの出力先を設定します。デフォルト は、$(DIST)/$(SECTION)/Contents-$(ARCH) です。複数の Packages ファイルをひとつの Contents ファイルにまとめられる設定 (デフォルト) の場合、apt-ftparchive は自動でパッ ケージファイルをまとめます。 Contents::Header contents の出力に付けるヘッダファイルを設定します。 BinCacheDB このセクションで使用するバイナリキャッシュデータベースを設定します。複数のセクションで 同じデータベースを共有できます。 FileList ディレクトリツリーを走査する代わりに、apt-ftparchive が読み込むファイル一覧ファイルを 指定します。相対ファイル名は、アーカイブディレクトリが先頭につきます。 SourceFileList ディレクトリツリーを走査する代わりに、apt-ftparchive が読み込むファイル一覧ファイルを 指定します。相対ファイル名は、アーカイブディレクトリが先頭につきます。ソースインデック スを処理する際に使用します。 Tree セクション Tree セクションでは、ベースディレクトリからの標準 Debian ファイルツリー、ベースディレクト リの複数のセクション、最終的にはセクションごとの複数のアーキテクチャを定義します。使用する 正確なパスは、Directory 変数で定義されます。 Tree セクションは、$(DIST) 変数で設定されているスコープタグをとり、ツリーのルート (ArchiveDirが先頭につくパス) を定義します。通常、この設定は dists/bookworm のようになりま す。 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 non-free-firmware のようになります。 Architectures 検索部の下に表示されるすべてのアーキテクチャの空白区切りリストです。特別なアーキテク チャ「source」は、このツリーがソースアーカイブを持っていることを示すために使用されま す。アーキテクチャ「all」は、Packages のようなアーキテクチャ固有のファイルがすべての ファイル中のアーキテクチャ all パッケージに関する情報を含まず、専用のファイルで利用で きることを示します。 LongDescription 長い説明文を Packages ファイルに含めるか、マスター Translation-en ファイルに分割するか を指定します。 BinOverride バイナリオーバーライドファイルを設定します。このオーバーライドファイルには、セクショ ン、優先度、メンテナのアドレスといった情報が含まれています。 SrcOverride ソースオーバーライドファイルを設定します。このオーバーライドファイルには、セクションの 情報が含まれています。 ExtraOverride バイナリ特別オーバーライドファイルを設定します。 SrcExtraOverride ソース特別オーバーライドファイルを設定します。 BinDirectory セクション bindirectory セクションでは、特殊な構造を持たないバイナリディレクトリツリーを定義しま す。スコープタグはバイナリディレクトリの場所を指定し、設定は変数展開のない Tree セクション や SectionArchitecture 設定に似ています。 Packages Packages ファイルの出力先を設定します。 Sources Sources ファイルの出力先を設定します。少なくとも Packages か Sources のうち、ひとつは 必要です。 Contents Contents ファイルの出力先を設定します (オプション)。 BinOverride バイナリオーバーライドファイルを設定します。 SrcOverride ソースオーバーライドファイルを設定します。 ExtraOverride バイナリ特別オーバーライドファイルを設定します。 SrcExtraOverride ソース特別オーバーライドファイルを設定します。 BinCacheDB キャッシュ DB を設定します。 PathPrefix 全出力パスに付加するパス。 FileList, SourceFileList ファイル一覧ファイルを指定します。
バイナリオーバーライドファイル
バイナリオーバーライドファイルは、dpkg-scanpackages(1) と完全に互換性があります。ここに は、空白区切りでフィールドが 4 個あります。先頭のフィールドはパッケージ名、2 番目のフィー ルドはパッケージに強制する優先度、3 番目のフィールドはパッケージに強制するセクション、最後 のフィールドはメンテナ順列フィールドです。 メンテナフィールドの一般的な形は以下のようになります。 old [// oldn]* => new また単純に以下のようにもなります。 new 最初の形式は、// で区切られた古い email アドレスのリストを許可します。この形式がある場合 は、メンテナフィールドになるよう new に置換してください。2 番目の形式は無条件にメンテナ フィールドに置換します。
ソースオーバーライドファイル
ソースオーバーライドファイルは、dpkg-scansources(1) と完全に互換性があります。ここには、空 白区切りでフィールドが 2 個あります。先頭のフィールドはソースパッケージ名、2 番目のフィー ルドは割り当てるセクションです。
特別オーバーライドファイル
特別オーバーライドファイルは、出力中に任意のタグを追加・置換できるようにします。3 列からな り、先頭はパッケージ、2番目はタグ、残りは新しい値です。
オプション
ここで設定オプションとして説明したコマンドラインオプションは、 すべて設定ファイルを使用し て設定できます。 設定ファイルに書いた真偽値をとるオプションは -f-,--no-f, -f=no などのよう にして上書きできます。 --md5, --sha1, --sha256, --sha512 与えたチェックサムを生成します。このオプションはデフォルトで on です。off にすると生成 したインデックスファイルには checksum フィールドが含まれません。設定項目: APT::FTPArchive::Checksum と APT::FTPArchive::Index::Checksum。ここで Index は Packages, Sources, Release になります。Checksum は MD5, SHA1, SHA256 または SHA512 に なります。 -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 -a, --arch packages コマンドや contents コマンドで、与えたパスにあるすべてのパッケージファイルで はなく、*_arch.deb や *_all.deb に一致したパッケージファイルのみを受け付けます。設定項 目: APT::FTPArchive::Architecture APT::FTPArchive::AlwaysStat apt-ftparchive(1) は cachedb のメタデータに可能な限りキャッシュします。パッケージを再 コンパイルし、また同じバージョンで再発行されると、古くなってしまったキャッシュのメタ データ (サイズやチェックサム) が使われ、これが問題になることがあります。このオプション を有効にすると、ファイルを更新するとチェックが行われるため、問題が起こらなくなりま す。デフォルトでは、このオプションは "false" にセットされていることに注意してくださ い。バージョンや、同じバージョン番号のパッケージのビルドを、増やしてアップロードするの は推奨しないからです。そのため理論上、誰もその問題に行き会わず、すべての追加チェックに は、意味がありません。 APT::FTPArchive::LongDescription この設定オプションはデフォルトで "true" で、apt-ftparchive(1) が生成したアーカイブが Translation ファイルも提供する場合にのみ "false" に設定してください。Translation-en マ スターファイルは generate コマンドでのみ生成できることに注意してください。 -h, --help 使い方の短い要約を表示します。 -v, --version プログラムのバージョンを表示します。 -c, --config-file 設定ファイル。 使用する設定ファイルを指定します。 このプログラムは、デフォルト設定ファ イルを読んでから、この設定ファイルを読みます。 この設定をデフォルト設定ファイルよりも 前に読む必要がある場合、 APT_CONFIG 環境変数に指定してください。構文については apt.conf(5) をご覧ください。 -o, --option 設定オプションのセット。任意の設定オプションをセットします。 構文 -o Foo::Bar=bar とな ります。 異なるオプションを設定するため、-o と --option は、 複数回使用できます。
サンプル
バイナリパッケージ (.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,2009-2012), Takuma Yamada <tyamada@takumayamada.com> (2016), Debian JP Documentation ML <debian-doc@debian.or.jp> この翻訳文書には未訳部分が含まれている可能性があることに 注意してください。 翻訳がオリジナ ルに追従できていない場合、 内容を失わないようにこのようにしています。
著者
Gunthorpe Jason[FAMILY Given] [FAMILY Given]
注記
1. APT バグページ https://bugs.debian.org/src:apt