APT.CONF(5)

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

説明

apt.conf は、APT ツール集の主設定ファイルです。 この設定ファイルと共通のコマンドラインパーサを使って、 すべてのツールを統一環境で使用できます。 APT ツールの起動時には、APT_CONFIG 環境変数に指定した設定を (存在すれば) 読み込みます。 次に Dir::Etc::Parts のファイルを読み込みます。 その後 Dir::Etc::main で指定した主設定ファイルを読み込み、 最後にコマンドラインオプションで、設定ファイルより取得した値を上書きします。

設定ファイルは、機能グループごとに系統立てられたオプションを、 木構造で表します。 オプションの内容は、2 つのコロンで区切ります。 例えば APT::Get::Assume-Yes は、APT ツールグループの、Get ツール用 オプションです。オプションは、親グループから継承しません。

設定言語の文法は、bind や dhcp のような ISC ツールをモデルにしています。 いずれの行も、
APT::Get::Assume-Yes "true";
の ような形で、セミコロンで区切ります。また引用はオプションです。 以下のように中カッコを使うと、新しいスコープを開くことができます。

APT {
  Get {
    Assume-Yes "true";
    Fix-Broken "true";
  };
};
また、適宜改行することで、より読みやすくなります。 リストは、開いたスコープ、クォートで囲まれた単語、 そしてセミコロンと続けることで作成できます。 セミコロンで区切ることで、複数のエントリを表すことができます。

DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};

/usr/share/doc/apt//examples/apt.conf /usr/share/doc/apt/examples/configure-index.gz は 一般的な設定ファイルのサンプルです。どのように設定するか参考になるでしょう。

#include と #clear の 2 つの特別な記法があります。 #include は指定したファイルを取り込みます。 ファイル名がスラッシュで終わった場合には、そのディレクトリをすべて 取り込みます。 #clear は名前のリストを削除するのに便利です。

すべての APT ツールで、コマンドラインで任意の設定を行う -o オプションが使用できます。 文法は、完全なオプション名 (例、APT::Get::Assume-Yes)、 等号、続いてオプションの新しい値となります。 リスト名に続き::を加えることで、リストを追加することができます。

APT グループ

このオプショングループは、ツール全体に影響のある、一般的な APT の振る舞いを 制御します。

Architecture
    システムアーキテクチャ - ファイルを取得したり、パッケージリストを 解析するときに使用するアーキテクチャをセットします。 内部でのデフォルトは、apt をコンパイルしたアーキテクチャです。

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

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

Immediate-Configure
    即時設定無効 - この危険なオプションは、APT の要求コードを無効にして、 dpkg の呼び出しをほとんどしないようにします。 これは、非常に遅いシングルユーザシステムでは必要かもしれませんが、 非常に危険で、パッケージのインストールスクリプトが失敗したり、 もしくはもっと悪いことがおきるかもしれません。 自己責任で使用してください。

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

Cache-Limit
    APT は、「利用可能」情報を格納するために、固定サイズの メモリマップキャッシュファイルを使用します。 このオプションは、そのキャッシュサイズを指定します。

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 ハンドラの制御を行います。

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 に違反しています。

ftp FTP URI - ftp::Proxy は、デフォルトで使用するプロキシサーバです。 ftp://[[user][:pass]@]host[:port]/ という標準形で表しますが、 環境変数 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 - マウントポイントの設定のみを行います。 /etc/fstab で設定されているように、CDROM ドライブの マウントポイントを cdrom::Mount に設定しなければなりません。 (SMB マウントや古い mount パッケージなど) マウントポイントが fstab に 記述できない場合、かわりにマウント・アンマウントコマンドも使用できます。 文法は、cdrom ブロックを
    "/cdrom/"::Mount "foo";
    の形で記述します。 スラッシュを後につけるのは重要です。 アンマウントコマンドは UMount で指定することができます。

ディレクトリ

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 で指定します。 methods はメソッドハンドラの場所を指定し、 gzip, dpkg, apt-get, dpkg-source, dpkg-buildpackage, apt-cache はそれぞれ プログラムの場所を指定します。

DSELECT での APT

dselect(8) 上で 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(8) の [U]pdate 実行時に、続行のためのプロンプトを 毎回表示します。デフォルトはエラーが発生した場合のみです。

APT が DPKG を呼ぶ方法

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

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

Pre-Invoke

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

Pre-Install-Pkgs
    dpkg(8) を呼び出す前に実行するシェルコマンドのリストです。 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) に 渡されます。 デフォルトでは、署名を無効にし、全バイナリを生成します。

デバッグオプション

debug の多くのオプションは、普通のユーザにとって興味を引くものでは ありません。しかし、Debug::pkgProblemResolver で、 dist-upgrade の判断についての興味深い出力が得られます。 Debug::NoLocking は、APT が非 root で操作できるように ファイルのロックを無効にしますし、 Debug::pkgDPkgPM は、 dpkg を呼ぶ際のコマンドラインを出力します。 Debug::IdentCdrom は、CDROM ID の状態データの包含を無効にします。

例

/usr/share/doc/apt/examples/configure-index.gz に、全利用可能オプションのデフォルト値を参照できる、 設定ファイルのサンプルがあります。

ファイル

/etc/apt/apt.conf

参照

apt-cache(8), apt-config(8), apt_preferences(5).

バグ

APT バグページ <URL:http://bugs.debian.org/apt>を 参照してください。 APT のバグを報告する場合は、 /usr/share/doc/debian/bug-reporting.txt や reportbug(1) コマンドを参照してください。

著者

APT は the APT team <apt@packages.debian.org> によって書かれました。

翻訳者

倉澤 望 <nabetaro@mx1.avis.ne.jp> (2003-2004)

Debian JP Documentation ML <debian-doc@debian.or.jp>