table of contents
APT.CONF(5) | APT | APT.CONF(5) |
名前¶
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"; }; };
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --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', 'jessie', 'stretch', '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
ブロックを
の形で記述します。スラッシュを後につけるのが重要です。アンマウントコマンドは
UMount
で指定することができます。
gpgv
/cdrom/::Mount "foo";
GPGV URI
用の唯一のオプションは、gpgv
に渡す追加パラメータのオプションである、gpgv::Options
です。
CompressionTypes
acquire
メソッドが理解できる、圧縮法のリストです。Packages
のようなファイルは、さまざまな圧縮形式が利用できます。デフォルトでは
acquire メソッドは、 bzip2,
lzma, gzip
で圧縮されたファイルを伸張できます。この設定では、より多くの形式を、オンザフライで追加したり、使用するメソッドで変更したりできます。構文は以下のようになります。
また、Order
サブグループを使用して、取得システムが、圧縮ファイルのダウンロードを試みる順番を定義できます。取得システムは先頭のものを試行し、エラーが発生すると次の圧縮タイプのダウンロードを開始します。そのため、どれかを他のものより優先したい場合、単にそのタイプを先頭に追加してください。まだ追加していないデフォルトタイプは、リストの最後に追加されます。つまり、
とすると、 gzip
で圧縮されたファイルを
bzip2 や lzma
よりも優先的に使用します。もし
lzma を gzip や bzip2
よりも優先するべきなら、設定を以下のようにしてください。
bz2
は自動的に追加されるため、明示する必要はありません。
実行時に Dir::Bin:: Methodname
をチェックすることに注意してください。このオプションが設定されていると、ファイルがある場合に、この方法しか使われなくなります。例えば、bzip2
メソッド (内蔵)
の設定は以下になります。
また、コマンドラインに指定した一覧のエントリは設定ファイルに指定したものの後、デフォルトエントリの前に追加されることに注意してください。この場合、設定ファイルに指定した内容よりも前に指定するには、オプションを直接
(一覧スタイルでなく)
指定してください。これにより定義された一覧が上書きされ、このタイプのもののみ定義されます。
特殊なタイプ uncompressed
は、非圧縮ファイルを優先するために使用できますが、ほとんどのアーカイブは非圧縮ファイルを提供しないため、ほとんどローカルミラーでのみ有効になることに注意してください。
GzipIndexes
Acquire::CompressionTypes:: FileExtension "Methodname";
Acquire::CompressionTypes::Order:: "gz";
Acquire::CompressionTypes::Order { "lzma"; "gz"; };
Dir::Bin::bzip2 "/bin/bzip2";
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
が使用しないことに注意してください。
注意: 異なる環境 (例:
異なるユーザや他のプログラム)
で APT
を実行したことによる問題を防ぐため、/var/lib/apt/lists/
にあるすべての Translation
ファイルを、リストの最後
(暗黙の "none" の後)
に追加します。
ForceIPv4
Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };
ダウンロード時に
IPv4
プロトコルだけを使うように強制します。
ForceIPv6
ダウンロード時に
IPv6
プロトコルだけを使うように強制します。
ディレクトリ¶
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-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 Pre-Invoke, Post-Invokedpkg(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(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.confAPT
設定ファイル。
設定項目: 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), 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 バグページ
09 6 月 2012 | APT 1.0.9.8.4 |