Provided by: apt_1.0.1ubuntu2.24_amd64 

名前
apt.conf - APT の設定ファイル
説明
/etc/apt/apt.conf は、APT スイートの全ツールで使用するメイン設定ファイルです。しかし、間違いなくオプショ
ンを設定しておくだけの場所などではありません。そのため、APT スイートは統一環境を提供するため、共通のコマ
ンドラインパーサを共有しています。
APT ツールの起動時に、設定ファイルを以下の順番で読み込みます。
1. APT_CONFIG 環境変数で指定したファイル (存在する場合)
2. Dir::Etc::Parts にあるすべてのファイルを英数字の昇順になります。ファイル名には拡張子がないか、"conf"
となっており、英数字、ハイフン (-)、アンダースコア (_)、ピリオド (.) で構成されています。そうでなけれ
ば、Dir::Ignore-Files-Silently 設定リストのパターンに一致するもの以外に対して、ファイルを無視するとい
う注意を APT が出力します。一致する場合は黙って無視します。
3. Dir::Etc::Main で指定される、メイン設定ファイル
4. コマンドラインオプションにより、設定ディレクティブの上書きや設定ファイルの追加読み込みができます。
構文
設定ファイルは、機能グループごとに系統立てられたオプションを木構造で表します。オプションの指定は、2 つの
コロンで区切ります。例えば APT::Get::Assume-Yes は、APT ツールグループの Get ツール用オプションです。オプ
ションは、親グループからは継承しません。
設定言語の構文は、bind や dhcp のような ISC ツールをモデルにしています。// で始まる行はコメントとして扱わ
れます (無視)。同様に C/C++ のコメントのような /* と */ の間もコメントとして扱います。いずれの行
も、APT::Get::Assume-Yes "true"; のような形式です。引用符と行末のセミコロンは必須です。値は1行でなければ
ならず、文字列結合はありません。値の中にバックスラッシュや余計な引用符があってはいけません。オプション名
は、英数字と "/-:._+" が使用できます。以下のように波カッコを使うと、新しいスコープを開くことができます。
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
システムアーキテクチャ - ファイルを取得したり、パッケージリストを解析するときに使用するアーキテクチャ
をセットします。内部でのデフォルトは、apt をコンパイルしたアーキテクチャです。
Architectures
システムがサポートする、すべてのアーキテクチャです。例えば、amd64 (x86-64 とも呼ばれます) 命令セット
を実装した CPU は、i386 (x86) 命令セット用にコンパイルされたバイナリも実行できます。このリスト
は、ファイルを取得しパッケージリストを解析する際に利用されます。初期のデフォルト値は、常にシステムの
ネイティブアーキテクチャ (APT::Architecture) です。dpkg --add-architecture を用いて、外部アーキテク
チャをデフォルトリストに追加します。
Build-Profiles
構築依存の解決にあたって有効になっているビルドプロファイルを名前空間の「profile.」接頭辞を取り除いた
もの全ての一覧です。デフォルトではこの一覧は空です。dpkg-buildpackage(1) で利用される
DEB_BUILD_PROFILES はこの一覧よりも優先されます。
Default-Release
ひとつ以上のバージョンがある場合に、パッケージをインストールを行うデフォルトリリースです。リリース名
や、コード名、リリースバージョンがあります。例えば 'stable', 'testing', 'unstable', 'wheezy',
'jessie', '4.0', '5.0*' となります。apt_preferences(5) も参照してください。
Ignore-Hold
保留パッケージの無視 - このグローバルオプションは、問題解決器に保留と指定したパッケージを無視します。
Clean-Installed
デフォルトで有効です。on の時、autoclean 機能は、ダウンロードできなくなったパッケージを、すべてキャッ
シュから削除します。off の場合、ローカルにインストールされているパッケージは、削除対象から外しま
す。しかし、 APT はキャッシュから削除したパッケージの再インストール方法を、直接提供するわけではないこ
とに注意してください。
Immediate-Configure
デフォルトは on です。dpkg(1) の呼び出し失敗の影響を最小限にするため、インストール・更新操作の中
で、APT は不可欠パッケージや重要パッケージを、可能な限り早くインストールするようになります。このオプ
ションを無効にすると、以下のように、重要パッケージを特別パッケージと同様に扱うようになります。パッ
ケージ A の展開とその設定の間に、パッケージ B や C などの関係ない、たくさんの他のパッケージの展開と設
定が行えます。dpkg(1) の呼び出しに失敗した場合 (例: パッケージ B のメンテナスクリプトでエラー発
生)、システムの状態は、パッケージ A は展開したが未設定になります。そのため、A に依存したパッケージの
動作が保証されなくなり、A への依存関係は、もう満たせません。
即時 (immediate) フラグは事前依存関係と等価なため、即時設定マーカも潜在的に、循環依存関係の問題に対し
て適用されます。理論上 APT は、即時設定不能と認識し、中断し、操作を継続するためにこのオプションを一時
的に無効にするよう提案できます。ここで言う「理論上」という言葉に注意してください。現実世界では、安定
版ではないバージョンでも、この問題にはほとんど遭遇していませんし、問題のパッケージの依存関係が誤って
いるか、システムの状態がすでに破損している場合に発生していました。そのため、盲目的にこのオプションを
無効にするべきではありません。前述のシナリオを解決する方法の、1つにしかすぎないのです。
このオプションを無効にして dist-upgrade のような大きな操作を実行する前に、パッケージに install を明示
して、即時設定が行われないようにするべきです。ですが、動作の改善とアップグレードプロセスの修正のた
め、以下のバグリンクから、問題をディストリビューションと APT チームにも報告していただきたいです。
Force-LoopBreak
何をしようとしているのか本当に判っているのでなければ、絶対にこのオプションを有効にしないでくださ
い。不可欠 (essential) パッケージ同士で、競合 (Conflicts) /競合や競合/事前依存 (Pre-Depend) のループ
に落ち込んだときに、不可欠パッケージを一時的に削除してループを抜けられるようにします。そんなループは
あり得ないはずで、あるとすれば重大なバグです。このオプションは、tar, gzip, libc, dpkg, dash とそれら
が依存しているパッケージ以外の不可欠パッケージで動作します。
Cache-Start, Cache-Grow, Cache-Limit
APT は、バージョン 0.7.26 から、利用できる情報を格納するため、サイズ可変なメモリマップキャッシュファ
イルを使用します。Cache-Start は、キャッシュサイズが増大していくヒントとして動作し、従って APT が起動
時に要求するメモリ量です。デフォルト値は、20971520 バイト (~20 MB) です。この領域の量が、APT に利用可
能になっている必要があることに注意してください。そうでなければ、無様に失敗することになります。そのた
め、メモリに制限のあるデバイスで、たくさんのソースが設定され、それが増加していくシステムでは、この値
をより低くしておくべきです。Cache-Grow は、Cache-Start が足りなくなったという領域定義イベントによ
り、どの程度キャッシュサイズを増加させるかを、バイト数で定義します。デフォルトは 1048576 (~1 MB) で
す。この値は全情報を格納できる量になるか、Cache-Limit に達するまで、繰り返し適用されます。Cache-Limit
のデフォルトは 0 で、無制限です。Cache-Grow に 0 をセットすると、キャッシュの自動増加を無効にします。
Build-Essential
構築依存関係で不可欠なパッケージを定義します。
Get
Get サブセクションは apt-get(8) ツールを制御します。このオプションの詳細は apt-get(8) の文書を参照し
てください。
Cache
Cache サブセクションは apt-cache(8) ツールを制御します。このオプションの詳細は apt-cache(8) の文書を
参照してください。
CDROM
CDROM サブセクションは apt-cdrom(8) ツールを制御します。このオプションの詳細は apt-cdrom(8) の文書を
参照してください。
ACQUIRE グループ
オプションの Acquire グループは、パッケージのダウンロードやダウンロードに関して責任を持つ、様々な「取得
(acquire) 方法」 を制御します (sources.list(5) も参照)。
Check-Valid-Until
セキュリティ関連のオプションで、デフォルトは true です。Release ファイルの有効期限検証により、長期間
のリプレイ攻撃を防ぎます。さらに、例えばユーザが、もう更新されないミラーサイトを識別するのを支援しま
す。しかしこの機能は、ユーザのシステム時計が正確であることに依存しています。アーカイブメンテナ
は、Valid-Until ヘッダがある Release ファイルを作成するよう推奨されていますが、このヘッダを付与しな
い、またはより厳密な値が必要な場合、以下の Max-ValidTime オプションを使用できます。
Max-ValidTime
Release ファイルを作成してから (Date ヘッダ)、有効であるとみなせる最大時間 (秒数) です。Release ファ
イル自体に Valid-Until ヘッダがある場合、その 2 つのうち、より早い日付が有効期間として使用されま
す。デフォルト値は 0 で「無期限」を表します。オプション名にアーカイブのラベルを付与することで、アーカ
イブ固有の設定を作成できます。
Min-ValidTime
Release ファイルを作成してから (Date ヘッダ)、有効であるとみなせる最小時間 (秒数) です。Valid-Until
がある頻繁に更新されるアーカイブの、ほとんど更新されない (ローカル) ミラーを使用する場合に、完全に有
効期限チェックを無効にする代わりに使用してください。オプション名にアーカイブのラベルを付与すること
で、アーカイブ固有の設定を作成できます。
PDiffs
(Packages のような) インデックス全体をダウンロードするのではなく、PDiffs と呼ばれる差分をダウンロード
しようとします。デフォルトでは True です。
PDiffs の使用を制限するふたつのサブオプションがあります。FileLimit では、ファイルを更新するの
に、PDiff ファイルをダウンロードできる最大数を指定します。一方、SizeLimit は、対象ファイルのサイズに
対して、全パッチサイズの最大パーセンテージを指定します。どちらの制限を超えても、パッチをダウンロード
する代わりに、完全なファイルをダウンロードします。
Queue-Mode
キューモード - Queue-Mode は、APT がどのように並列接続を行うか、host か access で指定できます。host
は、ターゲットホストごとに 1 接続を開きます。access は、URI タイプごとに 1 接続を開きます。
Retries
リトライの回数を設定します。0 でない場合、APT は失敗したファイルに対して、与えられた回数だけリトライ
を行います。
Source-Symlinks
ソースアーカイブのシンボリックリンクを使用します。true がセットされているとき、可能ならコピーの代わり
にシンボリックリンクを張ります。true がデフォルトです。
http
http::Proxy には、HTTP URI で使用するデフォルトプロキシを設定しま
す。http://[[user][:pass]@]host[:port]/ という標準形で表します。ホストごとのプロキシ
を、http::Proxy::<host> という形で指定できます。この時、プロキシを使用しないという意味の特殊キーワー
ド DIRECT も使用できます。上記の設定をなにも指定しないと、環境変数 http_proxy を使用します。
HTTP/1.1 準拠のプロキシキャッシュの制御について 3 種類の設定があります。No-Cache はプロキシに対し
て、いかなる時もキャッシュを使用しないと伝えます。Max-Age は、プロキシのキャッシュにあるインデックス
ファイルの最大利用期間 (秒) を設定します。No-Store は、リクエストしたアーカイブファイルを、プロキシが
キャッシュに格納しないように指定します。これにより (大きな) .deb ファイルでプロキシのキャッシュが汚れ
るのを防げます。
timeout オプションは、この方法でのタイムアウトまでの時間を設定します。これには、接続のタイムアウトと
データのタイムアウトが含まれています。
Acquire::http::Pipeline-Depth の設定は、例えばレイテンシの高い接続で有益な、HTTP パイプライン (RFC
2616 8.1.2.2 節) を有効にするのに使用できます。これにより、パイプラインを用いて送信する、リクエスト数
を指定できます。旧バージョンの APT は、デフォルトで 10 でしたが、HTTP/1.1 仕様に対応しないウェブサー
バやプロキシの数が、増え続けることによる問題を回避するため、デフォルト値は 0 (= 無効) です。
Acquire::http::AllowRedirect は APT がリダイレクトをたどるかどうかを制御します。デフォルトでは有効で
す。
使用する帯域を制限するには、Acquire::http::Dl-Limit に秒あたりのキロバイトで整数値を与えます。デフォ
ルト値は 0 で、制限を解除し、使用できる帯域をすべて使おうとします。このオプションは暗黙的に、同時に複
数のサーバからダウンロードしなくなることに注意してください。
クライアントが既知の識別子を使用する場合にのみ、プロキシがアクセスを許可する場
合、Acquire::http::User-Agent を使用して、http でダウンロードするための、異なる User-Agent を設定でき
ます。
Acquire::http::Proxy-Auto-Detect を使って利用する http プロキシを検出するための外部コマンドを指定でき
ます。APT はコマンドが標準出力に http://proxy:port/ 形式でプロキシを出力することを期待しています。こ
れは全体を指定する Acquire::http::Proxy よりも優先されますが Acquire::http::Proxy::$HOST 経由でセット
した特定のホストのプロキシ設定はこれよりも優先されます。avahi を利用する実装例については squid-deb-
proxy-client(1) パッケージを見てください。このオプションは古い ProxyAutoDetect よりも優先されます。
https
Cache-control, Timeout, AllowRedirect, Dl-Limit, proxy の各オプションは、HTTPS URI でも http メソッド
と同様に動作します。また、明示的に値を指定しない場合のデフォルト値も同様です。Pipeline-Depth オプショ
ンはまだサポートしていません。
CaInfo サブオプションは、信頼済み証明書情報の保持場所を指定します。<host>::CaInfo は、同様のホストご
とのオプションです。Verify-Peer 真偽値サブオプションは、信頼済み証明書に対してサーバのホスト証明書
を、検証するかどうかを決定します。<host>::Verify-Peer は、同様のホストごとのオプションで
す。Verify-Host 真偽値サブオプションは、サーバのホスト名を検証するかどうかを決定しま
す。<host>::Verify-Host は、同様のホストごとのオプションです。SslCert は、クライアント認証に使用する
証明書を決定します。<host>::SslCert は、同様のホストごとのオプションです。SslKey は、クライアント認証
に使用する秘密鍵を決定します。<host>::SslKey は、同様のホストごとのオプションです。SslForceVersion
は、デフォルトで使用する SSL のバージョンを上書きします。'TLSv1' か 'SSLv3' という文字列を指定できま
す。<host>::SslForceVersion は、同様のホストごとのオプションです。
ftp
ftp::Proxy は、FTP URI を使用する際のデフォルトプロキシを設定しま
す。ftp://[[user][:pass]@]host[:port]/ という標準形で表します。ホストごとのプロキシ
を、ftp::Proxy::<host> という形で指定できます。この時、プロキシを使用しないという意味の特殊キーワード
DIRECT も使用できます。上記の設定をなにも指定しないと、環境変数 ftp_proxy を使用します。FTP プロキシ
を使用するには、設定ファイルに ftp::ProxyLogin スクリプトを設定する必要があります。このエントリに
は、接続する際にプロキシサーバに送信するコマンドを設定します。どのようにするのかは
/usr/share/doc/apt/examples/configure-index.gz の例を参照してください。URI を構成するコンポーネントに
対応する置換変数は、$(PROXY_USER), $(PROXY_PASS), $(SITE_USER), $(SITE_PASS), $(SITE), $(SITE_PORT)
です。
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 メソッドを利用する URI では、設定できるオプションはマウントポイントだけです。/etc/fstab で設定
されているように、CD-ROM (または DVD など) ドライブのマウントポイントを cdrom::Mount に設定しなければ
なりません。マウントポイントが fstab に記述できない場合、かわりにマウント・アンマウントコマンドも使用
できます。構文は、cdrom ブロックを
/cdrom/::Mount "foo";
の形で記述します。スラッシュを後につけるのが重要です。アンマウントコマンドは UMount で指定することが
できます。
gpgv
GPGV URI 用の唯一のオプションは、gpgv に渡す追加パラメータのオプションである、gpgv::Options です。
CompressionTypes
acquire メソッドが理解できる、圧縮法のリストです。Packages のようなファイルは、さまざまな圧縮形式が利
用できます。デフォルトでは acquire メソッドは、bzip2, lzma, gzip で圧縮されたファイルを伸張できま
す。この設定では、より多くの形式を、オンザフライで追加したり、使用するメソッドで変更したりできま
す。構文は以下のようになります。
Acquire::CompressionTypes::FileExtension "Methodname";
また、Order サブグループを使用して、取得システムが、圧縮ファイルのダウンロードを試みる順番を定義でき
ます。取得システムは先頭のものを試行し、エラーが発生すると次の圧縮タイプのダウンロードを開始しま
す。そのため、どれかを他のものより優先したい場合、単にそのタイプを先頭に追加してください。まだ追加し
ていないデフォルトタイプは、リストの最後に追加されます。つまり、
Acquire::CompressionTypes::Order:: "gz";
とすると、gzip で圧縮されたファイルを bzip2 や lzma よりも優先的に使用します。もし lzma を gzip や
bzip2 よりも優先するべきなら、設定を以下のようにしてください。
Acquire::CompressionTypes::Order { "lzma"; "gz"; };
bz2 は自動的に追加されるため、明示する必要はありません。
実行時に Dir::Bin::Methodname をチェックすることに注意してください。このオプションが設定されている
と、ファイルがある場合に、この方法しか使われなくなります。例えば、bzip2 メソッド (内蔵) の設定は以下
になります。
Dir::Bin::bzip2 "/bin/bzip2";
また、コマンドラインに指定した一覧のエントリは設定ファイルに指定したものの後、デフォルトエントリの前
に追加されることに注意してください。この場合、設定ファイルに指定した内容よりも前に指定するには、オプ
ションを直接 (一覧スタイルでなく) 指定してください。これにより定義された一覧が上書きされ、このタイプ
のもののみ定義されます。
特殊なタイプ uncompressed は、非圧縮ファイルを優先するために使用できますが、ほとんどのアーカイブは非
圧縮ファイルを提供しないため、ほとんどローカルミラーでのみ有効になることに注意してください。
GzipIndexes
gzip 圧縮インデックス (Packages, Sources, Translations) をダウンロードする際、ローカルで展開せず
に、gzip で圧縮したままにします。これにより、かなりディスク領域を節約できますが、ローカルパッケージ
キャッシュを構築する際に、CPU の能力を余計に消費します。デフォルトでは false です。
Languages
Languages サブセクションは、Translation ファイルをダウンロードし、APT が説明の翻訳を表示しようとする
場合の挙動を制御します。APT はリストの先頭にある言語で、まず有効な説明を表示しようとします。Languages
は 短い形式や長い形式の言語コードで、定義できます。すべてのアーカイブが、全言語の Translation ファイ
ルを、提供しているわけではないことに注意してください。長い言語コードは特に見かけません。
デフォルトのリストには "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
ダウンロード時に IPv4 プロトコルだけを使うように強制します。
ForceIPv6
ダウンロード時に IPv6 プロトコルだけを使うように強制します。
ディレクトリ
Dir::State セクションは、ローカル状態情報に関するディレクトリを保持します。lists は、ダウンロードしたパッ
ケージ一覧を格納するディレクトリで、status は dpkg(1) の状態ファイルの名前を表します。preferences は APT
の preferences ファイルの名前です。Dir::State には、/ や ./ で始まらないサブアイテムすべてに、前に付加す
るデフォルトディレクトリを含んでいます。
Dir::Cache は、ローカルキャッシュ情報に関する場所を格納しています。これは、ダウンロード済アーカイブの場所
を示す Dir::Cache::archives と同様に、srcpkgcache と pkgcache のパッケージキャッシュの場所になります。そ
れぞれに空文字をセットすることで、キャッシュの生成を無効にできます。これにより起動時に遅くなります
が、ディスク容量を節約できます。おそらく、srcpkgcache よりも pkgcache を無効にすることが多いと思いま
す。Dir::State と同様、Dir::Cache はデフォルトディレクトリを含んでいます。
Dir::Etc は設定ファイルの場所を格納しています。sourcelist はソースリストの場所を示し、main はデフォルトの
設定ファイルです。(APT_CONFIG で設定ファイルを指定された場合のみ、この設定の効果があります)
Dir::Parts 設定は、指定されたディレクトリから、字句単位の全ての設定断片を読みこみます。これを設定した後
に、メイン設定ファイルをロードします。
バイナリプログラムは Dir::Bin で指定します。Dir::Bin::Methods はメソッドハンドラの場所を指定し、gzip,
bzip2, lzma, dpkg, apt-getdpkg-sourcedpkg-buildpackage, apt-cache はそれぞれプログラムの場所を指定しま
す。
設定項目 RootDir は特別な意味を持ちます。設定されていると、Dir:: のすべてのパスは、絶対パスとして指定して
もRootDir からの相対パスとなります。そのため例えば、RootDir が /tmp/staging にセットされてお
り、Dir::State::status が /var/lib/dpkg/status にセットされている場合、status ファイルを
/tmp/staging/var/lib/dpkg/status から探します。
Ignore-Files-Silently リストは、断片ディレクトリの解析中に、APT が黙って無視をするファイルを指定しま
す。デフォルトではそれぞれ、.disabled, ~, .bak, .dpkg-[a-z]+ で終わるものが、黙って無視されます。最後のデ
フォルト値を見ればわかる通り、このパターンには正規表現を使用できます。
DSELECT での APT
dselect(1) メソッドで APT を使用する際、いくつかの設定ディレクティブでデフォルトの動作を制御します。これ
は DSelect セクション以下にあります。
Clean
キャッシュクリーンモード - この値は always, prompt, auto, pre-auto, never のうちひとつを取りま
す。always と prompt は更新後、全パッケージをキャッシュから削除します。prompt (デフォルト) では条件付
きで削除します。auto はダウンロード不能パッケージ (例えば新バージョンで置き換えられたもの) を削除しま
す。pre-auto はこの動作を、新パッケージをダウンロードする直前に行います。
options
この変数の内容は、install 時のコマンドラインオプションと同様に apt-get(8) に渡されます。
Updateoptions
この変数の内容は、update 時のコマンドラインオプションと同様に apt-get(8) に渡されます。
PromptAfterUpdate
true の場合、dselect(1) の [U]pdate 実行時に、続行のためのプロンプトを毎回表示します。デフォルトはエ
ラーが発生した場合のみです。
APT が DPKG(1) を呼ぶ方法
いくつかの設定項目で APT がどのように dpkg(1) を呼び出すかを制御できます。DPkg セクションにあります。
options
dpkg(1) に渡すオプションのリストです。オプションは、リスト記法を使用して指定しなければなりません。ま
た、各リストは単一の引数として dpkg(1) に渡されます。
Pre-Invoke, Post-Invoke
dpkg(1) を呼び出す前後で実行するシェルコマンドのリストです。options のようにリスト記法で指定しなけれ
ばなりません。コマンドは /bin/sh を通して呼び出され、何か問題があれば APT が異常終了します。
Pre-Install-Pkgs
dpkg(1) を呼び出す前に実行するシェルコマンドのリストです。options のようにリスト記法で指定しなければ
なりません。コマンドは /bin/sh を通して呼び出され、何か問題があれば、APT は異常終了します。APT はイン
ストールしようとする全 .deb ファイルのファイル名を、要求したファイルディスクリプタについて1 行ず
つ、デフォルトではコマンドの標準入力に送ります。
このプロトコルのバージョン 2 では、(プロトコルのバージョンや APT 設定スペース、パッケージを含む) 詳細
情報やファイル、変更されているバージョンを出力します。バージョン 3 では出力の各バージョンにアーキテク
チャと MultiArch フラグが追加されています。
コマンド cmd で利用するプロトコルのバージョンは DPkg::Tools::options::cmd::Version の設定により選択で
き、デフォルトはバージョン 1 となっています。リクエストしたバージョンを APT がサポートしていない場合
はサポートしている最大のバージョンの情報を代わりに送ります。
情報の送信に利用するファイルディスクリプタは DPkg::Tools::options::cmd::InfoFD によりリクエストで
き、デフォルトは 0 で標準入力を指定します。バージョン 0.9.11 から利用可能となりました。環境変数
APT_HOOK_INFO_FD を見ることでこのオプションに対応していることを検出でき、それには確認として利用してい
るファイルディスクリプタの番号が収録されています。
Run-Directory
APT は dpkg(1) を呼び出す前にこのディレクトリに移動します。デフォルトは / です。
Build-options
これらのオプションは、パッケージのコンパイル時に dpkg-buildpackage(1) に渡されます。デフォルトでは署
名を無効にし、全バイナリを生成します。
dpkg トリガの使い方 (および関連オプション)
APT は、複数の dpkg(1) 呼び出しトリガを、積極的に行わせる方法で dpkg(1) を呼び出せます。オプションがなけ
れば、実行のたびに dpkg(1) は一度トリガを引くだけです。そのため、このオプションを有効にすると、インストー
ルやアップグレードにかかる時間を、短くできます。将来、このオプションを、デフォルトで有効にする方向である
ことに注意してください。しかし、APT が dpkg(1) を呼ぶ方法といった大幅な変更を行うには、もっとたくさんのテ
ストが必要です。したがって、このオプションは現在実験中で、本番環境では使用するべきではありません。さら
に、すべてのフロントエンドが、実際には全パッケージを設定中なのに、半分 (もしくはそれ以上) の時間 100% の
ままとなり、進捗レポートを壊してしまいます。
APT がこのオプションをサポートすることや、将来このオプションが (大きな) トラブルの原因にならないこと
は、保証されないことに注意してください。このオプションの現在のリスクと問題を理解し、テストを手伝う十分な
勇気があるなら、新しい設定ファイルを作成し、オプションの組み合わせのテストをお願いしたいです。遭遇したど
んなバグ、問題、改善点を、どのようなオプションを使用したかと添えて報告してください。デバッグに役立つ可能
性のある情報を dpkg(1) に問い合わせることを提案します (例: dpkg --audit を参照)。防御的なオプションの組み
合わせは、以下のようになります。
DPkg::NoTriggers "true";
PackageManager::Configure "smart";
DPkg::ConfigurePending "true";
DPkg::TriggersPending "true";
DPkg::NoTriggers
dpkg(1) を呼び出すすべてのフラグ (ConfigurePending 呼び出し以外) を付与しません。実際にこれが何を意味
するのか興味があるなら、dpkg(1) を参照してください。要するに、追加呼び出しで明示的に呼び出されない限
り、このフラグがあると、dpkg(1) はトリガを実行しません。また、古いバージョンの APT に、意味がわずかに
異なる、このオプションが存在することに注意してください (ドキュメントなし)。以前のこのオプション
は、dpkg(1) の呼び出し設定に、--no-triggers を追加するだけでした。現在 APT は、このフラグを、展開呼び
出しや削除呼び出しにも追加します。
PackageManager::Configure
有効な値は "all", "smart", "no" です。デフォルト値は "all" で、APT にすべてのパッケージを設定させま
す。"smart" では、他のパッケージを展開する前に、設定が終わっていなければならないパッケージ (事前依存)
のみを設定し、残りを ConfigurePending オプション (後述) で生成した dpkg(1) 呼び出しで設定します。他方
では、"no" は何も設定しません。設定については dpkg(1) にすべて依存します (事前依存があると失敗しま
す)。このオプションを all 以外の値に設定すると、次のオプションを暗黙的に有効にします。そうしない
と、設定が完了せず、起動しなくなる可能性があるからです。
DPkg::ConfigurePending
このオプションがセットされると、dpkg(1) にすべての必要な設定とトリガを扱わせるように、APT は dpkg
--configure --pending を呼び出します。前述のオプションが all に設定されていない場合、このオプション
は、デフォルトで有効となります。しかし、APT を複数回連続して実行する場合 (インストーラなど) には、無
効にしたほうが便利かもしれません。このシナリオでは、最後以外のすべての実行で、無効にできます。
DPkg::TriggersPending
installed として認識されない保留トリガがあるパッケージを、smart 設定するのに便利です。dpkg(1) は現
在、先行依存関係には無力な unpacked として扱います (debbugs #526774 参照)。このパッケージを設定するの
に必要なトリガのみでなく、すべてのトリガを処理することに注意してください。
OrderList::Score::Immediate
不可欠パッケージ (と、その依存しているパッケージ) は展開を終えると、すぐに設定するべきです。アップグ
レードプロセスの初期に、設定してしまうのが良いのですが、現在 DPkg::TriggersPending を要求しているパッ
ケージも同時に行うため、かなり多くのトリガ (すべてが必要とは限らない) を処理することになります。不可
欠パッケージは、デフォルトではスコアを高く設定されていますが、即時フラグは相対的に低くなっています
(先行依存パッケージのほうが高い)。このオプションと、これと同じグループに属するものは、このスコア付け
を変更するのに使用します。以下の例では、デフォルト値を変更しています。
OrderList::Score {
Delete 500;
Essential 200;
Immediate 10;
PreDepends 50;
};
PERIODIC オプションと ARCHIVES オプション
オプションの APT::Periodic グループと APT::Archives グループは、/etc/cron.daily/apt スクリプトを使用し
て、apt の定期更新の挙動を設定します。このオプションのドキュメントは、このスクリプトの先頭を参照してくだ
さい。
デバッグオプション
Debug:: セクションのオプションを有効にすると、apt ライブラリを利用するプログラムの標準エラー出力に、デ
バッグ情報を送るようになったり、主に apt の挙動をデバッグするのに便利な、特殊モードを有効にしたりできま
す。普通のユーザには、ほとんどのオプションは興味がないでしょうが、以下のものは興味を引くかもしれません。
• Debug::pkgProblemResolver は、dist-upgrade, upgrade, install, remove, purge で行われた判断についての
出力を有効にします。
• Debug::NoLocking はファイルロックをすべて無効にします。これは、非 root ユーザとして操作 (例えば
apt-get -s install) を行う場合に使用します。
• Debug::pkgDPkgPM は apt が実際に dpkg(1) を起動する際の各コマンドラインを表示します。
• Debug::IdentCdrom は CD-ROM ID にある statfs データを含めないようにします。
以下は apt に対するデバッグオプションのすべてです。
Debug::Acquire::cdrom
cdrom:// ソースへのアクセスに関する情報を出力します。
Debug::Acquire::ftp
FTP を用いたパッケージのダウンロードに関する情報を出力します。
Debug::Acquire::http
HTTP を用いたパッケージのダウンロードに関する情報を出力します。
Debug::Acquire::https
HTTPS を用いたパッケージのダウンロードに関する情報を出力します。
Debug::Acquire::gpgv
gpg を用いた暗号署名の検証に関する情報を出力します。
Debug::aptcdrom
CD-ROM にあるパッケージ集合に対して、アクセスするプロセスについての情報を出力します。
Debug::BuildDeps
apt-get(8) での構築依存関係解決のプロセスを説明します。
Debug::Hashes
apt ライブラリが生成した、暗号化ハッシュを出力します。
Debug::IdentCDROM
CD-ROM の ID を生成する際に statfs という、CD-ROM ファイルシステムにある使用済・未使用ブロックの数か
らの情報を含めないようにします。
Debug::NoLocking
ファイルのロックをすべて無効にします。例えば、同時にふたつの 「apt-get update」 を実行できるようにな
ります。
Debug::pkgAcquire
グローバルダウンロードキューに対する項目の追加・削除の際にログを出力します。
Debug::pkgAcquire::Auth
ダウンロードしたファイルのチェックサムや暗号署名の確認に関する、状態メッセージやエラーを出力します。
Debug::pkgAcquire::Diffs
パッケージインデックスリスト差分のダウンロード・適用時の、情報やエラーを出力します。
Debug::pkgAcquire::RRed
インデックス全体ではなくインデックス差分のダウンロードの際に、apt パッケージリストへのパッチ適用に関
する情報を出力します。
Debug::pkgAcquire::Worker
実際のダウンロードを行う際の、サブプロセスとのやりとりをログに出力します。
Debug::pkgAutoRemove
パッケージの自動インストールや、不要パッケージの削除に関するイベントを、ログに出力します。
Debug::pkgDepCache::AutoInstall
依存関係解決のために、どのパッケージが自動的にインストールされたかのデバッグメッセージを生成しま
す。これは完全な apt 依存関係解決プログラム (Debug::pkgProblemResolver を参照) ではなく、例えば
apt-get install で実行された、初期の自動インストール経路に対応しています。
Debug::pkgDepCache::Marker
ProblemResolver が動作する際に、一時保留・インストール・削除としてマークされたパッケージに関する、デ
バッグメッセージを生成します。各追加・削除は追加アクションのトリガとなり、これをオリジナルのエントリ
の下に、空白 2 個でインデントして表示します。各行は、MarkKeep, MarkDelete, MarkInstall とな
り、package-name <a.b.c -> d.e.f | x.y.z> (section) が続きます。ここで、a.b.c は、そのパッケージの現
在のバージョン、d.e.fは、インストール予定のバージョン、x.y.z はより新しいけれどインストール対象外の
バージョン (pin のスコアが低いため) です。後のふたつは、存在しない、ないしインストール中のバージョン
と同じ場合、省略されます。section はパッケージが現れるセクション名です。
Debug::pkgDPkgPM
dpkg(1) 起動時に、起動した際の正確なコマンドラインを出力します。引数は空白で区切られます。
Debug::pkgDPkgProgressReporting
状態ファイルディスクリプタに、dpkg(1) から受信したすべてのデータと、そのデータを解析中に発生したエ
ラーを出力します。
Debug::pkgOrderList
apt が dpkg(1) にパッケージを渡す順番を決める、アルゴリズムのトレースを生成します。
Debug::pkgPackageManager
dpkg(1) を呼び出す際に、実行手順を追跡した状態メッセージを出力します。
Debug::pkgPolicy
起動時の各パッケージの優先度を表示します。
Debug::pkgProblemResolver
依存関係解決システムの実行内容を追跡します (これは複雑な依存関係の問題に遭遇した場合にのみ、適用され
ます)。
Debug::pkgProblemResolver::ShowScores
全インストール済みパッケージの、pkgProblemResolver が計算したスコアを一覧表示します。パッケージの説明
は、Debug::pkgDepCache::Marker で説明したものと同じです。
Debug::sourceList
/etc/apt/vendors.list から読み込んだ、ベンダの情報を出力します。
Debug::RunScripts
aptのフックにより呼び出される外部コマンドを表示します。これには例えば、設定オプション
DPkg::{Pre,Post}-Invoke や APT::Update::{Pre,Post}-Invoke があります。
サンプル
/usr/share/doc/apt/examples/configure-index.gz は、全利用可能オプション値のサンプルを参照できる、設定ファ
イルのサンプルです。
ファイル
/etc/apt/apt.conf
APT 設定ファイル。 設定項目: Dir::Etc::Main
/etc/apt/apt.conf.d/
APT 設定ファイル断片。 設定項目: Dir::Etc::Parts
関連項目
apt-cache(8), apt-config(8), apt_preferences(5).
バグ
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>
Debug::* に関する最初のドキュメント
注記
1. APT バグページ
http://bugs.debian.org/src:apt
APT 1.0.1ubuntu2.24 09 6 月 2012 APT.CONF(5)