dpkg (ディーピーケージー) について
dpkgは、Debianパッケージ管理システムの根幹をなすソフトウェアです。`.deb`という拡張子を持つパッケージファイルのインストール、削除、およびパッケージに関する情報の取得を行うための基本的なツールとして機能します。
dpkgの役割
dpkg自体は低水準のツールであり、パッケージをリモートサーバーからダウンロードしたり、複雑な依存関係を自動的に解決する機能は持ち合わせていません。これらの高度な機能は、APT(Advanced Package Tool)などのより高水準なツールによって提供されます。また、aptitudeやsynapticといった、よりユーザーフレンドリーなインターフェースを持つツールも、dpkgを基盤として利用されています。
Debianパッケージの`dpkg`には、`dpkg`コマンド本体に加えて、`dpkg-statoverride`、`dpkg-divert`、`update-alternatives`など、パッケージシステムが正常に機能するために必要な複数のユーティリティプログラムが含まれています。さらに、`start-stop-daemon`や`install-info`といったプログラムも提供されます。
一方、`dpkg-dev`パッケージには、後述するパッケージ構築のための開発ツール群が含まれています。
歴史
dpkgは、当初マット・ウェルシュ、カール・ストリーター、イアン・マードックによって開発されました。最初のバージョンは
Perlで書かれていましたが、1993年にイアン・ジャクソンによって大部分が
C言語で書き直されました。
「dpkg」という名前は、もともと「Debian package」の略でしたが、ソフトウェアとしてのdpkgは、Debianパッケージの動作を定義するDebianポリシーだけでなく、`.deb`パッケージのフォーマットとも密接に関連しているため、その意味合いはより広いものになっています。
基本的な使い方
以下に、dpkgの基本的な使い方をいくつか示します。
パッケージのインストール
`.deb`パッケージをインストールするには、以下のコマンドを実行します。
bash
sudo dpkg -i debFileName.deb
`debFileName.deb`は、インストールする`.deb`パッケージファイルの名前です。このコマンドは、通常、root権限で実行する必要があります。
インストール済みパッケージの一覧表示
インストールされているパッケージの一覧を表示するには、次のコマンドを使用します。
bash
dpkg -l [オプションパターン]
オプションパターンを指定することで、特定のパターンに一致するパッケージのみを表示できます。
パッケージの削除
インストールされているパッケージを削除するには、以下のコマンドを実行します。
bash
sudo dpkg -r packageName
`packageName`は削除したいパッケージの名前です。
パッケージ情報の表示
`.deb`パッケージの詳細な情報(依存関係、バージョンなど)を表示するには、次のコマンドを使用します。
bash
dpkg -I debFileName.deb
パッケージに含まれるファイル一覧の表示
`.deb`パッケージに含まれるファイルの一覧を表示するには、次のコマンドを使用します。
bash
dpkg -c debFileName.deb
インストール済みパッケージのファイル一覧表示
インストール済みのパッケージに含まれるファイルの一覧を表示するには、次のコマンドを使用します。
bash
dpkg -L packageName
開発用ツール
`dpkg-dev`パッケージには、パッケージを構築する際に使用される以下のツールが含まれています。
dpkg-source: Debianパッケージのソースファイルを圧縮および展開します。
dpkg-deb: バイナリパッケージを圧縮および展開します。
dpkg-gencontrol: 展開されたDebianソースツリーから情報を読み取り、バイナリパッケージのコントロールファイルを生成し、`debian/files`にバイナリパッケージの名前を挿入します。
dpkg-shlibdeps: ライブラリの実行時依存関係を計算します。
dpkg-genchanges: 展開された構築済みのDebianソースツリーから情報を読み取り、コントロールファイル(`.changes`)を作成します。
dpkg-buildpackage: パッケージを自動的に構築するために使用できる制御スクリプトです。
dpkg-distaddfile: ファイル名を`debian/files`に追加します。
dpkg-parsechangelog: 展開されたDebianソースツリーの変更履歴ファイル(changelog)を読み込み、その履歴の情報から整形済みの出力を作成します。
関連情報
apt: より高水準のパッケージ管理ツール
alien: 他のパッケージ形式(例:RPM)を`.deb`形式に変換するツール
比較
dpkgは、RPM(Red Hat Package Manager)と類似の機能を持つパッケージ管理システムです。また、ipkgは、リソースが限られた
Linux環境向けのパッケージ管理システムで、dpkgの影響を受けています。
外部リンク
Debianのdpkgパッケージ
debian-dpkgメーリングリスト
dpkg(8) マニュアルページ
General Origin handling