dpkg(1)

名前
dpkg - Debian パッケージマネージャ

書式
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 によって変更されることが想定されている。

  Package states

not-installed
    パッケージはシステムにインストールされていない。

config-files
    パッケージの設定ファイルだけがシステムに存在している。

half-installed
    パッケージのインストールは開始しているが、何らかの理由で完了していない。

unpacked
    パッケージは展開されたが、まだ設定されていない。

half-configured
    パッケージは展開されて設定も開始しているが、何らかの理由によって完了していない。

triggers-awaited
    パッケージは別のパッケージによるトリガ処理を待機している。

triggers-pending
    パッケージはトリガされている。

installed
    The package is correctly unpacked and configured.

  Package selection states

install
    パッケージはインストールするように選択されている。

hold
    hold 状態にあるパッケージは、--force-hold オプションで強制しない限り、dpkgによる処理の対象とならない。

deinstall
    パッケージは deinstallation (設定ファイルを除くすべてのファイルを削除) するように選択されている

purge
    パッケージは完全削除 (設定ファイルも含めたすべてのファイルを削除) するように選択されている。

  Package flags

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 package...|-a|--pending
    Remove an installed package. This removes everything except conffiles, which may avoid having to reconfigure the package if it is reinstalled later (conffiles are configuration files that are listed in the DEBIAN/conffiles control file). If -a or --pending is given instead of a package name, then all packages unpacked, but marked to be removed in file /var/lib/dpkg/status, are removed. パッケージの削除は以下のステップで構成されている:
    1. prerm スクリプトを実行する。
    2. インストールしたファイルを削除する。
    3. postrm スクリプトを実行する。

-P, --purge package...|-a|--pending
    Purge an installed or already removed package. This removes everything, including conffiles. If -a or --pending is given instead of a package name, then all packages unpacked or removed, but marked to be purged in file /var/lib/dpkg/status, are purged. Note: some configuration files might be unknown to dpkg because they are created and handled separately through the configuration scripts. In that case, dpkg won't remove them by itself, but the package's postrm script (which is called by dpkg), has to take care of their removal during purge. Of course, this only applies to files in system directories, not configuration files written to individual users' home directories. Purging of a package consists of the following steps:
    1. Remove the package, if not already removed. See --remove for detailed information about how this is done.
    2. Run postrm script.

-V, --verify [package-name...]
    Verifies the integrity of package-name or all packages if omitted, by comparing information from the files installed by a package with the files metadata information stored in the dpkg database. The origin of the files metadata information in the database is the binary packages themselves. That metadata gets collected at package unpack time during the installation process. Currently the only functional check performed is an md5sum verification against the stored value in the files database. It will only get checked if the database contains the file md5sum. To check for any missing metadata in the database, the --audit command can be used. The output format is selectable with the --verify-format option, which by default uses the rpm format, but that might change in the future, and as such, programs parsing this command output should be explicit about the format they expect.

--update-avail, --merge-avail [Packages-file]
    Update dpkg's and dselect's idea of which packages are available. With action --merge-avail, old information is combined with information from Packages-file. With action --update-avail, old information is replaced with the information in the Packages-file. The Packages-file distributed with Debian is simply named Packages. If the Packages-file argument is missing or named - then it will be read from standard input (since dpkg 1.17.7). dpkg keeps its record of available packages in /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 [package-name...]
    Performs database sanity and consistency checks for package-name or all packages if omitted. For example, searches for packages that have been installed only partially on your system or that have missing, wrong or obsolete control data or files. dpkg will suggest what to do with them to get them fixed.

--get-selections [package-name-pattern...]
    Get list of package selections, and write it to stdout. Without a pattern, non-installed packages (i.e. those which have been previously purged) will not be shown.

--set-selections
    標準入力から読み込んだファイルを用いて選択したパッケージのステータスを更新する。読み込むファイルは 'package state' というフォーマットになっている必要がある。state は install, hold, deinstall, purge のいずれかの値をとる。空行や '#' から始まるコメント行を使用してもよい。 The available file 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
    Set the requested state of every non-essential package to deinstall. This is intended to be used immediately before --set-selections, to deinstall any packages not in list given to --set-selections.

--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
        コマンドを代わりに使用すること。

