APT.CONF(5)

NAME
apt.conf - APT の設定ファイル

説明

apt.conf は、APT ツールスイートのメイン設定ファイルですが、間違いなくオプションの変更を指定するだけの場所などではありません。そのため、すべてのツールは設定ファイルを共有し、統一環境を提供するため、共通のコマンドラインパーサも使用します。

APT ツールの起動時に、設定ファイルを以下の順番で読み込みます。

    1. APT_CONFIG 環境変数で指定したファイル (存在する場合)

    2. all files in Dir::Etc::Parts in alphanumeric ascending order which have either no or "conf" as filename extension and which only contain alphanumeric, hyphen (-), underscore (_) and period (.) characters. Otherwise APT will print a notice that it has ignored a file if the file doesn't match a pattern in the Dir::Ignore-Files-Silently configuration list - in this case it will be silently ignored.

    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/apt.conf /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
    All Architectures the system supports. Processors implementing the amd64 are e.g. also able to execute binaries compiled for i386; This list is use when fetching files and parsing package lists. The internal default is always the native architecture (APT::Architecture) and all foreign architectures it can retrieve by calling dpkg --print-foreign-architectures.

Default-Release
    ひとつ以上のバージョンがある場合に、パッケージをインストールを行うデフォルトリリースです。リリース名や、コード名、リリースバージョンがあります。例えば 'stable', 'testing', 'unstable', 'squeeze', 'wheezy', '4.0', '5.0*' となります。apt_preferences(5) も参照してください。

Ignore-Hold
    保留パッケージの無視 - このグローバルオプションは、問題解決器に保留と指定したパッケージを無視します。

Clean-Installed
    デフォルトで有効です。autoclean 機能が on の時、ダウンロードできなくなったパッケージをキャッシュから削除します。off の場合、ローカルにインストールされているパッケージは、削除対象から外します。しかし、 APT はキャッシュから削除したパッケージの再インストール方法を、直接提供するわけではないことに注意してください。

Immediate-Configure
    デフォルトで有効で、インストールやアップグレード処理中に、APT が不可欠パッケージや重要パッケージのインストールを、可能な限り早く行うようになります。dpkg(1) の呼び出す際の失敗回数に制限があるため、このようなオプションがあります。このオプションが無効の場合、APT は重要パッケージを、特別パッケージと同様に扱うようになります。重要パッケージ A を展開していて、その設定中に他の展開や設定をたくさん呼び出すと、パッケージ B は A とはなんの関係もないにもかかわらず、dpkg の呼び出しが失敗します (つまり B のメンテナスクリプトがエラーを返します)。この結果、システムの状態として、パッケージ A は展開済みで未設定となります。A に依存するパッケージは、動作の保証がなくなり、A に対する依存関係は、もう満たせなくなります。 即時設定マーカは、たとえば環状の依存関係といった問題が発生しそうな、すべての依存関係に先行依存と同等の即時フラグを適用します。そのため理論上では、APT が即時設定できない、エラーが発生する、このオプションを参照するといった状況になる可能性があるのは、ユーザが即時設定を一時的に無効にして、インストールやアップグレードを行った場合です。「理論上」と言う単語を使ったのは、現在現実世界でこの問題に遭遇したのは、不安定版を使用しており、問題になっていたパッケージの間違った依存関係が原因だったり、システムが既に破損状態であったりした数回だけだからです。前述のシナリオが、即時設定が主に回避する問題のすべてというわけではないため、このオプションを闇雲に無効にするべきではありません。dist-upgrade のような大きな操作を、このオプションを無効にして行う前に、APT がすぐに設定できないパッケージを、明示的に install してみてください。ですが、アップグレードプロセスの改善のため、バグのリンクにあるディストリビューションと APT チームにも、問題のレポートをおねがいします。

