dpkgコマンド徹底解説!Linuxでのパッケージ管理を操る方法

Linuxにはさまざまなパッケージ管理ツールがありますが、Debian系のディストリビューション(Ubuntu、Debianなど)で使用されるのがdpkgコマンドです。
dpkgはパッケージのインストール、削除、情報の取得など、基本的な管理操作を行うための低レベルなコマンドです。
本記事では、dpkgコマンドの基本的な使い方から、実際の運用で役立つ便利なオプションまで詳しく解説します。


dpkgとは?

dpkgの概要

dpkgはDebian系のパッケージ管理システムで、.deb形式のパッケージを管理するためのコマンドラインツールです。
APT(Advanced Package Tool)のような高レベルのパッケージ管理ツールは内部的にdpkgを利用しています。
そのため、dpkgを直接操作することで、細かいパッケージ管理が可能になります。

dpkgとAPTの違い

項目dpkgAPT
パッケージのインストール
依存関係の解決×
ネットワークからの取得×
低レベルな管理×

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環境を効率よく管理していきましょう。

タイトルとURLをコピーしました