オプション
All options can be specified both on the command line and in the dpkg configuration file /etc/dpkg/dpkg.cfg or fragment files (with names matching this shell pattern '[0-9a-zA-Z_-]*') on the configuration directory /etc/dpkg/dpkg.cfg.d/. Each line in the configuration file is either an option (exactly the same as the command line option but without leading hyphens) or a comment (if it starts with a #).

--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(*): より新しいバージョンがすでにインストールされていたとしても、指定したパッケージをインストールする。 Warning: At present dpkg does not do any dependency checking on downgrades and therefore will not warn you if the downgrade breaks the dependency of some other package. This can have serious side effects, downgrading essential system components can even make your whole system unusable. Use with care. 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
    Set an invoke hook command to be run via “sh -c” before or after the dpkg run for the unpack, configure, install, triggers-only, remove, purge, add-architecture and remove-architecture dpkg actions. This option can be specified multiple times. The order the options are specified is preserved, with the ones from the configuration files taking precedence. The environment variable DPKG_HOOK_ACTION is set for the hooks to the current dpkg action. Note: front-ends might call dpkg several times per invocation, which might run the hooks more times than expected.

--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 つのオプションは複数回指定することができ、交互に指定していくことも可能である。その場合は指定された順番どおりに処理が行われ、ファイル名に対して最後にマッチしたルールによって、処理が決定する。

--verify-format format-name
    Sets the output format for the --verify command. The only currently supported output format is rpm, which consists of a line for every path that failed any check. The lines start with 9 characters to report each specific check result, a '?' implies the check could not be done (lack of support, file permissions, etc), '.' implies the check passed, and an alphanumeric character implies a specific check failed; the md5sum verification is denoted with a '5' on the third character. The line is followed by a space and an attribute character (currently 'c' for conffiles), another space and the pathname.

--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 を無効にする。

環境変数

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
    Defined by dpkg on the maintainer script environment to the (non-arch-qualified) package name being handled.

DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT
    Defined by dpkg on the maintainer script environment to the package reference count, i.e. the number of package instances with a state greater than not-installed. Since dpkg 1.17.2.

DPKG_MAINTSCRIPT_ARCH
    メンテナスクリプトの環境に対して、dpkg によりパッケージのビルド対象となったアーキテクチャの情報が設定される。

DPKG_MAINTSCRIPT_NAME
    メンテナスクリプトの環境に対して、dpkg により実行中のスクリプト名 (preinst, postinst, prerm, postrm) が設定される。

ファイル

/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
    triggers

バグ
--no-act の提供する情報はたいていの場合、不充分である。

例
To list installed packages related to the editor vi(1) (note that dpkg-query does not load the available file anymore by default, and the dpkg-query --load-avail option should be used instead for that):
     dpkg -l '*vi*'
2 つのパッケージに関して、/var/lib/dpkg/available にある項目を表示する。
     dpkg --print-avail elvis vim | less
パッケージの一覧を自分で検索する。
     less /var/lib/dpkg/available
インストールされた elvis パッケージを削除する。
     dpkg -r elvis
To install a package, you first need to find it in an archive or CDROM. The available file shows that the vim package is in section "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 file there with your package manager frontend of choice (see https://wiki.debian.org/Teams/Dpkg/FAQ for more details), for example:
     apt-cache dumpavail | dpkg --merge-avail
or with dpkg 1.17.6 and earlier:
     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) を使用するほうが便利である。

追加機能
apt、aptitude、debsums パッケージをインストールすると、これ以外の機能が追加される。

関連項目
aptitude(1), apt(1), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5), dpkg-reconfigure(8).

著者
dpkg に貢献した人の一覧については、/usr/share/doc/dpkg/THANKS を参照のこと。

翻訳者
高橋 基信 <monyo@monyo.com>. 喜瀬 浩 <kise@fuyuneko.jp>. 関戸 幸一 <sekido@mbox.kyoto-inet.or.jp>. 鍋谷 栄展 <nabe@debian.or.jp>. 倉澤 望 <nabetaro@debian.or.jp>. 石川 睦 <ishikawa@linux.or.jp>. 鵜飼 文敏 <ukai@debian.or.jp>. 中野 武雄 <nakano@apm.seikei.ac.jp>.

翻訳校正
Debian JP Documentation ML <debian-doc@debian.or.jp>.