Linuxにはさまざまなパッケージ管理ツールがありますが、Debian系のディストリビューション(Ubuntu、Debianなど)で使用されるのがdpkg
コマンドです。dpkg
はパッケージのインストール、削除、情報の取得など、基本的な管理操作を行うための低レベルなコマンドです。
本記事では、dpkg
コマンドの基本的な使い方から、実際の運用で役立つ便利なオプションまで詳しく解説します。
dpkgとは?
dpkgの概要
dpkg
はDebian系のパッケージ管理システムで、.deb
形式のパッケージを管理するためのコマンドラインツールです。
APT(Advanced Package Tool)のような高レベルのパッケージ管理ツールは内部的にdpkg
を利用しています。
そのため、dpkg
を直接操作することで、細かいパッケージ管理が可能になります。
dpkgとAPTの違い
項目 | dpkg | APT |
---|---|---|
パッケージのインストール | 〇 | 〇 |
依存関係の解決 | × | 〇 |
ネットワークからの取得 | × | 〇 |
低レベルな管理 | 〇 | × |
APTは依存関係を自動で解決しますが、dpkg
はパッケージの管理のみを行い、依存関係の解決は手動で行う必要があります。
dpkgコマンドの基本操作
パッケージのインストール
.deb
パッケージをインストールするには、以下のコマンドを使用します。
sudo dpkg -i package.deb
例: Google Chrome
のパッケージをインストールする場合
sudo dpkg -i google-chrome-stable_current_amd64.deb
パッケージの依存関係が不足している場合はエラーが出るため、apt-get -f install
で解決できます。
sudo apt-get -f install
パッケージの削除
パッケージを削除するには、以下のコマンドを使用します。
sudo dpkg -r package-name
例: vim
パッケージを削除する場合
sudo dpkg -r vim
ただし、設定ファイルは削除されません。設定ファイルも含めて完全に削除する場合は、--purge
オプションを追加します。
sudo dpkg --purge package-name
インストール済みパッケージの一覧を表示
システムにインストールされているパッケージを確認するには、以下のコマンドを使用します。
dpkg -l
特定のパッケージを検索する場合は、grep
を組み合わせます。
dpkg -l | grep package-name
例: vim
がインストールされているか確認する
dpkg -l | grep vim
パッケージ情報の表示
特定のパッケージに関する情報を取得するには、以下のコマンドを使用します。
dpkg -s package-name
例: curl
の情報を表示
dpkg -s curl
パッケージのファイル一覧を表示
インストールされたパッケージがどのファイルを提供しているかを確認するには、以下のコマンドを使用します。
dpkg -L package-name
例: nano
のファイル一覧を表示
dpkg -L nano
特定のファイルがどのパッケージに属しているか調べる
特定のファイルがどのパッケージに含まれているかを確認するには、以下のコマンドを使います。
dpkg -S file-path
例: /bin/ls
がどのパッケージに含まれているか確認
dpkg -S /bin/ls
dpkgのトラブルシューティング
パッケージの破損修復
パッケージのインストール中にエラーが発生し、破損状態になることがあります。その場合、以下のコマンドで修復を試みます。
sudo dpkg --configure -a
依存関係の修復
dpkg
では依存関係を自動で解決しないため、インストールエラーが発生することがあります。
その場合、APTを使って依存関係を修復できます。
sudo apt-get -f install
dpkgの活用例
.debパッケージの作成
dpkg
は既存のプログラムを.deb
パッケージとして配布するためのツールとしても使用できます。dpkg-deb
を使うことで、パッケージの作成や展開が可能です。
dpkg-deb --build mypackage
パッケージを展開する場合は以下のコマンドを使用します。
dpkg-deb --extract package.deb output-directory
まとめ
dpkg
コマンドはDebian系Linuxでのパッケージ管理に欠かせないツールです。
APTのような高レベルなツールと併用することで、より柔軟にパッケージ管理が可能になります。
本記事で紹介した基本コマンドをマスターし、Linux環境を効率よく管理していきましょう。