DPKG(8)

名前
dpkg - Debian 中間レベルパッケージマネージャ

書式
dpkg [options] action

警告
このマニュアルは、dpkg のコマンドライン・オプションや パッケージ状態について、dpkg --help で得られる情報よりも さらに詳細に理解したい利用者のために書かれたものである。

パッケージ管理者は、dpkg がどのようにパッケージをインストール するのかを理解するという目的では、このマニュアルを読まないほうがよい。 パッケージをインストールするときや削除するときの dpkg の動作に 関する記述は、特に不十分である。 dpkg のよりくわしい情報については、 Gnu Info システムにある debian-faq の Package Management System というトピックを参照すること。 Debian パッケージの作成については、同じところにある Debian Package Management Tools を参照すること。 (訳注: Gnu Info 形式の debian-faq は存在しないようである。 Debian FAQ や、Debian リファレンスの Debian パッケージングシステムに 関する章を参照)

説明
dpkg は、Debian パッケージの、インストール、構築、 削除、管理をするためのツールである。 dselect(8) は、dpkg の代表的なフロントエンドで、 よりユーザフレンドリなツールである。 dpkg は、コマンドライン引き数によって完全に制御することができる。 コマンドライン引き数は、1 つのアクションと、0 個以上のオプションとで構成される。 アクションは、dpkg に何をさせるのかを指定し、オプションはそのアクションの ふるまいを制御する。

また、dpkg は dpkg-deb のフロントエンドとしても使うことができる。 以下のアクションは dpkg-deb のアクションであり、dpkg に これらを引き数として与えると、dpkg-deb に同じ引き数を 与えて起動する。
    -b, --build,
    -c, --contents,
    -I, --info,
    -f, --field,
    -e, --control,
    -x, --extract,
    -X, --vextract,
    --fsys-tarfile
これらのアクションについては、dpkg-deb(1) にくわしい情報がある。

パッケージに関する情報
dpkg は、いくつかの利用可能なパッケージに関する有用な情報を 管理している。この情報は、パッケージ状態、パッケージ選択状態、 そしてフラグの3つに分類できる。これらの値は主に dselect に よって変更される。

  パッケージ状態

installed
    パッケージの展開と設定が完了している。

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

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

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

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

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

  パッケージ選択状態

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

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

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

  パッケージフラグ

hold
    パッケージは hold (変更禁止)されている。これは --force-hold で強制しない限り dpkg で扱わないということである。

reinst-required
    パッケージは reinst-required されている。これは、壊れている 状態でインストールされていて、再インストールが要求されていると いうことである。このパッケージは --force-reinstreq で強制しない 限り、削除することができない。

  アクション

dpkg -i | --install package_file...
    指定したパッケージをインストールする。もし --recursive または -R オプションを指定する場合、package_file に、参照するディレクトリを 指定しなければならない。

    インストールは、以下の手順で構成されている。

    1. インストールするパッケージの制御ファイルを取り出す。

    2. もし同じパッケージの別のバージョンがすでにインストール 済みの場合、新しいパッケージのインストールの前に、インストール済みの パッケージの prerm スクリプトを実行する。

    3. もしパッケージが preinst スクリプトを提供している場合、 それを実行する。

    4. 新しいファイルを展開する。同時に、失敗したときに元に戻せるように、 古いファイルを保存する。

    5. もし同じパッケージの別のバージョンがすでにインストール済みの場合、 先にインストールされていたパッケージの postrm を実行する。この スクリプトが、新しいパッケージの preinst の後に実行されることに 注意すること。これは、新しいファイルが書き込まれるのと同時に古いファイルが 削除されるためである。

    6. パッケージの設定をする。これがどのように実行されるか、 --configure の項にくわしい情報がある。

dpkg --unpack Package_file ... パッケージを展開する、しかし
    設定はしない。もし --recursive または -R オプションを 指定する場合、Package_file に、参照するディレクトリを指定 しなければならない。

dpkg --configure     package ... | -a | --pending
    展開済みのパッケージを再設定する。もし、-a または --pending を指定した場合、まだ設定されていない展開済みのすべてのパッケージを設定する。

    設定は、以下の手順で構成されている。

    1. 設定ファイルを展開する。同時に、失敗したときに元に戻せるように、 古い設定ファイルを保存する。

    2. もしパッケージが postinst スクリプトを提供している場合、それを実行する。

dpkg -r | --remove | -P | --purge package ... | -a | --pending
    インストール済みのパッケージを削除する。 -P または --purge は、設定ファイルを含むすべてを削除する。 --remove は、設定ファイルを除いたすべてを削除する(設定ファイルの一覧は、 conffiles コントロールファイルにある)。 引き数として、パッケージ名の代わりに -a または --pending が 指定された場合には、/var/lib/dpkg/status ファイルに remove または purge の印を持つすべての展開済みパッケージを、それぞれ remove または purge する。

    パッケージの削除は以下の手順で構成されている。
    1. prerm スクリプトを実行する。

    2. インストールしたファイルを削除する。

    3. postrm スクリプトを実行する。

