table of contents
APT.CONF(5) | APT | APT.CONF(5) |
名前¶
apt.conf - APT の設定ファイル
説明¶
/etc/apt/apt.conf は、APT スイートの全ツールで使用するメイン設定ファイルです。しかし、間違いなくオプションを設定しておくだけの場所などではありません。そのため、APT スイートは統一環境を提供するため、共通のコマンドラインパーサを共有しています。
APT ツールの起動時に、設定ファイルを以下の順番で読み込みます。
構文¶
設定ファイルは、機能グループごとに系統立てられたオプションを木構造で表します。オプションの指定は、2 つのコロンで区切ります。例えば APT::Get::Assume-Yes は、APT ツールグループの Get ツール用オプションです。オプションは、親グループからは継承しません。
Syntactically the configuration language is modeled after what the ISC tools such as bind and dhcp use. Lines starting with // are treated as comments (ignored), as well as all text between /* and */, just like C/C++ comments. Lines starting with # are also treated as comments. Each line is of the form APT::Get::Assume-Yes "true";. The quotation marks and trailing semicolon are required. The value must be on one line, and there is no kind of string concatenation. Values must not include backslashes or extra quotation marks. Option names are made up of alphanumeric characters and the characters "/-:._+". A new scope can be opened with curly braces, like this:
APT {
Get {
Assume-Yes "true";
Fix-Broken "true";
}; };
また適宜改行することで、より読みやすくなります。リストは、開いたスコープ、クォートで囲まれた 1 単語、そしてセミコロンと続けることで作成できます。セミコロンで区切って、複数のエントリを表せます。
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
/usr/share/doc/apt/examples/configure-index.gz は一般的な設定ファイルのサンプルです。どのように設定するか参考になるでしょう。
設定項目の名前にある文字の大小は、重要ではありません。そのため、前述の例を dpkg::pre-install-pkgs とすることもできます。
前述した DPkg::Pre-Install-Pkgs の例で見られるように、リストを定義した場合、設定項目名はオプションになります。名前を指定しない場合、新しいエントリは、単純に新しいオプションをリストに追加します。名前を指定して同様にすると、あらゆる他の選択肢をオプションに再割り当てし、オプションを上書きできます。
#include (これは廃止予定でサポートしない他の実装もあります) と #clear の 2 つの特別なコマンドがあります。#include は指定したファイルを取り込みます。ファイル名がスラッシュで終わった場合には、そのディレクトリをすべて取り込みます。#clear は、設定ツリーの一部を削除するのに使用します。指定した要素と、それ以下の要素を削除します (これらの行も、セミコロンで終わる必要があることに注意してください)。
#clear コマンドは、リストや完全なスコープを削除する唯一の方法です。スコープの再オープン (や後述する :: スタイル)は、それまで書いたエントリを上書きしません。オプションでは新しい値を与えて上書きするしかありませんが、リストやスコープは上書きできません。クリアされるだけです。
すべての APT ツールでは、コマンドラインで任意の設定ディレクティブを指定できる -o オプションが使用できます。構文は、完全なオプション名 (例: APT::Get::Assume-Yes) に続き等号、その後オプションの新しい値となります。リスト名に続き :: を加えることで、リストを追加できます (疑問に思われたように、スコープ構文はコマンドラインで使用できません)。
:: を用いたリストへの項目追加は、1 行で 1 項目の場合にのみ使用でき、スコープ構文と組み合わせるべきではないことに注意してください (スコープ構文には暗黙で :: が追加されます)。両方の構文を同時に使用すると、「他のオプションと同様に名前と共に動作する、通常ではありえない名前 "::" のオプションである」といった、(残念なことに) 複数のユーザに渡るバグの引き金になります。たくさんの問題の中には、リストに追加しようと誤った構文で複数行書いたユーザが、このオプション "::" を最後に割り当てようとして、正反対の結果を得るということも含まれます。APT の次期バージョンでは、この誤用を検出すると、動作を停止しエラーを上げるようになります。そのため、APT がこの件で明白にエラーを吐かない限りは、自分でそのような構文を修正してください。
APT グループ¶
このオプショングループは、ツール全体に影響のある、一般的な APT の振る舞いを制御します。
Architecture
Architectures
Compressor
APT::Compressor::rev { Name "rev"; Extension ".reversed"; Binary "rev"; CompressArg {}; UncompressArg {}; Cost "10"; };
Build-Profiles
Default-Release
Ignore-Hold
Clean-Installed
Immediate-Configure
即時 (immediate) フラグは事前依存関係と等価なため、即時設定マーカも潜在的に、循環依存関係の問題に対して適用されます。理論上 APT は、即時設定不能と認識し、中断し、操作を継続するためにこのオプションを一時的に無効にするよう提案できます。ここで言う「理論上」という言葉に注意してください。現実世界では、安定版ではないバージョンでも、この問題にはほとんど遭遇していませんし、問題のパッケージの依存関係が誤っているか、システムの状態がすでに破損している場合に発生していました。そのため、盲目的にこのオプションを無効にするべきではありません。前述のシナリオを解決する方法の、1つにしかすぎないのです。
このオプションを無効にして dist-upgrade のような大きな操作を実行する前に、パッケージに install を明示して、即時設定が行われないようにするべきです。ですが、動作の改善とアップグレードプロセスの修正のため、以下のバグリンクから、問題をディストリビューションと APT チームにも報告していただきたいです。
Force-LoopBreak
Cache-Start, Cache-Grow, Cache-Limit
Build-Essential
Get
Cache
CDROM
ACQUIRE グループ¶
オプションの Acquire グループは、パッケージのダウンロードやダウンロードに関して責任を持つ、様々な「取得 (acquire) 方法」 を制御します (sources.list(5) も参照)。
Check-Date
Max-FutureTime
Check-Valid-Until
Max-ValidTime
Min-ValidTime
AllowTLS
PDiffs
PDiffs の使用を制限するふたつのサブオプションがあります。FileLimit では、ファイルを更新するのに、PDiff ファイルをダウンロードできる最大数を指定します。一方、SizeLimit は、対象ファイルのサイズに対して、全パッチサイズの最大パーセンテージを指定します。どちらの制限を超えても、パッチをダウンロードする代わりに、完全なファイルをダウンロードします。
By-Hash
Queue-Mode
Retries
Source-Symlinks
http https
ftp
timeout オプションは、この方法でのタイムアウトまでの時間を設定します。これには、接続のタイムアウトとデータのタイムアウトが含まれています。
設定のいくつかは、パッシブモードを制御するものです。一般的に、パッシブモードのままにしておく方が安全で、ほぼどんな環境でも動作します。しかしある状況下では、パッシブモードが無効のため、代わりにポートモード FTP を使用する必要があります。この設定は、プロキシを通る接続や特定のホストへの接続全般に有効です (設定例はサンプル設定ファイルを参照してください)。
環境変数 ftp_proxy に HTTP URL を指定すると FTP over HTTP のプロキシが利用可能になります。構文は前述の http についての説明を参照してください。設定ファイルの中でこれをセットすることはできません。また、効率が悪いため FTP over HTTP を使用するのは推奨しません。
ForceExtended の設定は RFC2428 の EPSV コマンドと EPRT コマンドの使用を制御します。デフォルトでは false で、コントロールコネクションが IPv6 の時にのみ、このコマンドを使用するということです。これを true にセットすると、IPv4 コネクションでも、強制的にこのコマンドを使用します。ほとんどの FTP サーバは RFC2428 をサポートしていないことに注意してください。
cdrom
/cdrom/::Mount "foo";
の形で記述します。スラッシュを後につけるのが重要です。アンマウントコマンドは UMount で指定することができます。
gpgv
CompressionTypes
Acquire::CompressionTypes::FileExtension "Methodname";
また、Order サブグループを使用して、取得システムが、圧縮ファイルのダウンロードを試みる順番を定義できます。取得システムは先頭のものを試行し、エラーが発生すると次の圧縮タイプのダウンロードを開始します。そのため、どれかを他のものより優先したい場合、単にそのタイプを先頭に追加してください。まだ追加していないタイプは、リストの最後に追加されます。つまり、
Acquire::CompressionTypes::Order:: "gz";
とすると、gzip で圧縮されたファイルを他のどれよりも優先的に使用します。もし xz を gzip や bzip2 よりも優先するべきなら、設定を以下のようにしてください。
Acquire::CompressionTypes::Order { "xz"; "gz"; };
bz2 は自動的に追加されるため、明示する必要はありません。
実行時に Dir::Bin::Methodname をチェックすることに注意してください。このオプションが設定されていてその形式のサポートが apt に直接組み込まれていない場合、ファイルがある場合に、この方法しか使われなくなります。例えば、bzip2 メソッド (内蔵) の設定は以下になります。
Dir::Bin::bzip2 "/bin/bzip2";
また、コマンドラインに指定した一覧のエントリは設定ファイルに指定したものの後、デフォルトエントリの前に追加されることに注意してください。この場合、設定ファイルに指定した内容よりも前に指定するには、オプションを直接 (一覧スタイルでなく) 指定してください。これは定義されている一覧を上書きするのではなく、このタイプを先頭に付加するだけです。
特殊なタイプ uncompressed は、非圧縮ファイルを優先するために使用できますが、ほとんどのアーカイブは非圧縮ファイルを提供しないため、ほとんどローカルミラーでのみ有効になることに注意してください。
GzipIndexes
Languages
デフォルトのリストには "environment" と "en" があります。"environment" はここでは特殊な意味があります。これは実行時に、LC_MESSAGES 環境変数から取得した言語コードに置換されます。また、このリストには、同じコードが2度現れないように確認してください。LC_MESSAGES が "C" に設定されているだけの場合、Translation-en ファイルを (利用可能であれば) 使用します。強制的に APT が Translation ファイルを使用しないようにするには、Acquire::Languages=none と設定してください。"none" はもうひとつの特殊な意味を持つコードで、適切な Translation ファイルの検索を中止します。環境から実際の言語を指定されなかった場合、この値を用いて APT に翻訳をダウンロードさせます。そのため、以下の設定例では、英語ロケールの場合 "en, de" の順になり、ドイツ語ロケールの場合 "de, en" の順になります。"fr" はダウンロードされますが、フランス語ロケール ("fr, de, en" の順になる) でないと、APT が使用しないことに注意してください。
Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };
注意: 異なる環境 (例: 異なるユーザや他のプログラム) で APT を実行したことによる問題を防ぐため、/var/lib/apt/lists/ にあるすべての Translation ファイルを、リストの最後 (暗黙の "none" の後) に追加します。
ForceIPv4
ForceIPv6
MaxReleaseFileSize
EnableSrvRecords
AllowInsecureRepositories
AllowWeakRepositories
AllowDowngradeToInsecureRepositories
Changelogs::URI スコープ
バイナリユーザ設定¶
特に、apt のバイナリの導入では、APT::Get::Show-Versions が apt と同様に apt-get に効果を与えるように、特定のバイナリのみに影響を与えるように見えるオプションであっても、特定のバイナリのために特定のオプションを設定することは有用であり得ます。
特定のバイナリ用のオプション設定は、Binary::specific-binary スコープ内でオプションを設定して達成することができます。 apt 用のAPT::Get::Show-Versions オプションの設定は、例えば、Binary::apt::APT::Get::Show-Versions 設定の代わりに実行されることができます。
さらに上記の説明の節に見られるように、コマンドライン上のオプション自体またはコマンドラインからロードされた設定ファイル中でバイナリ固有のオプションを設定することはできません。
ディレクトリ¶
Dir::State セクションは、ローカル状態情報に関するディレクトリを保持します。lists は、ダウンロードしたパッケージ一覧を格納するディレクトリで、status は dpkg(1) の状態ファイルの名前を表します。preferences は APT の preferences ファイルの名前です。Dir::State には、/ や ./ で始まらないサブアイテムすべてに、前に付加するデフォルトディレクトリを含んでいます。
Dir::Cache は、ローカルキャッシュ情報に関する場所を格納しています。これは、ダウンロード済アーカイブの場所を示す Dir::Cache::archives と同様に、srcpkgcache と pkgcache のパッケージキャッシュの場所になります。pkgcache や srcpkgcache に "" をセットすることで、キャッシュの生成を無効にできます。これにより起動時に遅くなりますが、ディスク容量を節約できます。おそらく、srcpkgcache よりも pkgcache を無効にすることが多いと思います。Dir::State と同様、Dir::Cache はデフォルトディレクトリを含んでいます。
Dir::Etc は設定ファイルの場所を格納しています。sourcelist はソースリストの場所を示し、main はデフォルトの設定ファイルです。(APT_CONFIG で設定ファイルを指定された場合のみ、この設定の効果があります)
Dir::Parts 設定は、指定されたディレクトリから、字句単位の全ての設定断片を読みこみます。これを設定した後に、メイン設定ファイルをロードします。
バイナリプログラムは Dir::Bin で指定します。Dir::Bin::Methods はメソッドハンドラの場所を指定し、gzip, bzip2, lzma, dpkg, apt-get dpkg-source dpkg-buildpackage, apt-cache はそれぞれプログラムの場所を指定します。
設定項目 RootDir は特別な意味を持ちます。設定されていると、すべてのパスは 絶対パスとして指定してもRootDir からの相対パスとなります。そのため例えば、RootDir が /tmp/staging にセットされており、Dir::State::status が /var/lib/dpkg/status にセットされている場合、status ファイルを /tmp/staging/var/lib/dpkg/status から探します。相対バスのみをプレフィックスにしたい場合は、代わりに Dir を設定します。
Ignore-Files-Silently リストは、断片ディレクトリの解析中に、APT が黙って無視をするファイルを指定します。デフォルトではそれぞれ、.disabled, ~, .bak, .dpkg-[a-z]+ で終わるものが、黙って無視されます。最後のデフォルト値を見ればわかる通り、このパターンには正規表現を使用できます。
DSELECT での APT¶
dselect(1) メソッドで APT を使用する際、いくつかの設定ディレクティブでデフォルトの動作を制御します。これは DSelect セクション以下にあります。
Clean
options
Updateoptions
PromptAfterUpdate
APT が DPKG(1) を呼ぶ方法¶
いくつかの設定項目で APT がどのように dpkg(1) を呼び出すかを制御できます。DPkg セクションにあります。
options
Path
Pre-Invoke, Post-Invoke
Pre-Install-Pkgs
このプロトコルのバージョン 2 は、要求されたファイルディスクリプタを介してより多くの情報を送信します: テキスト VERSION 2 の行、APT 設定空間、ファイル名とバージョン情報を持つパッケージ処理のリスト。
各設定ディレクティブ行は、key=value 形式です。特殊文字 (key 中のイコール記号、改行、非印字可能文字、引用符、およびパーセント記号、および value 中の改行、非印字可能文字、およびパーセント記号) は、% エンコードされます。リストは、同じキーを持つ複数のkey::=value 行で表されます。設定セクションは、空白行で終わります。
バージョン 2 ではパッケージアクション行は 5 つのフィールドで構成されています: パッケージ名 (例え外国だとしてもアーキテクチャ資格なしで)、旧バージョン、バージョン変更の方向 (< アップグレード、> ダウングレード、= 変化なし)、新バージョン、処理。バージョンなしの場合は、バージョンフィールドはすべて "-" です (例えば、初めてパッケージをインストール時、バージョンなしは、任意の実際のバージョンよりも前として扱われます。そのため、- < 1.23.4はアップグレードとなります)。パッケージが設定されている場合のアクションフィールドは "**CONFIGURE**" で、削除されている場合は "**REMOVE**" 、解凍されている場合は .deb ファイルのファイル名です。
バージョン 3 では、各バージョンフィールドの後に、このバージョンのアーキテクチャが続きます。バージョンなしの場合は "-" 、そして MultiArch 型 "same"、"foreign"、"allowed" または "none" を示すフィールド。"none" は単に互換性を維持するために残された、誤った型名であることに注意してください。それは"no" と読まれるべきで、ユーザは両方をサポートすることをお勧めします。
コマンド cmd で利用するプロトコルのバージョンは DPkg::Tools::options::cmd::Version の設定により選択でき、デフォルトはバージョン 1 となっています。リクエストしたバージョンを APT がサポートしていない場合はサポートしている最大のバージョンの情報を代わりに送ります。
情報の送信に利用するファイルディスクリプタは DPkg::Tools::options::cmd::InfoFD によりリクエストでき、デフォルトは 0 で標準入力を指定します。バージョン 0.9.11 から利用可能となりました。環境変数 APT_HOOK_INFO_FD を見ることでこのオプションに対応していることを検出でき、それには確認として利用しているファイルディスクリプタの番号が収録されています。
Run-Directory
Build-options
DPkg::ConfigurePending
PERIODIC オプションと ARCHIVES オプション¶
オプションの APT::Periodic グループと APT::Archives グループは、/usr/lib/apt/apt.systemd.daily スクリプトを使用して、apt の定期更新の挙動を設定します。このオプションのドキュメントは、このスクリプトの先頭を参照してください。
デバッグオプション¶
Debug:: セクションのオプションを有効にすると、apt ライブラリを利用するプログラムの標準エラー出力に、デバッグ情報を送るようになったり、主に apt の挙動をデバッグするのに便利な、特殊モードを有効にしたりできます。普通のユーザには、ほとんどのオプションは興味がないでしょうが、以下のものは興味を引くかもしれません。
以下は apt に対するデバッグオプションのすべてです。
Debug::Acquire::cdrom
Debug::Acquire::ftp
Debug::Acquire::http
Debug::Acquire::https
Debug::Acquire::gpgv
Debug::aptcdrom
Debug::BuildDeps
Debug::Hashes
Debug::IdentCDROM
Debug::NoLocking
Debug::pkgAcquire
Debug::pkgAcquire::Auth
Debug::pkgAcquire::Diffs
Debug::pkgAcquire::RRed
Debug::pkgAcquire::Worker
Debug::pkgAutoRemove
Debug::pkgDepCache::AutoInstall
Debug::pkgDepCache::Marker
Debug::pkgDPkgPM
Debug::pkgDPkgProgressReporting
Debug::pkgOrderList
Debug::pkgPackageManager
Debug::pkgPolicy
Debug::pkgProblemResolver
Debug::pkgProblemResolver::ShowScores
Debug::sourceList
Debug::RunScripts
サンプル¶
/usr/share/doc/apt/examples/configure-index.gz は、全利用可能オプション値のサンプルを参照できる、設定ファイルのサンプルです。
ファイル¶
/etc/apt/apt.conf
/etc/apt/apt.conf.d/
関連項目¶
バグ¶
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]
Burrows Daniel[FAMILY Given] <dburrows@debian.org>
注記¶
- 1.
- APT バグページ
02 1 月 2016 | APT 2.6.1 |