書式
dpkg [option...] action警告
このマニュアルは、dpkg のコマンドラインオプションやパッケージ状態について、dpkg --help よりも、さらに詳細に理解したいユーザを対象としている。dpkg がパッケージをどのようにインストールするかを理解したいというパッケージのメンテナを対象としたものではない。特に、パッケージのインストールや削除の際の dpkg の挙動に関する説明が不足している。
説明
dpkg は、Debian パッケージのインストール、ビルド、削除、管理を行うためのツールである。dpkg の代表的なフロントエンドであり、利便性の高いツールがaptitude(1) である。dpkg 自体は、1 つのアクションと 0 個以上のオプションからなるコマンドラインパラメータによって制御される。アクションにより dpkg の動作が指定され、オプションにより、そのアクションに関する挙動が制御される。dpkg は dpkg-deb(1) および dpkg-query(1) のフロントエンドとして用いることもできる。サポートされているアクションの一覧は、アクションセクションで後ほど説明する。これらのアクションが指示された場合、dpkg は、アクションに対して指定されたパラメータを用いて dpkg-deb もしくは dpkg-query を呼び出すが、現在のところオプションについては引き渡されない。バックエンドに対してこうしたオプションを指定したい場合は、直接呼び出す必要がある。
パッケージに関する情報
dpkg は利用可能なパッケージに関して、いくばくかの有用な情報を管理している。情報は、ステータス、パッケージ選択状態、フラグの 3 つに分類でき、主にdselect によって変更されることが想定されている。パッケージのステータス
- not-installed
- パッケージはシステムにインストールされていない。
- config-files
- パッケージの設定ファイルだけがシステムに存在している。
- half-installed
- パッケージのインストールは開始しているが、何らかの理由で完了していない。
- unpacked
- パッケージは展開されたが、まだ設定されていない。
- half-configured
- パッケージは展開されて設定も開始しているが、何らかの理由によって完了していない。
- triggers-awaited
- パッケージは別のパッケージによるトリガ処理を待機している。
- triggers-pending
- パッケージはトリガされている。
- installed
- パッケージの展開と設定が完了している。
パッケージ選択状態
- install
- パッケージはインストールするように選択されている。
- hold
- hold 状態にあるパッケージは、--force-hold オプションで強制しない限り、dpkgによる処理の対象とならない。
- deinstall
- パッケージは deinstallation (設定ファイルを除くすべてのファイルを削除) するように選択されている
- purge
- パッケージは完全削除 (設定ファイルも含めたすべてのファイルを削除) するように選択されている。
パッケージのフラグ
- reinst-required
- reinst-required 状態にあるパッケージは、不正な状態にあり、再インストールが必要となっている。こうしたパッケージは、--force-remove-reinstreq オプションで強制しない限り、削除することができない。
アクション
- -i, --install package-file...
-
パッケージをインストールする。--recursive または -R オプションが指定されていた場合、package-file
としてファイルではなくディレクトリを指定すること。
インストールは、以下のステップで構成されている。
1. インストールする新しいパッケージの制御ファイルを展開する。
2. 同一パッケージの別バージョンがインストール済の場合、新しいパッケージのインストール前に、インストール済パッケージの prerm スクリプトを実行する。
3. 新しいパッケージが preinst スクリプトを提供している場合、実行する。
4. 新しいファイルを展開する。同時に、失敗したときに元に戻せるように、古いファイルを保存する。
5. 同一パッケージの別バージョンがインストール済の場合、古いパッケージのpostrm スクリプトを実行する。このスクリプトは、新しいパッケージの preinstスクリプトの後に実行されることに注意すること。これは、新しいファイルが書き込まれるのと同時に古いファイルが削除されるためである。
6. パッケージの設定を行う。処理の詳細については、--configure を参照のこと。
- --unpack package-file...
- パッケージを展開するが、設定はしない。--recursive または -R オプションが指定されていた場合、package-file としてファイルではなくディレクトリを指定すること。
- --configure package...|-a|--pending
-
展開済だが未設定のパッケージを設定する。package の代わりに -a もしくは--pending
を指定した場合は、展開済だが未設定のパッケージすべてを設定する。
既に設定済のパッケージを再設定する場合は、dpkg-reconfigure(8) コマンドを代わりに使用すること。
設定は、以下のステップで構成されている。
1. 設定ファイルを展開する。同時になにか問題が発生した時に元に戻せるよう、古い設定ファイルをバックアップする。
2. パッケージが提供している場合、postinst スクリプトを実行する。
- --triggers-only package...|-a|--pending
- トリガ処理のみを行う。待機しているトリガが処理される。パッケージ名が指定されている場合、該当パッケージのトリガのみが、必要な場合に一度だけ処理される。このオプションを使用すると、パッケージが不適切な triggers-awaited もしくはtriggers-pending 状態のままになってしまうかもしれない。これらの状態は dpkg --configure --pending を後から実行することで対処できる。
- -r, --remove, -P, --purge package...|-a|--pending
-
インストール済のパッケージを削除する。-r もしくは --remove は、設定ファイル (conffile)
を除いたすべてを削除する。これにより、後ほど再インストールした時にパッケージの再設定を不要とすることができる
(ここでいう設定ファイルとは、制御ファイルの DEBIAN/conffiles に列挙されたファイルである) 。-P もしくは
--purge は、設定ファイルを含むすべてを強制削除する。パッケージ名の代わりに -a もしくは--pending
が指定された場合は、/var/lib/dpkg/status で remove もしくは purgeが指定されている展開済パッケージすべてが
remove もしくは完全削除される。設定ファイルによっては、設定スクリプトが生成、処理しているため、dpkg の管理下にない場合がある。この場合
dpkg はこれらのファイルを削除しないため、(dpkg から呼び出される) パッケージの postrm
スクリプトが完全削除処理の際に、これらのファイルを削除する必要がある。当然であるが、削除対象となるのは、システムのディレクトリに存在しているファイルのみであり、個々のユーザのホームディレクトリにある設定ファイルは対象外である。
パッケージの削除は以下のステップで構成されている:
1. prerm スクリプトを実行する。
2. インストールしたファイルを削除する。
3. postrm スクリプトを実行する。
- --update-avail, --merge-avail Packages-file
-
dpkg や dselect
が管理する利用可能なパッケージの情報を更新する。--merge-availアクションを指定すると、古い情報と Packages-file
の情報とが統合される。--update-avail アクションを指定すると、古い情報は Packages-file
の情報で置き換えられる。Debian と一緒に配布されている Packages-file は、シンプルにPackages
という名前になっている。dpkg は、利用可能なパッケージの情報を/var/lib/dpkg/available に記録する。
available ファイルを取得し更新する簡便なコマンドが dselect update である。このファイルは dselect の代わりに APT ベースのフロントエンドを使用する場合はほとんど無意味である。APT は利用可能なパッケージを管理するシステムを独自に保持しているためである。
- -A, --record-avail package-file...
- dpkg や dselect が管理する利用可能なパッケージの情報を、package-file で指定したパッケージの情報で更新する。--recursive または -R オプションが指定されていた場合、package-file としてファイルではなくディレクトリを指定すること。
- --forget-old-unavail
- 現在は廃止されており、何も行われない。dpkg は、インストールされず利用できないパッケージの情報を自動的に消去する。
- --clear-avail
- 利用可能なパッケージについての情報を消去する。
-C, --audit- インストールが中断されているパッケージを検索する。dpkg はインストールを完了させるために行うべきことを提示する。
- --get-selections [package-name-pattern...]
- 選択したパッケージのリストを標準出力に出力する。パターンを指定しなかった場合は、(既に完全削除されているなどで) インストールされていないパッケージは表示されない。
- --set-selections
-
標準入力から読み込んだファイルを用いて選択したパッケージのステータスを更新する。読み込むファイルは 'package state'
というフォーマットになっている必要がある。state は install, hold, deinstall, purge
のいずれかの値をとる。空行や '#' から始まるコメント行を使用してもよい。
The available database needs to be up-to-date for this command to be useful, otherwise unknown packages will be ignored with a warning. See the --update-avail and --merge-avail commands for more information.
- --clear-selections
- essential 以外のすべてのパッケージのステータスを deinstall にする。このオプションは、--set-selection の直前で用いて --set-selections で指定していないパッケージをすべて deinstall するために使用されることを想定している。
- --yet-to-unpack
- インストールするために選択されたが、何らかの理由でまだインストールされていないパッケージを検索する。
- --add-architecture architecture
- architecture を、--force-architecture を使用せずにパッケージをインストールすることが可能となるアーキテクチャのリストに追加する。dpkg がビルドされたアーキテクチャ (すなわち --print-architecture の出力) は、常にリストに含まれる。
- --remove-architecture architecture
- architecture を、--force-architecture を使用せずにパッケージをインストールすることが可能となるアーキテクチャのリストから削除する。アーキテクチャが現在データベースで使用中だった場合、--force-architecture が指定されていない限り、操作は拒否される。dpkg がビルドされたアーキテクチャ (すなわち --print-architecture の出力) を、リストから削除することは決してできない。
- --print-architecture
- dpkg がインストールするパッケージのアーキテクチャ (例えば "i386") を表示する。
- --print-foreign-architectures
- dpkg によるインストールを可能とする設定をされた、追加のアーキテクチャを改行で区切ったリストで表示する。
- --compare-versions ver1 op ver2
- 二項演算子 op を用いてバージョン番号を比較する。dpkg は、指定した条件を満たす場合は成功 (0) を、それ以外は失敗 (0 以外) を返却する。演算子は ver1 やver2 が空文字列の時の扱いによって、 2 種類に大別できる。lt le eq ne ge gtは、空文字列をもっとも小さいバージョンと見なす。lt-nl le-nl ge-nl gt-nl は、もっとも大きいバージョンとみなす。< << <= = >= >> > は、control ファイルの文法との互換性を維持するためにのみ提供される。
- -?, --help
- オプションに関する簡単なヘルプを表示する。
- --force-help
- --force-thing オプションに関するヘルプを表示する。
- -Dh, --debug=help
- デバッグ用オプションに関するヘルプを表示する。
- --version
- dpkg のバージョン情報を表示する。
- dpkg-deb actions
-
以下のアクションの詳細については dpkg-deb(1) を参照のこと。
-b, --build directory [archive|directory] deb パッケージをビルドする。 -c, --contents archive deb パッケージに含まれるファイル一覧を表示する。 -e, --control filename [directory] パッケージから制御情報ファイルを展開する。 -x, --extract archive directory パッケージによってインストールされるファイルをすべて展開する。 -X, --vextract archive directory パッケージによってインストールされるファイルをすべて展開して表示する。 -f, --field archive [control-field...] パッケージの制御ファイルの各フィールドを表示する。 --fsys-tarfile archive Debian パッケージに含まれるインストールされるファイルが格納された tar ファイルの内容を表示する。 -I, --info archive [control-file...] パッケージに関する各種情報を表示する。
- dpkg-query actions
-
以下のアクションの詳細は、dpkg-query(1) を参照のこと。
-l | --list package-name-pattern ... 指定したパターンにマッチする名前のパッケージの一覧を表示する。 -s | --status package-name ... 指定したパッケージの状態を報告する。 -L | --listfiles package-name ... package-name によってシステムにインストールされたファイルの一覧を表示する。 -S | --search filename-search-pattern ... 指定したファイルがどのパッケージからインストールされたか検索する。 -p | --print-avail package-name /var/lib/dpkg/available にある package-name の詳細情報を表示する。 APT ベースのフロントエンドを使っている場合は、apt-cache show package-name コマンドを代わりに使用すること。
オプション
すべてのオプションは、コマンドラインと dpkg の設定ファイル/etc/dpkg/dpkg.cfg もしくは設定ディレクトリ /etc/dpkg/dpkg.cfg.d/ 内にあり、次のシェルパターン '[0-9a-zA-Z_-]*') にマッチする名前の) フラグメントファイルのいずれで指定してもよい。設定ファイルの各行は、(先頭のダッシュを削除することを除き、コマンドラインオプションとまったく同一の) オプションもしくは (行頭が # からはじまる) コメントのいずれかを記述する。- --abort-after=number
- dpkg の処理を中断させるエラー数を変更する。デフォルトは 50 である。
- -B, --auto-deconfigure
- パッケージを削除するとき、削除するパッケージに依存した別のパッケージがインストールされている場合がある。このオプションを指定すると、削除するパッケージに依存しているパッケージの設定を自動的に取り消す。
- -Doctal, --debug=octal
-
デバッグモードにする。 octal は、以下の一覧 (将来のリリースでは変更される可能性があることに注意)
から、任意の値をビットごとの論理和で組み合わせた数値である。-Dh または --debug=help により指定可能な値が表示される。
数値 説明
1 一般的に有用な、処理の進行状況
2 管理スクリプトの呼び出しと処理状況
10 各ファイル処理の情報
100 各ファイル処理の詳細情報
20 各設定ファイルの情報
200 各設定ファイルの詳細情報
40 依存関係、競合関係
400 依存関係、競合関係の詳細情報
10000 トリガの有効化と処理状況
20000 トリガ関連の詳細情報
40000 トリガ関連の過剰ともいえる詳細情報
1000 dpkg/info ディレクトリ関連など、あまり意味のない詳細情報
2000 信じられないほど大量のあまり意味のない情報 - --force-things, --no-force-things, --refuse-things
-
指定した things を強制実行 (force) もしくは拒否 (refuse) する (no-forceと refuse は同じ意味) 。things には、以下の項目をコンマで区切って列挙する。これらの項目は --force-help オプションで表示される。(*) マークのあるものは、デフォルトで強制実行される。
警告: 以下のオプションは、熟練ユーザ以外による使用を基本的に想定していない。影響を完全に理解しないままに使用した場合、システム全体が機能不全に陥る可能性がある。
all: 全ての強制オプションを指定する(または指定しない)。
downgrade(*): より新しいバージョンがすでにインストールされていたとしても、指定したパッケージをインストールする。
警告: 現在のところ dpkg はダウングレードの際に依存関係のチェックをまったく行わない。そのため、ダウングレードが別のパッケージの依存関係に問題を発生させる可能性についても警告されない。これは深刻な副作用を引き起こす可能性があり、必須のシステムコンポーネントをダウングレードした場合、システム全体が機能不全に陥ってしまうこともありうる。充分注意して使用すること。
configure-any: 指定したパッケージが依存しており、すでに展開されているが、まだ設定されていないパッケージも一緒に設定をする。
hold: たとえ "hold" とマークされていても、そのパッケージの処理をする。
remove-reinstreq: 問題が発生しており、再インストールが必要だとマークされていた場合でも、パッケージを削除する。これは、パッケージの一部が dpkg から認識されない状態でシステムに残置されてしまう状況を引き起こす場合がある。
remove-essential: essential と見なされるパッケージであっても削除する。essential パッケージには、もっとも基本となる UNIX コマンドが含まれる。これらを削除すると、システム全体が動作しなくなるため、本オプションは注意して使用すること。
depends: すべての依存関係の問題を警告として扱う。
depends-version: 依存関係の確認の際に、バージョンを無視する。
breaks: 別のパッケージの機能不全を引き起こす場合でもインストールする。
conflicts: 他のパッケージと競合してもインストールする。たいていはいくつかファイルを上書きすることになるため、危険である。
confmiss: 設定ファイルが存在せず、パッケージ中のバージョンが変更された際に、存在しない設定ファイルを常にインストールする。これは、ファイルに対する変更 (ファイル削除) を保持しないことを意味するため、危険である。
confnew: 設定ファイルが変更されており、パッケージ中のバージョンも変更されていた場合、確認なしに新しいバージョンをインストールする。ただし、--force-confdef が同時に指定されていた場合は、デフォルトの動作が優先される。
confold: 設定ファイルが変更されており、パッケージ中のバージョンも変更されていた場合、確認なしに古いバージョンを保持する。ただし、--force-confdef が同時に指定されていた場合は、デフォルトの動作が優先される。
confdef: conffile が変更されており、パッケージ中のバージョンも変更されていた場合、デフォルトの動作を実行する。デフォルトの動作が未定義で、--force-confnew と --force-confold のいずれも設定されていなかった場合は、ユーザに確認を求めるため、処理を中断する。いずれかが設定されている場合は、それによって最終的な動作が決定される。
confask: 設定ファイルが変更されていた場合、パッケージバージョンが変更されていない場合でも、パッケージ収録のものと置き換えるかどうかを確認する。--force-confmiss, --force-confnew, --force-confold, または --force-confdefのいずれかが設定されている場合は、それによって最終的な動作が決定される。
overwrite: あるパッケージで提供されているファイルを、インストールするパッケージのファイルで上書きする。
overwrite-dir: あるパッケージで提供されているディレクトリを、インストールするパッケージのファイルで上書きする。
overwrite-diverted: 退避 (divert) した古いファイルを現在のファイルで上書きする。
unsafe-io: 展開の際に安全な I/O 処理を行わない。現在のところ、これはファイル名の変更前にファイルシステムの同期を行わないことを意味する。同期を行った場合、ファイルシステムによっては顕著な性能低下が発生することが知られている。不幸なことに、まず第一に安全な I/O を必要としているのは、信頼性の低い I/O 処理を行っており、突然のシステム停止の際に 0 バイト長のファイルを作成してしまう、このような性能低下が発生するファイルシステム自身である。
注記: この事象の主たる発生元である ext4 では、本オプションの代わりにマウントオプション nodelalloc の使用を検討してほしい。これはパフォーマンスの低下を抑えつつ、データを安全に扱うことができる。後者は、ファイルシステム上において、アトミックな rename 処理の前に同期を行わないソフトウェアが、突然のシステム停止の際に 0 バイト長のファイルを作成できないようにすることで実現している。
警告: このオプションはパフォーマンスを向上させるかもしれないが、同時にデータ喪失のリスクを高める。使用に際してはこの点の充分注意すること。
architecture: パッケージのアーキテクチャが誤っている、もしくはアーキテクチャが存在しない場合であっても、処理を行う。
bad-version: パッケージのバージョンが誤っていても処理を続行する。
bad-path: 重要なプログラムが PATH に含まれていなくても実行する。問題が起きる可能性が高い。
not-root: root 以外でも、インストール (または削除) を試行する。
bad-verify: 正当性認証チェックに失敗してもパッケージをインストールする。
- --ignore-depends=package,...
- 指定したパッケージに関する依存関係の確認を行わない (実際は、依存関係の確認は行われるが、競合が発生しても警告メッセージのみで処理を続行する)。
- --no-act, --dry-run, --simulate
-
実行されるべき処理をすべて行うが、いかなる変更も書き込まない。これは、一切変更を行わずに、指定したアクションによって何が起こるかを確認する際に用いられる。
オプション --no-act は、必ずアクションパラメータより前で指定すること。さもなくば、望ましくない結果が発生することになる (例えば、dpkg --purge foo --no-act というコマンドを実行させた場合、変更は一切させないつもりかも知れないが、実際には、パッケージ foo を完全削除してしまってから、--no-act という名前のパッケージの完全削除処理が行われる)。
- -R, --recursive
- 指定したディレクトリを再帰的に検索し、*.deb というパターンにマッチする通常ファイルすべてに処理を行う。これは、-i, -A, --install, --unpack, --avail アクションに使うことができる。
- -G
- インストール済のパッケージのバージョンの方が新しければ、パッケージをインストールしない。これは --refuse-downgrade の別名である。
- --admindir=dir
- デフォルトの管理ディレクトリを変更する (デフォルトは /var/lib/dpkg)。管理ディレクトリには、パッケージのインストール状況に関する情報が格納された多種多様なファイルが存在する。
- --instdir=dir
- デフォルトのインストールディレクトリを変更する。インストールディレクトリは、パッケージのインストール先となるディレクトリである。instdir は、パッケージのインストールスクリプトが実行される前に chroot(2) にわたされるディレクトリでもある。つまり、スクリプトは instdir をルートディレクトリとみなす (デフォルトは / である)。
- --root=dir
- root を変更すると、instdir が dir に変更され、admindir が dir/var/lib/dpkg に変更される。
- -O, --selected-only
- インストール対象として選択されたパッケージのみを処理する。選択のマーク付けそのものは、dselect や dpkg を使って行なう。例えば、パッケージ削除の際には、パッケージは削除対象としてマーク付けがされる。
- -E, --skip-same-version
- すでに同じバージョンのパッケージがインストールされている場合、パッケージをインストールしない。
--pre-invoke=command
--post-invoke=command
- dpkg が unpack, configure, install, triggers-only, remove, purge の各アクションを実行する前後に ``sh -c'' によって起動されるフックコマンドを指定する。このオプションは複数回指定することができ、その際オプションの指定順は保持される。設定ファイルにおける指定の方が優先度が高い。現在のアクションに対するフックは、環境変数 DPKG_HOOK_ACTION に設定される。フロントエンドは、ある一回の操作中に dpkg を複数回呼び出す場合がある。そのため、フックについても想定していた回数以上に呼び出される場合がある点に留意すること。
--path-exclude=glob-pattern
--path-include=glob-pattern
-
glob-pattern
によりパスのフィルタ条件を指定する。これは、インストールの際に指定したパターンにマッチしたパスのファイルをインストールの対象から除外したり、除外したパスの一部を再度インストール対象としたりするために用いられる。
警告: 除外したパスによっては、システム全体が動作しなくなる可能性がある。危険性を充分理解した上で、注意して使用すること。
glob-pattern には、シェルと同様のワイルドカードを使用することができる。'*' は、空文字列と '/' を含むすべての文字列にマッチする。例えば、'/usr/*/READ*' は '/usr/share/doc/package/README' にマッチする。例によって '?' は任意の 1 文字 (こちらも '/' を含む) にマッチする。'[' は、文字のリスト、範囲、補集合を含む文字クラスの開始を意味する。パターンマッチングの詳細は glob(7) を参照のこと。注記: 現在の実装では、安全サイドに倒してファイル展開の際のエラーを抑止しているため、ディレクトリやシンボリックリンクが過度にマッチしてしまう。この挙動は将来的に修正されるかもしれない。
これは、特定のパス以外のパスをすべて除外するために使用することができる。典型的な例を以下に示す:
--path-exclude=/usr/share/doc/* --path-include=/usr/share/doc/*/copyright
これは、copyright ファイル以外のすべてのドキュメントファイルを削除する。
この 2 つのオプションは複数回指定することができ、交互に指定していくことも可能である。その場合は指定された順番どおりに処理が行われ、ファイル名に対して最後にマッチしたルールによって、処理が決定する。
- --status-fd n
-
コンピュータが解釈可能な形式のパッケージの状態と処理の進行状況に関する情報とをファイルディスクリプタ n
に引き渡す。このオプションは複数回指定することができる。情報は通常 1 行に 1 レコードずつ、以下のいずれかの形式で記載される:
-
- status: package: status
- パッケージのステータスが変更された。status が新しいステータスである。
- status: package : error : extended-error-message
- エラーが発生した。extended-error-message 中の改行は、出力の前に空白文字に置き換えられる。
- status: file : conffile-prompt : 'real-old' 'real-new' useredited distedited
- ユーザは設定ファイルの処理に関する確認をされている。
- processing: stage: package
- stage に関する処理が開始される前に送信される。stage は、upgrade, install (いずれも展開が開始される前に送信される), configure, trigproc, disappear, remove, purge のいずれかになる。
-
- --status-logger=command
- コンピュータが解釈可能な形式のパッケージの状態と処理の進行状況に関する情報とをシェル command の標準入力に引き渡す。このオプションは複数回指定することができる。出力形式は --status-fd と同一である。
- --log=filename
- 状態の変更やアクションの記録先を、デフォルトの /var/log/dpkg.log から filename に変更する。このオプションを複数回指定した場合は、最後に指定したファイル名が使われる。ログメッセージの形式は次のとおり。状態の変更は、`YYYY-MM-DD HH:MM:SS status state pkg installed-version。アクションは、`YYYY-MM-DD HH:MM:SS action pkg installed-version available-version で、action は、install, upgrade, remove, purge のいずれかである。設定ファイルの変更は、`YYYY-MM-DD HH:MM:SS conffile filename decision' で、decision は install か keepのいずれかである。
- --no-debsig
- パッケージの署名を確認しない。
- --no-triggers
- 今回の実行に際しては、いかなるトリガも実行させない (トリガの有効化自体は記録される)。--configure package や --triggers-only package と同時に指定した場合、対象パッケージの postinst はトリガの実行が必要であっても、実行されることになる。このオプションを使用すると、パッケージがtriggers-awaited や triggers-pending のまま不適切な状態で残ってしまうことがある。これは後ほど dpkg --configure --pending を実行することで解消される。
- --triggers
- 先に指定した --no-triggers を無効にする。
ファイル
- /etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*
- フラグメントファイルの設定
- /etc/dpkg/dpkg.cfg
- オプションのデフォルト値を記述する設定ファイル。
- /var/log/dpkg.log
- デフォルトのログファイル (/etc/dpkg/dpkg.cfg(5) と --log オプションも参照のこと)。
以下のファイルのパスは、デフォルトのディレクトリ配下に存在している場合である。ファイルの位置を変更する方法については、--admindir オプションを参照すること。
- /var/lib/dpkg/available
- 使用できるパッケージの一覧。
- /var/lib/dpkg/status
-
使用できるパッケージのステータス情報。このファイルには、パッケージが削除対象としてマークされているか、インストール済みかどうかといった情報が含まれている。詳細は、パッケージに関する情報
セクションを参照すること。
ステータスファイルは、日時で /var/backups にバックアップされる。これはファイルシステムまわりのトラブルで、ファイルが消失したり破損したりした際に有用である。
以下のファイルはバイナリパッケージを構成するファイルである。これらのファイルに関する詳細情報は、deb(5) を参照のこと。
- control
- conffiles
- preinst
- postinst
- prerm
- postrm
環境変数
- HOME
- 設定されていた場合、dpkg は、変数の値をユーザ固有の設定ファイルの参照先のディレクトリとして使用する。
- TMPDIR
- 設定されていた場合、dpkg は、変数の値を一時ファイルおよびディレクトリを作成するディレクトリとして使用する。
- PAGER
- dpkg が設定ファイルの内容を表示するときに、実際に起動するプログラム。
- SHELL
- dpkg が新しいシェルを起動するときに、実際に起動するプログラム。
- COLUMNS
- dpkg が整形済テキストを表示する時に使用するコラム数。現在は -l オプションでのみ参照されている。
- DPKG_SHELL_REASON
- 状況を確認するために設定ファイルのプロンプトから起動されたシェルに対して、dpkg により設定される。現在のところ有効な値は conffile-prompt のみである。
- DPKG_CONFFILE_OLD
- 状況を確認するために設定ファイルのプロンプトから起動されたシェルに対して、dpkg により設定される。古い設定ファイルのパスが含まれる。
- DPKG_CONFFILE_NEW
- 状況を確認するために設定ファイルのプロンプトから起動されたシェルに対して、dpkg により設定される。新しい設定ファイルのパスが含まれる。
- DPKG_RUNNING_VERSION
- メンテナスクリプトの環境に対して、dpkg により現在実行中の dpkgのバージョンが設定される。
- DPKG_MAINTSCRIPT_PACKAGE
- メンテナスクリプトの環境に対して、dpkg により処理対象のパッケージ名が設定される。
- DPKG_MAINTSCRIPT_ARCH
- メンテナスクリプトの環境に対して、dpkg によりパッケージのビルド対象となったアーキテクチャの情報が設定される。
- DPKG_MAINTSCRIPT_NAME
- メンテナスクリプトの環境に対して、dpkg により実行中のスクリプト名 (preinst, postinst, prerm, postrm) が設定される。
例
vi(1) エディタに関連するインストール済パッケージの一覧を表示する。(dpkg-query は、デフォルトでは利用可能なファイルについて一切表示しないことに注意。これを行うには、代わりに dpkg-query --load-avail オプションを使用すること):dpkg -l '*vi*'
2 つのパッケージに関して、/var/lib/dpkg/available にある項目を表示する。
dpkg --print-avail elvis vim | less
パッケージの一覧を自分で検索する。
less /var/lib/dpkg/available
インストールされた elvis パッケージを削除する。
dpkg -r elvis
パッケージをインストールするには、まずパッケージをアーカイブや CDROM から探し出す必要がある。"available" ファイルによれば、vim
パッケージは "editors" セクションに属している。
cd /media/cdrom/pool/main/v/vim
dpkg -i vim_4.5-3.deb
パッケージ選択状況のコピーを作成する。
dpkg --get-selections >myselections
You might transfer this file to another computer, and after having updated
the available database there with your package manager frontend of choice
(see https://wiki.debian.org/Teams/Dpkg/FAQ for more details), for example:
avail=`mktemp`
apt-cache dumpavail >"$avail"
dpkg --merge-avail "$avail"
rm "$avail"
you can install it with:
dpkg --clear-selections
dpkg --set-selections <myselections
これは実際にはインストールも削除もせずに、単に要求しているパッケージの選択状態を設定するだけであることに注意。要求しているパッケージを実際にダウンロード、インストールするには別のアプリケーションが必要である。例えば、apt-get dselect-upgrade を実行する。
通常、パッケージの選択状態を変更するには dselect(1) を使用するほうが便利である。