変更要約: 初版(主題1.04・副主題1.04.1〜1.04.4に対応)
4.2Debianパッケージ管理
リポジトリを介さないdeb パッケージの直接操作を学びます。dpkg によるインストール・アップグレード・アンインストール、インストール済みパッケージの一覧(-l)・所属ファイル(-L)・逆引き(-S)、dpkg-reconfigure による再設定を押さえます。
apt の下では dpkg が働いています。ベンダーから直接 .deb ファイルを渡されたときや、インストール済みパッケージを調べるときは dpkg を直接使います。dpkg は依存関係を自動解決しない——この一点が apt との決定的な違いです。
4.2.1dpkg の基本操作
- インストール/アップグレード=
dpkg -i package.deb(同名パッケージがあれば上書き更新)/アンインストール=dpkg -r(設定は残す)・dpkg -P(purge=設定ごと)。 - 照会=
dpkg -l(インストール済み一覧)・dpkg -L パッケージ(そのパッケージが持つファイル一覧)・dpkg -S ファイル(ファイル→所属パッケージの逆引き・インストール済みが対象)。 - dpkg-reconfigure=インストール時の対話設定をやり直す(
dpkg-reconfigure tzdataでタイムゾーン再設定が代表例)。
「dpkg -i は依存関係を解決しない(依存でエラーになったら apt で入れ直すのが定石)」「-L=パッケージ→ファイル・-S=ファイル→パッケージ」「設定のやり直し=dpkg-reconfigure」 が定番です。-L と -S の向きの取り違えが最頻出のひっかけです。
apt と dpkg の関係は「フロント(受付・調達)とバックヤード(実作業)」です。apt install nginx の裏では、リポジトリから nginx と依存パッケージの deb ファイル群が取得され、最終的に dpkg が展開・登録しています。だから dpkg -i single.deb はその1個しか扱わず、依存が欠けていれば「依存関係の問題」で止まります(現代の環境では apt install ./single.deb とすれば依存ごと解決できます)。照会系は監査・トラブルシュートの武器で、「このサーバーに何が入っている?」= dpkg -l、「nginx はどこに何を置いた?」= dpkg -L nginx、「この見知らぬファイルはどのパッケージの持ち物?」= dpkg -S /etc/nginx/nginx.conf と、質問の向きでオプションを選びます。