Force-LoopBreak
    何をしようとしているのか「本当に」判っているのでなければ、絶対にこのオプションを有効にしないでください。不可欠 (essential) パッケージ同士で、競合 (Conflicts) /競合や競合/事前依存 (Pre-Depend) のループに落ち込んだときに、不可欠パッケージを一時的に削除してループを抜けられるようにします。そんなループはあり得ないはずで、あるとすれば重大なバグです。このオプションは、tar, gzip, libc, dpkg, bash とそれらが依存しているパッケージ以外の不可欠パッケージで動作します。

Cache-Start, Cache-Grow and Cache-Limit
    APT uses since version 0.7.26 a resizable memory mapped cache file to store the 'available' information. Cache-Start acts as a hint to which size the Cache will grow and is therefore the amount of memory APT will request at startup. The default value is 20971520 bytes (~20 MB). Note that these amount of space need to be available for APT otherwise it will likely fail ungracefully, so for memory restricted devices these value should be lowered while on systems with a lot of configured sources this might be increased. Cache-Grow defines in byte with the default of 1048576 (~1 MB) how much the Cache size will be increased in the event the space defined by Cache-Start is not enough. These value will be applied again and again until either the cache is big enough to store all information or the size of the cache reaches the Cache-Limit. The default of Cache-Limit is 0 which stands for no limit. If Cache-Grow is set to 0 the automatic grow of the cache is disabled.

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 グループは、パッケージのダウンロードや URI ハンドラの制御を行います。.PP Check-Valid-Until
    Security related option defaulting to true as an expiring validation for a Release file prevents longtime replay attacks and can e.g. also help users to identify no longer updated mirrors - but the feature depends on the correctness of the time on the user system. Archive maintainers are encouraged to create Release files with the Valid-Until header, but if they don't or a stricter value is volitional the following Max-ValidTime option can be used.

Max-ValidTime
    Seconds the Release file should be considered valid after it was created (indicated by the Date header). If the Release file itself includes a Valid-Until header the earlier date of the two is used as the expiration date. The default value is 0 which stands for "for ever". Archive specific settings can be made by appending the label of the archive to the option name.

Min-ValidTime
    Minimum of seconds the Release file should be considered valid after it was created (indicated by the Date header). Use this if you need to use a seldomly updated (local) mirror of a more regular updated archive with a Valid-Until header instead of completely disabling the expiration date checking. Archive specific settings can and should be used by appending the label of the archive to the option name.

PDiffs
    Packages ファイルや Sources ファイルの全体をダウンロードするのではなく、PDiffs と呼ばれる差分をダウンロードしようとします。デフォルトでは True です。

    Two sub-options to limit the use of PDiffs are also available: With FileLimit can be specified how many PDiff files are downloaded at most to patch a file. SizeLimit on the other hand is the maximum percentage of the size of all patches compared to the size of the targeted file. If one of these limits is exceeded the complete file is downloaded instead of the patches.

Queue-Mode
    キューモード - Queue-Mode は、APT がどのように並列接続を行うか、host か access で指定できます。host は、ターゲットホストごとに 1 接続を開きます。access は、URI タイプごとに 1 接続を開きます。

Retries
    リトライの回数を設定します。0 でない場合、APT は失敗したファイルに対して、与えられた回数だけリトライを行います。

Source-Symlinks
    ソースアーカイブのシンボリックリンクを使用します。true がセットされているとき、可能ならコピーの代わりにシンボリックリンクを張ります。true がデフォルトです。

