dpkg
dpkg(ディーピーケージー[要出典])とはDebianのパッケージ管理システムの基礎となるソフトウェアである。dpkg
は .deb の拡張子を持ったパッケージをインストール、削除し、そしてパッケージの情報を得るために使われる。
作者 | Ian Murdock |
---|---|
開発元 | dpkgチーム |
最新版 |
1.19.7[1]
/ 2019年6月3日 |
最新評価版 |
1.19.7[2]
/ 2019年6月3日 |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | Unix-like, POSIX |
種別 | パッケージ管理システム |
ライセンス | GNU General Public License |
公式サイト |
wiki |
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 packageName
.debパッケージの各種情報(他パッケージとの依存関係・バージョン等)は以下のコマンドで見られる。
dpkg -I debFileName
.debパッケージからインストールされるファイルは以下のコマンドで確認できる。
dpkg -c debFileName
パッケージからインストールされたファイルは以下のコマンドで確認できる。
dpkg -L packageName
開発用ツール
編集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)を読み、その履歴の情報から整形済みの出力を作り出す。
脚注
編集- ^ “stable_changelog”. 2020年2月10日閲覧。
- ^ “unstable_changelog”. 2020年2月10日閲覧。