dpkg --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 に記録する。

dpkg -A | --record-avail package_file ...
    dpkg や dselect が管理する利用可能なパッケージの情報を、 package_file パッケージからの情報で更新する。 もし --recursive または -R オプションを指定する場合、 Package_file に、参照するディレクトリを指定しなければならない。

dpkg --forget-old-unavail
    インストールされていなくて利用可能でないパッケージの情報を消去する。

dpkg --clear-avail
    利用可能なパッケージの情報を消去する。

dpkg -C | --audit
    インストールが完了していないパッケージを探す。dpkg はインストールを 完了させるためにどうすればよいかを提案する。

dpkg --get-selections [pattern...]
    パッケージ選択リストを標準出力に書き出す。

dpkg --set-selections
    パッケージ選択リストを標準入力から読み込んで設定する。

dpkg --yet-to-unpack
    インストールするために選択されたが、何らかの理由でまだインストール されていないパッケージを探す。

dpkg --print-architecture
    ターゲットアーキテクチャ(例えば、“i386”)を表示する。このオプションは gcc を使用する。

dpkg --print-gnu-build-architecture
    GNU バージョンのターゲットアーキテクチャ(例えば、“i486”)を表示する。

dpkg --print-installation-architecture
    インストールするホストのアーキテクチャを表示する。

dpkg --compare-versions ver1 op ver2
    2項演算子 op で2つのバージョンを比較する。 dpkg の返り値は、指定した条件を満たすなら成功(0)、そうでなければ 失敗(0以外)となる。 演算子は2つグループにわかれる。これは ver1 か ver2 が 欠けているときのふるまいの違いによる。 lt le eq ne ge gt は、欠けているバージョンがどれよりも古いとみなす。 lt-nl le-nl ge-nl gt-nl は、欠けているバージョンがどれよりも新しい とみなす。 < << <= = >= >> > は、制御ファイルの文法との互換性のためだけに 提供されている。

dpkg --command-fd <n>
    ファイル記述子 <n>から一連のコマンドをうけいれる。注意: 追加のオプションはコマンドラインとこのファイル記述子を通じて指定でき 一回の実行を通じてそれらがリセットされることはない。

dpkg --help
    簡単なオプション一覧を表示する。

dpkg --force-help
    --force-thing オプション一覧を表示する。

dpkg -Dh | --debug=help
    デバッグ用オプション一覧を表示する。

dpkg --licence | dpkg --license
    dpkg のライセンスを表示する。

dpkg --version
    dpkg のバージョン情報を表示する。

dpkg-deb-actions
    以下のアクションのくわしい情報は dpkg-deb(1) を参照すること。

    dpkg -b | --build directory [filename]
        deb パッケージを構築する。
    dpkg -c | --contents filename
        deb パッケージに含まれるファイル一覧を表示する。
    dpkg -e | --control filename [directory]
        パッケージから制御情報を取り出す。
    dpkg -x | --extract filename directory
        パッケージに含まれるファイルをすべて取り出す。
    dpkg -f | --field  filename [control-field] ...
        パッケージの制御フィールドを表示する。
    dpkg --fsys-tarfile filename
        Debian パッケージに含まれる tar ファイルを表示する。
    dpkg -I | --info filename [control-file]
        パッケージに関する情報を表示する。
    dpkg -X | --vextract filename directory
        パッケージに含まれるファイルを展開し、ファイル名を表示する。

dpkg-query-actions
    以下のアクションの詳細は、dpkg-query(1) を参照すること。

    dpkg -l | --list package-name-pattern ...
        与えられたパターンにマッチする名前のパッケージを表示する。
    dpkg -s | --status package-name ...
        指定したパッケージの状態を報告する。
    dpkg -L | --listfiles package ...
        package パッケージによってシステムにインストールされたファイルを表示する。
    dpkg -S | --search filename-search-pattern ...
        ファイルがどのパッケージからインストールされたか検索する。
    dpkg -p | --print-avail package
        /var/lib/dpkg/available にある package の詳細情報を表示する。

  オプション