http
    HTTP URI - http::Proxy は、デフォルトで使用する http プロキシです。http://[[user][:pass]@]host[:port]/ という標準形で表します。ホストごとのプロキシの場合は、http::Proxy::<host> という形と、プロキシを使用しないという意味の特殊キーワード DIRECT を使用して指定することもできます。上記の設定をなにも指定しないと、環境変数 http_proxy を使用します。

    HTTP/1.1 準拠のプロキシキャッシュの制御について 3 種類の設定があります。No-Cache はプロキシに対して、いかなる時もキャッシュを使用しないと伝えます。Max-Age は、インデックスファイル用のときだけ送信し、得られた時間よりも古かった場合に、オブジェクトをリフレッシュするようキャッシュに指示します。デフォルトでは 1 日となっているため、Debian は日毎にそのインデックスファイルを更新します。No-Store は、キャッシュがこのリクエストを格納せず、アーカイブファイルのみ設定するよう指定します。これは、非常に大きな .deb ファイルで、プロキシキャッシュが汚れるのを防ぐのに便利かもしれません。注) Squid 2.0.2 では、これらのオプションをサポートしていません。

    timeout オプションは、この方法でのタイムアウトまでの時間を設定します。これには、接続のタイムアウトとデータのタイムアウトが含まれています。

    リモートサーバが RFC 準拠でなかったり、(Squid 2.0.2 のように) バグがあったりしたときのために、パイプラインの深さの制御を設定します。Acquire::http::Pipeline-Depth により、APT が送信できるリクエストの回数を 0 から 5 の値で設定できます。リモートサーバが適切でなく、TCP 接続に時間がかかるときは、必ず 0 の値を設定しなければなりません。そうでなければデータが破損してしまいます。これが必要なホストは RFC 2068 に違反しています。

    使用する帯域を制限するには、Acquire::http::Dl-Limit にキロバイトで整数値を与えます。デフォルト値は 0 で、制限を解除し、使用できる帯域をすべて使おうとします (このオプションは暗黙的に、同時に複数のサーバからダウンロードしなくなることに注意してください)。

    クライアントが既知の識別子を使用する場合にのみ、プロキシがアクセスを許可する場合、Acquire::http::User-Agent を使用して、http でダウンロードするための、異なる User-Agent を設定できます。

https
    HTTPS URI - キャッシュ制御、タイムアウト、AllowRedirect、Dl-Limit、プロキシオプションは http メソッドと同様です。また、https 用に明示的に設定されない場合、オプションのデフォルト値は 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 URI - ftp::Proxy は、デフォルトで使用するプロキシサーバです。ftp://[[user][:pass]@]host[:port]/ という標準形で表します。ホストごとのプロキシの場合は、ftp::Proxy::<host> という形と、プロキシを使用しないという意味の特殊キーワード DIRECT を使用して指定することもできます。上記の設定をなにも指定しないと、環境変数 ftp_proxy を使用します。ftp プロキシを使用するには、設定ファイルに ftp::ProxyLogin スクリプトを設定する必要があります。接続する際にプロキシサーバに送信するコマンドをこのエントリに設定します。どのようにするのかは /usr/share/doc/apt/examples/configure-index.gz の例を参照してください。その他にも、$(PROXY_USER) $(PROXY_PASS) $(SITE_USER) $(SITE_PASS) $(SITE) $(SITE_PORT) が代わりに利用可能です。いずれも、それぞれ URI を構成するトークンです。

    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 - CDROM URI はマウントポイントの設定のみを行います。/etc/fstab で設定されているように、CDROM ドライブのマウントポイントを cdrom::Mount に設定しなければなりません。(SMB マウントや古い mount パッケージなど) マウントポイントが fstab に記述できない場合、かわりにマウント・アンマウントコマンドも使用できます。構文は、cdrom ブロックを

        /cdrom/::Mount "foo";

    の形で記述します。スラッシュを後につけるのが重要です。アンマウントコマンドは UMount で指定することができます。

gpgv
    GPGV URI - GPGV URI 用の唯一のオプションは、gpgv に渡す追加パラメータのオプションです。gpgv::Options が gpgv に渡す追加オプションです。

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 は自動的に追加されるため、明示する必要はありません。

    Note that at run time the Dir::Bin::Methodname will be checked: If this setting exists the method will only be used if this file exists, e.g. for the bzip2 method (the inbuilt) setting is:

        Dir::Bin::bzip2 "/bin/bzip2";

    Note also that list entries specified on the command line will be added at the end of the list specified in the configuration files, but before the default entries. To prefer a type in this case over the ones specified in the configuration files you can set the option direct - not in list style. This will not override the defined list, it will only prefix the list with this type.

    The special type uncompressed can be used to give uncompressed files a preference, but note that most archives don't provide uncompressed files so this is mostly only useable for local mirrors.

