dpkg
作者 | イアン・マードック |
---|---|
開発元 | Debianプロジェクト |
初版 | 1994年1月[1] |
最新版 |
1.22.18[2] ![]() |
リポジトリ | |
プログラミング 言語 | C言語、C++、Perl[3] |
対応OS | Unix系 |
対応言語 | 42言語[4] |
種別 | パッケージ管理システム |
ライセンス | GNU General Public License |
公式サイト |
wiki |
dpkgは、自由なオペレーティングシステムDebianとその多数の派生OSのパッケージ管理システムの基盤となるソフトウェアである。dpkg
は、.debパッケージのインストール、削除、および情報の提供に使用される。
dpkg
(Debian Package) 自体は低水準のツールである。高水準のツールであるAPTは、リモートホストからパッケージを取得したり、依存関係の解決などの複雑なパッケージ関係を処理できるため、dpkg
よりもよく使用される。aptitude(ncurses)やsynaptic(GTK)などのAPTのフロントエンドは、より使いやすいインターフェイスとして使用される。
Debianパッケージ「dpkg」は、dpkg
プログラムのほか、dpkg-deb
、dpkg-split
、dpkg-query
、dpkg-statoverride
、dpkg-divert
、dpkg-trigger
など、パッケージシステムの実行時に必要ないくつかのプログラムも提供している[5]。また、update-alternatives
やstart-stop-daemon
のようなプログラムも含まれている。Debianパッケージ「dpkg-dev」には、以下で述べる多数のビルドツールが含まれている。
歴史
[編集]Linux用パッケージ管理システムの最初の試みは、ノースダコタ州ファーゴのロジャー・マリス・キャンサー・センターのグレッグ・ウェットスタインによるStopAlopの開発であるとされている。これがdpkg作成のインスピレーションとなった[6][7][8]。dpkgは当初、1994年1月にイアン・マードックによってシェルスクリプトとして作成された[1]。マット・ウェルシュ、カール・ストリーター、イアン・マードックはそれをPerlで書き直し[9]、その後、主要部分は1994年にイアン・ジャクソンによってC言語で書き直された[10][11]。dpkgという名前は元々「Debian package」を省略したものであったが、dpkgソフトウェアはdebパッケージフォーマットや、DebianでのDebianパッケージの動作を定義するDebianポリシーマニュアルとも密接に関わってきているため、その語句の意味は変化している。
具体例
[編集].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には、パッケージをビルドする際に呼び出される以下のツールが含まれている[12]。
- 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)を読み、その履歴の情報から整形済みの出力を作り出す。
関連プログラム
[編集]dselect
[編集]dpkgソースパッケージにはフロントエンドソフトウェアであるdselectも含まれている[13]。
install-info
[編集]install-info
プログラムはかつてdpkgソフトウェアパッケージに含まれていたが、後にGNU Texinfoの一部として別途開発・配布されるようになったため削除された[14][15]。
wpkg
[編集]wpkgは、Microsoft Windowsオペレーティングシステムで実行されるdpkgの類似プログラムとして作成された[16]。.debファイル形式の互換性が保持されている[17]。その後、APTスイートに似た機能や、改善されたリポジトリ管理、配布管理が含まれるように進化し、LinuxおよびUnix系システムに移植された[18][19]。2024年3月現在、ソフトウェアの最新リリースは2015年である[18]。
関連項目
[編集]脚注
[編集]- ^ a b “dpkg Shell implementation”. Dpkg Developers. 2017年8月30日閲覧。
- ^ "Release 1.22.18"; 著者名 (文字列): Guillem Jover; 作品または名前の言語: 英語; 出版日: 2025年3月9日; 閲覧日: 2025年3月15日.
- ^ “dpkg on git.dpkg.org”. Dpkg Developers (2018年7月15日). 2018年7月15日閲覧。
- ^ “po/LINGUAS”. Dpkg Developers (2022年11月22日). 2025年3月11日閲覧。
- ^ “dpkg package file list”. Debian project. 2015年3月9日閲覧。
- ^ “Linux in the Trenches”. Linux Journal .
- ^ The dpkg shell implementation
- ^ “StopAlop 0.6 packaging/Installation facility available”. 2022年7月28日時点のオリジナルよりアーカイブ。2025年3月11日閲覧。
- ^ “dpkg perl implementation”. git (Dpkg Developers). 2015年3月9日閲覧。
- ^ “dpkg C implementation”. git (Dpkg Developers). 2015年3月9日閲覧。
- ^ Akkerman, Wichert. “dpkg history”. 2015年2月7日時点のオリジナルよりアーカイブ。2017年8月29日閲覧。
- ^ “dpkg-dev package file list”. Debian project. 2015年3月9日閲覧。
- ^ Siever, Ellen (2005). Linux in a Nutshell. O'Reilly. p. 620. ISBN 9780596529499
- ^ Jover, Guillem. “Removal of install-info from dpkg”. Debian project. 2015年3月9日閲覧。
- ^ “GNU Texinfo project”. GNU project. 2015年3月9日閲覧。
- ^ Fox, Richard (7 October 2014). “13.4.3: APT”. Linux with Operating System Concepts. Routledge. p. 544. ISBN 978-1482235890
- ^ “A Unix Packager For MS-Windows Systems”. Alexis Wilke. 2018年11月5日閲覧。
- ^ a b “A Build System with wpkg”. Alexis Wilke (2013年11月6日). 2013年8月28日閲覧。
- ^ “wpkg --repository ...”. Alexis Wilke (2012年12月5日). 2013年8月28日閲覧。