すべてのオプションは、コマンドラインや dpkg の設定ファイルで ある /etc/dpkg/dpkg.cfg の中で指定できる。設定ファイルは、 1 行に 1 つのオプション(コマンドラインオプションとまったく同じ、 ただし頭のダッシュを取る)か、コメント(最初に # で始まる) で構成される。

--abort-after=number
    dpkg の処理を中断させるエラー数を変更する。デフォルトは 50 である。

-B|--auto-deconfigure
    パッケージを削除するとき、削除するパッケージに依存した別のパッケージが インストールされて場合がある。このオプションを指定すると、削除する パッケージに依存しているパッケージの設定を取り消す。

-Doctal | --debug=octal
    デバッグモードにする。 octal は、以下の一覧から望む値をビットごとの論理和で組み合わせた ものである(これらの値は、将来のリリースでは変更される可能性があるので 注意すること)。-Dh または --debug=help はこれらの値を表示する。

     数値 説明
        1 一般的に役に立つ進行状況
        2 管理スクリプトの呼び出し状況と状態
       10 各ファイル処理の情報
      100 各ファイル処理の大量の情報
       20 各設定ファイルの情報
      200 各設定ファイルの大量の情報
       40 依存関係、競合関係
      400 依存関係、競合関係の大量の情報
     1000 dpkg/info ディレクトリなどに関する大量の情報
     2000 正気でないほどの大量の情報

--force-things | --no-force-things | --refuse-things
    指定した things を強制実行する(force)、または拒否する(refuse) (no-force と refuse は同じ意味)。things に、 以下の項目をコンマで区切って指定する。--force-help オプションで これらの説明を表示する。(*)の印のものは、デフォルトで強制実行される。

    警告: これらのオプションは、おもに熟練したユーザだけが使うことを意図したものである。 影響を完全に理解しないままにこれらを使うと、システム全体を壊してしまうかも しれない。

    all: 全ての強制オプションを指定する(noならば指定しない)。

    auto-select(*): インストールするパッケージを選択し、削除するパッケージを非選択にする。

    downgrade(*): インストールするパッケージよりも新しいバージョンのパッケージがすでに インストールされていても、インストールをする。

    警告: 現在の dpkg は、ダウングレード時にいかなる依存関係のチェックもしない。 そのため、ダウングレードすることで、ほかのパッケージの依存関係を 警告なしに壊すかもしれない。 これは深刻な副作用となる可能性があり、主要なシステム構成をダウングレード することでシステムを壊してしまうこともありうる。注意して使用すること。

    configure-any: 指定したパッケージに依存していて、すでに展開されているが、まだ設定されて いないパッケージも一緒に設定をする。

    hold: たとえ “hold” と印されていても、そのパッケージの処理をする。

    remove-reinstreq: 壊れていて、再インストールが必要だと印をされていたとしても、パッケージを 削除する。これにより、例えば、パッケージの一部が dpkg に管理されない で残るなどの問題がおこるかもしれない。

    remove-essential: essential とされるパッケージであっても削除する。essential パッケージには、 たいてい最も基本的な UNIX コマンドが含まれる。これらのパッケージを削除 すると、システム全体が動作しなくなることもあるので、注意して削除すること。

    depends: すべての依存問題を警告に変える。

    depends-version: 依存関係の確認をするとき、バージョンを無視する。

    conflicts: 他のパッケージと競合してもインストールする。たいていはいくつかファイルを 上書きすることになるため、危険である。

    confmiss: 常に、欠けている設定ファイルをインストールする。このオプションは、 変更(ファイルを削除したこと)を保存しないため、危険である。

    confnew: 設定ファイルが変更されていた場合、問い合わせなしに新しいバージョンの 設定ファイルをインストールする。ただし、--force-confdef を 同時に指定した場合は、デフォルトの動作が優先される。

    confold: 設定ファイルが変更されていた場合、問い合わせなしに古いバージョンの 設定ファイルを保持する。ただし、--force-confdef を同時に 指定した場合は、デフォルトの動作が優先される。

    confdef: 設定ファイルが変更されていた場合、常にデフォルトの動作をする。 デフォルトの動作がなく、--force-confnew と --force-confold のどちらも同時に指定していない場合、ユーザに尋ねるために中断する。 指定している場合は、指定されたオプションによって最終的な動作が決まる。

    overwrite: あるパッケージで提供されているファイルを、インストールするパッケージの ファイルで上書きする。

    overwrite-dir: あるパッケージで提供されているディレクトリをインストールするパッケージの ファイルで上書きする。

    overwrite-diverted: 退避(divert した)版のファイルを非退避(divert していない)版のファイル で上書きする。

    architecture: パッケージが間違ったアーキテクチャ用であっても処理をする。

    bad-path: 重要なプログラムが PATH に含まれていなくても実行する。問題が起きる 可能性は高い。

    not-root: root でないときでも、それをインストール(または削除)しようと試みる。

--ignore-depends=package,...
    指定したパッケージに関する依存関係の確認を無視する(実際は、依存関係を 確認し、競合に対して警告メッセージを出して、アクションを実行する)。

--new | --old
    パッケージのフォーマットが新しいか古いかを指定する。 これは dpkg-deb(1) のオプションである。

--nocheck
    パッケージを構築するときに、制御ファイルの内容を読むことも確認もしない。 これは dpkg-deb(1) のオプションである。

--no-act | --dry-run | --simulate
    期待される動作をすべて実行するが、どのような変更も書き込まない。 これは、実際にはシステムに何の変更も加えずに、指定したアクションで 何がおこるのかを確認するためのものである。

    オプション --no-act は、必ずアクションより前に与えること。 さもなくば、望ましくない結果が起きる可能性がある。 (例えば、システムに何も変更を加えるつもりがないのに、 dpkg --purge foo --no-act を実行すると、最初にパッケージ foo が 本当に purge され、次にパッケージ --no-act が purge されることになる)

-R | --recursive
    指定したディレクトリを再帰的に検索し、みつけた *.deb という パターンにマッチするファイルをすべて扱う。これは、-i, -A, --install, --unpack そして --avail アクションとともに使うことができる。

-G  インストール済みのパッケージのほうがバージョンが新しければ、インストール しない。これは --refuse-downgrade の別名である。

--root=dir | --admindir=dir | --instdir=dir
    デフォルトのディレクトリを変更する。admindir はインストール済みの パッケージやインストールされていないパッケージの状態に関する情報などを 提供する、多数のファイルが格納されているディレクトリで、デフォルトは /var/lib/dpkg である。instdir はパッケージがインストール するときに参照されるディレクトリで、デフォルトは / である。 また、instdir は、パッケージのインストールスクリプトが実行 される前に chroot(2) するディレクトリのパスである。つまり、 スクリプトは instdir をルートディレクトリとみなす。 root を変更すると、instdir を dir に、admindir を dir/var/lib/dpkg に変更する。

-O | --selected-only
    インストール(または削除)作業をするように選択したパッケージのみを処理する。 実際の指定は、dselect や dpkg を使って行なう。 例えば、あるパッケージが削除されるのは、そのパッケージが削除されるよう 選択されているということである。

-E | --skip-same-version
    すでに同じバージョンのパッケージがインストールされていたら、インストール しない。

--status-fd <n>
    ファイル記述子 <n>にパッケージ状態の情報を送る。これは複数与えることが できる。状態の情報は `status: <pkg>: <pkg qstate>'の形式である。

ファイル

/etc/dpkg.cfg
    オプションのデフォルト値を記述する設定ファイル。

このほかの、以下に示すファイル一覧はデフォルトの値である。どのようにして ファイルの位置を変更するかについては、--admindir オプションの項を 参照すること。

/var/lib/dpkg/available
    使用できるパッケージの一覧。

/var/lib/dpkg/status
    使用できるパッケージの状態。このファイルは、パッケージに削除の印があるか どうか、インストール済みかどうか、などの情報が含まれている。くわしくは、 パッケージに関する情報 の項を参照すること。

以下のファイルはバイナリパッケージを構成するファイルである。これらの ファイルに関するくわしい情報は、deb(5) を参照すること。

control

conffiles

preinst

postinst

prerm

postrm

環境変数

DPKG_NO_TSTP
    任意の値で定義すると、シェルエスケープをしたときに dpkg自体 を一時停止 (suspend)するのではなく、新しいシェルを起動する。

SHELL
    dpkg が新しいシェルを起動するときに、実際に起動するプログラム。

COLUMNS
    dpkgが整形テキストを表示する時に参照するコラム数。 現在は -l オプションでのみ参照されている。

DPKG_OLD_CONFFILE
    変更される設定ファイルを確認するためにシェルを起動したとき、 dpkg によって、古い設定ファイルのファイル名が設定される。

DPKG_NEW_CONFFILE
    変更される設定ファイルを確認するためにシェルを起動したとき、 dpkg によって、新しい設定ファイルのファイル名が設定される。

例
vi エディタに関連のあるパッケージの一覧を表示する。
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 /cdrom/hamm/hamm/binary-i386/editors dpkg -i vim_4.5-3.deb

パッケージ選択状況のコピーを作成する。
dpkg --get-selections >myselections

このファイルをほかのコンピュータに転送して、インストールする。
dpkg --set-selections <myselections
これは実際にはインストールも削除もしないことに注意。これは単に 要求しているパッケージの選択状態を設定するだけである。実際に 要求しているパッケージをダウンロードしインストールするには別の アプリケーションが必要である。 例えば、dselect を起動して、“導入(Install)”を選べばよい。

通常、パッケージの選択状態を変更するには dselect(8) を 使用するほうが便利である。

関連項目
dselect(8), dpkg-deb(1), deb(5), deb-control(5)

バグ

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

著者
dpkgに貢献した人のリストは /usr/share/doc/dpkg/THANKS.gzに
挙げてある。

翻訳者
喜瀬浩 <kise@fuyuneko.jp>

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

翻訳者注
このマニュアルページは dpkg パッケージのバージョン 1.10.20 に付属の dpkg(8)の日本語訳である。