GzipIndexes
    When downloading gzip compressed indexes (Packages, Sources, or Translations), keep them gzip compressed locally instead of unpacking them. This saves quite a lot of disk space at the expense of more CPU requirements when building the local package caches. False by default.

Languages
    The Languages subsection controls which Translation files are downloaded and in which order APT tries to display the Description-Translations. APT will try to display the first available Description in the Language which is listed at first. Languages can be defined with their short or long Languagecodes. Note that not all archives provide Translation files for every Language - especially the long Languagecodes are rare, so please inform you which ones are available before you set here impossible values.

    The default list includes "environment" and "en". "environment" has a special meaning here: It will be replaced at runtime with the languagecodes extracted from the LC_MESSAGES environment variable. It will also ensure that these codes are not included twice in the list. If LC_MESSAGES is set to "C" only the Translation-en file (if available) will be used. To force apt to use no Translation file use the setting Acquire::Languages=none. "none" is another special meaning code which will stop the search for a fitting Translation file. This can be used by the system administrator to let APT know that it should download also this files without actually use them if the environment doesn't specify this languages. So the following example configuration will result in the order "en, de" in an english and in "de, en" in a german localization. Note that "fr" is downloaded, but not used if APT is not used in a french localization, in such an environment the order would be "fr, de, en".

        Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };

ディレクトリ

Dir::State セクションは、ローカル状態情報に関するディレクトリを保持します。lists は、ダウンロードしたパッケージ一覧を格納するディレクトリで、status は dpkg の状態ファイルの名前を表します。preferences は APT の 設定ファイルの名前です。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-get dpkg-source dpkg-buildpackage, apt-cache はそれぞれプログラムの場所を指定します。

設定項目 RootDir は特別な意味を持ちます。設定されていると、Dir:: のすべてのパスは、絶対パスとして指定してもRootDir からの相対パスとなります。そのため例えば、RootDir が /tmp/staging にセットされており、Dir::State::status が /var/lib/dpkg/status にセットされている場合、status ファイルを /tmp/staging/var/lib/dpkg/status から探します。

The Ignore-Files-Silently list can be used to specify which files APT should silently ignore while parsing the files in the fragment directories. Per default a file which end with .disabled, ~, .bak or .dpkg-[a-z]+ is silently ignored. As seen in the last default value these patterns can use regular expression syntax.

DSELECT での APT

dselect(1) 上で APT を使用する際、DSelect セクション以下の設定項目で、デフォルトの動作を制御します。

Clean
    キャッシュクリーンモード - この値は always, prompt, auto, pre-auto, never のうちひとつを取ります。always と prompt は更新後、全パッケージをキャッシュから削除します。prompt (デフォルト) では条件付きで削除します。auto はダウンロード不能パッケージ (例えば新バージョンで置き換えられたもの) を削除します。pre-auto はこの動作を、新パッケージをダウンロードする直前に行います。

オプション
    この変数の内容は、install 時のコマンドラインオプションと同様に apt-get(8) に渡されます。

Updateoptions
    この変数の内容は、update 時のコマンドラインオプションと同様に apt-get(8) に渡されます。

PromptAfterUpdate
    true の場合、dselect(1) の [U]pdate 実行時に、続行のためのプロンプトを毎回表示します。デフォルトはエラーが発生した場合のみです。

APT が DPKG を呼ぶ方法

いくつかの設定項目で APT がどのように dpkg(1) を呼び出すかを制御できます。DPkg セクションにあります。

オプション
    dpkg に渡すオプションのリストです。オプションは、リスト記法を使用して指定しなければなりません。また、各リストは単一の引数として dpkg(1) に渡されます。

Pre-Invoke, Post-Invoke
    dpkg(1) を呼び出す前後で実行するシェルコマンドのリストです。options のようにリスト記法で指定しなければなりません。コマンドは /bin/sh を使用して呼び出され、何か問題があれば APT は異常終了します。

