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
番目のフィールドはパッケージに強制するセクション、最後のフィールドはメンテナ順列フィールドです。
メンテナフィールドの一般的な形は以下のようになります。
また単純に以下のようにもなります。
最初の形式は、//
で区切られた古い 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-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]