Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

dpkg(ディピッケージ)とは | 意味や読み方など丁寧でわかりやすい用語解説

dpkg(ディピッケージ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

ディピケージ (ディピケージ)

英語表記

dpkg (ディピッケージ)

用語解説

dpkgは、Debian系Linuxディストリビューションにおけるパッケージ管理システムの根幹をなす、低レベルのツールである。DebianやUbuntu、Linux Mintといったシステムでは、ソフトウェアのインストールや削除、更新は「パッケージ」という単位で行われる。dpkgはこのパッケージの最も基本的な操作を直接行うためのプログラムであり、特に.debという拡張子を持つパッケージファイルを直接操作する。

概要として、dpkgはシステムにインストールされているパッケージの情報を管理し、パッケージファイルの展開、ファイルの配置、および設定スクリプトの実行といった一連の処理を担当する。これは、ユーザーがシステムにソフトウェアを導入する際の土台となる機能を提供する。しかし、dpkg単独では、パッケージが依存する他のパッケージ(「依存関係」と呼ばれる、あるソフトウェアが動作するために必要な別のソフトウェアのこと)を自動的に解決したり、インターネット上のリソフトウェア置き場(「リポジトリ」と呼ばれる)からパッケージを検索・ダウンロードしたりする機能は持たない。これらの高レベルな機能は、通常「APT(Advanced Package Tool)」のような別のパッケージ管理ツールが提供し、APTは内部でdpkgを呼び出して実際のインストールや削除の処理を実行する。そのため、dpkgはAPTの「裏方」として機能するが、システムエンジニアを目指す上では、その動作原理と直接的な操作方法を理解することが非常に重要である。

詳細として、dpkgの具体的な機能と操作について解説する。dpkgの主な機能は、パッケージのインストール、アンインストール(削除)、更新、そしてシステムにインストールされているパッケージや特定のパッケージファイルに関する情報の照会である。

パッケージをインストールするには、dpkg -i <パッケージファイル名.deb>というコマンドを使用する。例えば、sample-app_1.0.0_amd64.debというファイルを手動でダウンロードした場合、sudo dpkg -i sample-app_1.0.0_amd64.debと実行することで、そのソフトウェアをシステムに導入できる。ここで重要なのは、dpkgは依存関係を自動的に解決しないため、もしインストールしようとしているパッケージが他のパッケージに依存している場合、その依存パッケージも事前に手動でインストールしておくか、別途対処する必要がある点だ。依存関係が満たされていない状態でインストールしようとすると、エラーが発生するか、インストールは完了しても正常に動作しない可能性がある。

パッケージを削除する場合は、dpkg -r <パッケージ名>を用いる。これにより、指定したパッケージの実行ファイルやライブラリなどのデータファイルがシステムから削除されるが、通常はパッケージの設定ファイルはそのままシステムに残される。もし設定ファイルも含めて完全に削除したい場合は、dpkg -P <パッケージ名>というコマンドを使用する。「purge(パージ)」のPであり、設定ファイルも削除することで、システムからそのパッケージに関する痕跡をなくす。

システムにインストールされているパッケージの状態を一覧表示するには、dpkg -lコマンドが便利である。このコマンドを実行すると、パッケージ名、バージョン、およびそのパッケージの状態を示すコードが一覧で表示される。例えば、「ii」は「インストール済みで正常に設定済み」、「rc」は「削除済みだが設定ファイルが残っている」といった意味を持つ。特定のパッケージに関する詳細情報を知りたい場合は、dpkg -s <パッケージ名>と実行することで、そのパッケージのバージョン、メンテナ、依存関係、インストールされているファイルサイズ、説明文などの豊富な情報を確認できる。

また、.debパッケージファイルの中身を確認する機能も存在する。まだインストールしていない.debファイルにどのようなファイルが含まれているかを知りたい場合は、dpkg -c <パッケージファイル名.deb>と実行する。これにより、パッケージがインストールされた際にどのファイルがどこに配置されるかが一覧で表示される。さらに、ある特定のファイルがどのパッケージに属しているかを知りたい場合には、dpkg -S <ファイルパス>というコマンドを使用する。これは、システム内のファイルが誤って削除されたり、設定ファイルが変更されたりした場合に、それがどのパッケージの一部であったかを特定するのに役立つ。

APTとの関係性について補足すると、APTはapt installapt removeといったコマンドを通じて、インターネット上のリポジトリからパッケージのリストやメタデータを取得し、依存関係を自動的に解決した上で必要なパッケージをダウンロードする。そして、ダウンロードされた.debファイルを実際のシステムにインストールしたり削除したりする際に、最終的な処理をdpkgに委ねるのである。つまり、APTはパッケージの取得と依存関係の解決という「高レベル」な作業を行い、dpkgはパッケージファイルの実際の操作という「低レベル」な作業を行う。

dpkgを直接使用するシナリオとしては、インターネット接続がない環境で事前にダウンロードしておいた.debファイルをインストールする場合や、APTに問題が発生して正常に動作しない場合に、個別のパッケージを修復したり、依存関係を手動で解決したりする際に利用することが挙げられる。また、パッケージのインストールプロセス中に問題が発生し、パッケージが「半インストール状態 (half-installed)」や「破損状態 (broken)」になった場合、sudo dpkg --configure -aコマンドを実行して、未完了の設定処理を再度実行させることで問題を解決できる場合もある。

dpkgは、Debian系Linuxのパッケージ管理の基礎であり、その仕組みを理解することはシステム管理やトラブルシューティングにおいて非常に有用である。システムエンジニアとしてLinuxを扱う上で、パッケージ管理の全体像を把握するためには、dpkgの知識が不可欠と言える。

関連コンテンツ

関連IT用語