Pre-Install-Pkgs
    dpkg(1) を呼び出す前に実行するシェルコマンドのリストです。options のようにリスト記法で指定しなければなりません。コマンドは /bin/sh を通して呼び出され、何か問題があれば、APT は異常終了します。APT はインストールしようとする全 .deb ファイルのファイル名を、ひとつずつコマンドの標準入力に送ります。

    このプロトコルのバージョン 2 では、(プロトコルのバージョンや APT 設定スペース、パッケージを含む) 詳細情報やファイル、変更されているバージョンを出力します。DPkg::Tools::options::cmd::Version に 2 を設定すると、バージョン 2 を有効にできます。cmd は Pre-Install-Pkgs で与えられるコマンドです。

Run-Directory
    APT は dpkg を呼び出す前にこのディレクトリに移動します。デフォルトは / です。

Build-options
    これらのオプションは、パッケージのコンパイル時に dpkg-buildpackage(1) に渡されます。デフォルトでは署名を無効にし、全バイナリを生成します。

  dpkg トリガの使い方 (および関連オプション)

APT can call dpkg in a way so it can make aggressive use of triggers over multiple calls of dpkg. Without further options dpkg will use triggers only in between his own run. Activating these options can therefore decrease the time needed to perform the install / upgrade. Note that it is intended to activate these options per default in the future, but as it changes the way APT calling dpkg drastically it needs a lot more testing. These options are therefore currently experimental and should not be used in productive environments. Also it breaks the progress reporting so all frontends will currently stay around half (or more) of the time in the 100% state while it actually configures all packages.

Note that it is not guaranteed that APT will support these options or that these options will not cause (big) trouble in the future. If you have understand the current risks and problems with these options, but are brave enough to help testing them create a new configuration file and test a combination of options. Please report any bugs, problems and improvements you encounter and make sure to note which options you have used in your reports. Asking dpkg for help could also be useful for debugging proposes, see e.g. dpkg --audit. A defensive option combination would be

    DPkg::NoTriggers "true";
    PackageManager::Configure "smart";
    DPkg::ConfigurePending "true";
    DPkg::TriggersPending "true";

DPkg::NoTriggers
    Add the no triggers flag to all dpkg calls (except the ConfigurePending call). See dpkg(1) if you are interested in what this actually means. In short: dpkg will not run the triggers when this flag is present unless it is explicitly called to do so in an extra call. Note that this option exists (undocumented) also in older apt versions with a slightly different meaning: Previously these option only append --no-triggers to the configure calls to dpkg - now apt will add these flag also to the unpack and remove calls.

PackageManager::Configure
    Valid values are "all", "smart" and "no". "all" is the default value and causes APT to configure all packages explicit. The "smart" way is it to configure only packages which need to be configured before another package can be unpacked (Pre-Depends) and let the rest configure by dpkg with a call generated by the next option. "no" on the other hand will not configure anything and totally rely on dpkg for configuration (which will at the moment fail if a Pre-Depends is encountered). Setting this option to another than the all value will implicitly activate also the next option per default as otherwise the system could end in an unconfigured status which could be unbootable!

DPkg::ConfigurePending
    If this option is set apt will call dpkg --configure --pending to let dpkg handle all required configurations and triggers. This option is activated automatic per default if the previous option is not set to all, but deactivating could be useful if you want to run APT multiple times in a row - e.g. in an installer. In these sceneries you could deactivate this option in all but the last run.

