dpkg:Debianの低レベルパッケージマネージャー
dpkgは、Debianおよびその派生ディストリビューションで.debパッケージのインストール、削除、検査に使われる低レベルのパッケージ管理ツールです。パッケージ操作、データベース保守、スクリプトフックを提供します。
概要
dpkgは、Debian系オペレーティングシステムで用いられる中核的な低レベルのパッケージ管理プログラムです。GNU環境上のLinux向けに実装されており、Debianパッケージファイル(.deb)を直接扱います。アーカイブの展開、パッケージの設定、ローカルのパッケージデータベースの保守といった、ソフトウェアのインストールと削除を可能にする基本操作を実行します。
設計と構成要素
dpkgはCプログラミング言語で実装され、比較的単純なファイルとディレクトリの集合を操作します。主要な状態情報は/var/lib/dpkg(statusファイルを含む)に保存され、各.debファイルには制御メタデータとペイロードが含まれます。代表的な構成要素と補助プログラムには、.debファイルを作成・展開するdpkg-deb、パッケージデータベースを照会するdpkg-query、およびパッケージのライフサイクルフックで実行されるパッケージ用スクリプトがあります。後者のフックはpreinst、postinst、prerm、postrmです。
歴史と開発
dpkgは、Debianプロジェクト初期の1993年ごろ、Debianシステム上のパッケージ化されたソフトウェアを管理する仕組みとして生まれました。その後、より豊富なメタデータ、スクリプト可能なパッケージのライフサイクル、上位レベルのフロントエンドとの相互運用を支えるよう発展しました。dpkgはパッケージファイルを直接処理しますが、リポジトリや依存関係を管理するツールは後に別途開発されました。
一般的な用途と例
管理者やパッケージ保守者は、.debファイルを直接制御する必要がある低レベルの作業にdpkgを使用します。dpkg自体はネットワーク上の依存関係を解決しません。リポジトリからパッケージをインストールする際には、上位レベルのAPTフロントエンドから呼び出されることが一般的です。代表的なdpkgコマンドは次のとおりです。
- dpkg -i package.deb — .debファイルをインストールする
- dpkg -r package — インストール済みパッケージを削除する
- dpkg --purge package — パッケージと設定ファイルを削除する
- dpkg -l — インストール済みパッケージを一覧表示する。dpkg -S file — ファイルを所有するパッケージを調べる
相違点と主な特徴
aptやaptitudeとは異なり、dpkgはパッケージを取得したり依存関係を自動解決したりするパッケージマネージャーではありません。.debファイルとパッケージデータベースをローカルで操作します。UbuntuやLinux Mintなど多くのDebian派生ディストリビューションは、リポジトリ管理やアップグレードにはより使いやすいツールを提供しつつ、基盤となるパッケージエンジンとしてdpkgに依存しています。dpkgは低レベルの操作を実行するため、システムの復旧、パッケージの構築、パッケージのインストール問題のデバッグにとって重要なツールです。
関連項目
著者
AlegsaOnline.com dpkg:Debianの低レベルパッケージマネージャー Leandro Alegsa
URL: https://ja.alegsaonline.com/art/28802