Dpkg

dpkg（）とはDebianのパッケージ管理システムの基礎となるソフトウェアである。dpkgは .deb の拡張子を持ったパッケージをインストール、削除し、そしてパッケージの情報を得るために使われる。

dpkg自身は低水準のツールである。パッケージをリモートホストから取得したり、複雑なパッケージ間の依存関係を扱うためには、APTのようなより高水準のツールが使われる。さらに、dpkgよりも洗練されたパッケージ間の依存関係の処理方法や親切なインターフェイスを持っているaptitudeやsynapticのようなソフトウェアの方がよく使われる。

Debianパッケージ "dpkg" はdpkgプログラムを提供している。さらに、それ以外にもdpkg-statoverrideやdpkg-divert、update-alternativesなど、パッケージシステムを機能させるために実行時に必要ないくつかのプログラムを提供している。また、start-stop-daemon や install-infoのようなプログラムも含まれている。一方、Debianパッケージ "dpkg-dev"には、以下に述べるパッケージ構築用の多くのツールが含まれている。

歴史 

dpkgはもともとマット・ウェルシュとカール・ストリーター、イアン・マードックによって作られたものである。最初はPerlのプログラムであったが、後に1993年に大部分がイアン・ジャクソンによってC言語で書き直された。dpkgという名前はもともと"Debian パッケージ(package)"を省略したものであったが、dpkgというソフトウェアは、Debianパッケージがどのように振る舞うか定義するDebianポリシーのみならず、debパッケージのフォーマットと密接に関わってきているので、その意味は明確に変わってきている。

具体例 

.debパッケージをインストールするには以下のように入力する。
 dpkg -i debFileName
ここで、debFileNameはパッケージの情報を含むファイルの名前であり、一般的に .debという拡張子を持っている。このコマンドはroot権限で実行する必要がある。

インストールされているパッケージのリストは以下のコマンドで得られる。
 dpkg -l [optional pattern]

インストールされているパッケージを削除するためには以下のコマンドを実行する。
 dpkg -r package name

開発用ツール 

dpkg-devには、パッケージを構築する際に呼び出される以下のツール群が含まれている。

dpkg-source - Debianパッケージのソースファイルを圧縮し展開する。
dpkg-deb - バイナリパッケージを圧縮し展開する。
dpkg-gencontrol - 展開された Debianソースのツリーから情報を読み込み、バイナリパッケージのcontrolファイルを生成し、debian/filesの中にバイナリパッケージの名前を挿入する。
dpkg-shlibdeps - ライブラリに関する実行時の依存関係を計算する。
dpkg-genchanges - 展開されたすでに構築済みのDebianソースツリーから情報を読み込み、コントロールファイル(.changes)を作り出す。
dpkg-buildpackage - パッケージを自動的に構築するために使うことができる制御用スクリプト。
dpkg-distaddfile - debian/files にファイル名を追加する。
dpkg-parsechangelog - 展開されたDebianソースツリーの更新履歴ファイル(changelog)を読み、その履歴の情報から整形済みの出力を作り出す。

脚注

関連項目 

 apt
 alien

比較 

 dpkgはRPMと類似している。
 ipkgは容量が制限されたLinux向けのパッケージ管理システムである。dpkgの影響を受けている。

外部リンク 
 Debianのdpkgパッケージ
 debian-dpkgメーリングリスト
 dpkg(8) マニュアルページ
 General Origin handling.

フリーパッケージ管理システム
Debian