DPkg::TriggersPending
    Useful for smart configuration as a package which has pending triggers is not considered as installed and dpkg treats them as unpacked currently which is a dealbreaker for Pre-Dependencies (see debbugs #526774). Note that this will process all triggers, not only the triggers needed to configure this package.

PackageManager::UnpackAll
    As the configuration can be deferred to be done at the end by dpkg it can be tried to order the unpack series only by critical needs, e.g. by Pre-Depends. Default is true and therefore the "old" method of ordering in various steps by everything. While both method were present in earlier APT versions the OrderCritical method was unused, so this method is very experimental and needs further improvements before becoming really useful.

OrderList::Score::Immediate
    Essential packages (and there dependencies) should be configured immediately after unpacking. It will be a good idea to do this quite early in the upgrade process as these these configure calls require currently also DPkg::TriggersPending which will run quite a few triggers (which maybe not needed). Essentials get per default a high score but the immediate flag is relatively low (a package which has a Pre-Depends is higher rated). These option and the others in the same group can be used to change the scoring. The following example shows the settings with there default values.

        OrderList::Score {
        	Delete 500;
        	Essential 200;
        	Immediate 10;
        	PreDepends 50;
        };

PERIODIC オプションと ARCHIVES オプション

オプションの APT::Periodic グループと APT::Archives グループは、/etc/cron.daily/apt スクリプトを使用して、apt の定期更新の挙動を設定します。このオプションのドキュメントは、このスクリプトの先頭を参照してください。

デバッグオプション

Enabling options in the Debug:: section will cause debugging information to be sent to the standard error stream of the program utilizing the apt libraries, or enable special program modes that are primarily useful for debugging the behavior of apt. Most of these options are not interesting to a normal user, but a few may be:

    • Debug::pkgProblemResolver は、dist-upgrade, upgrade, install, remove, purge で行われた判断についての出力を有効にします。

    • Debug::NoLocking はファイルロックをすべて無効にします。これは、非 root ユーザとして操作 (例えば apt-get -s install) を行う場合に使用します。

    • Debug::pkgDPkgPM は apt が実際に dpkg(1) を起動する際の各コマンドラインを表示します。

    • Debug::IdentCdrom は CDROM ID にある statfs データの方gainを無効にします。

以下は 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
    Generate debug messages describing which package is marked as keep/install/remove while the ProblemResolver does his work. Each addition or deletion may trigger additional actions; they are shown indented two additional space under the original entry. The format for each line is MarkKeep, MarkDelete or MarkInstall followed by package-name <a.b.c -> d.e.f | x.y.z> (section) where a.b.c is the current version of the package, d.e.f is the version considered for installation and x.y.z is a newer version, but not considered for installation (because of a low pin score). The later two can be omitted if there is none or if it is the same version as the installed. section is the name of the section the package appears in.

Debug::pkgInitConfig
    起動時に、標準エラー出力へデフォルト設定を出力します。

Debug::pkgDPkgPM
    dpkg(1) 起動時に、起動した際の正確なコマンドラインを出力します。引数は空白で区切られます。

Debug::pkgDPkgProgressReporting
    状態ファイルディスクリプタに、dpkg(1) から受信したすべてのデータと、そのデータを解析中に発生したエラーを出力します。

Debug::pkgOrderList
    apt が dpkg(1) にパッケージを渡す順番を決める、アルゴリズムのトレースを生成します。

Debug::pkgPackageManager
    dpkg(1) を呼び出す際に、実行手順を追跡した状態メッセージを出力します。

Debug::pkgPolicy
    起動時の各パッケージの優先度を表示します。

Debug::pkgProblemResolver
    依存関係解決システムの実行内容を追跡します (これは複雑な依存関係の問題に遭遇した場合にのみ、適用されます)。

Debug::pkgProblemResolver::ShowScores
    Display a list of all installed packages with their calculated score used by the pkgProblemResolver. The description of the package is the same as described in Debug::pkgDepCache::Marker

Debug::sourceList
    /etc/apt/vendors.list から読み込んだ、ベンダの情報を出力します。

サンプル

/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-2010), Debian JP Documentation ML <debian-doc@debian.or.jp>

この翻訳文書には未訳部分が含まれていることに注意してください。 翻訳がオリジナルに追従できていない場合、 内容を失わないようにこのようにしています。

AUTHORS

Jason Gunthorpe

APT チーム

Daniel Burrows <dburrows@debian.org>
    Debug::*. の最初のドキュメント

NOTES

1.  APT バグページ
    http://bugs.debian.org/src:apt