dpkg は Debian 系システムの低レベルパッケージツールで、rpm は RPM 系システムで同様の役割を担います。ネイティブアーカイブを展開し、パッケージのライフサイクル操作を実行し、インストール済みパッケージデータベースを更新します。APT や DNF などのリポジトリ対応ツールは、これらの低レベル機構の上に構築されています。
パッケージ · レッスン 5
rpm と dpkg
`dpkg` と `rpm` が、それぞれのネイティブパッケージデータベースとローカルアーカイブを調査・変更する仕組みを学びます。
インストール前にアーカイブを調べる
パッケージアーカイブは、一つの実行ファイルと同じではありません。多数のペイロードファイル、メタデータ、設定処理、特権で動くライフサイクルスクリプトを含む場合があります。インストール前に、出所、署名または認証済みのダウンロード経路、メタデータ、内容を調べてください。
Debian: $ dpkg-deb --info ./some-package.deb
Debian: $ dpkg-deb --contents ./some-package.deb
RPM: $ rpm -qip ./some-package.rpm
RPM: $ rpm -qlp ./some-package.rpm
示した RPM 問い合わせ形式の p は、インストール済みデータベースではなくパッケージファイルを問い合わせることを意味します。問い合わせ出力は確認に役立ちますが、スクリプトやプログラムが安全であることは証明できません。
Debian の .deb パッケージとインストール済みデータベースを管理する低レベルツールはどれですか?
ローカルアーカイブをインストールする
低レベルの直接インストールは次のように行います。
Debian: $ sudo dpkg -i ./some-package.deb
RPM: $ sudo rpm -U ./some-package.rpm
dpkg -i は指定アーカイブを展開して設定できますが、不足するリポジトリ依存関係を取得しません。生の rpm も、通常のリポジトリソルバーのワークフローを提供しません。設定済みソースから依存関係を解決できるため、ローカルアーカイブにも通常は高レベルのコマンドが望ましい選択です。
Debian: $ sudo apt install ./some-package.deb
RPM: $ sudo dnf install ./some-package.rpm
確認前にトランザクションを確認します。APT では先頭の ./ により、ローカルの Debian アーカイブパスとリポジトリのパッケージ名を区別します。
利用可能なリポジトリ依存関係を解決しながら、ローカルの .deb をインストールできるコマンドはどれですか?
インストール済みパッケージを削除する
削除では、以前使ったアーカイブファイル名ではなく、インストール済みパッケージ名を指定します。
Debian: $ sudo dpkg --remove package-name
RPM: $ sudo rpm --erase package-name
Debian の --remove は通常、conffile と分類された設定ファイルを残します。--purge は、パッケージスクリプトと管理外データの扱いに従いつつ、それらも削除するよう要求します。どちらのコマンドもユーザーが作成したデータの削除を保証しません。関連パッケージを評価して完全なトランザクションを提示できるため、一般には高レベルの apt remove または dnf remove の方が適しています。
dpkg --remove はインストール済みパッケージについて何を引数として受け取りますか?
インストール済み状態を問い合わせる
インストール済みまたは既知のパッケージレコードを一覧表示します。
Debian: $ dpkg-query -l
RPM: $ rpm -qa
対象を絞った調査では、特定のパッケージ名を指定し、スクリプトの信頼性が重要なら機械可読形式を優先します。パッケージデータベースが記述するのは管理された状態です。ローカル管理者やアプリケーションが後からファイルを変更することもあるため、インストール済みファイルを記録済みメタデータと比較する必要がある場合は検証機能を使ってください。
RPM データベースにインストール済みとして記録された全パッケージを問い合わせるコマンドはどれですか?
RPM でパッケージを管理するで、隔離されたシステム上のアーカイブ問い合わせと整合性検査を練習してください。
レッスン完了
rpm と dpkg を完了しました
低レベルのパッケージ操作とリポジトリトランザクションを区別できるようになりました。
インストール前にローカルアーカイブのメタデータと内容を調べる。
.debにはdpkg、.rpmにはrpmを低レベル操作に使う。依存関係の解決が必要なら APT または DNF を優先する。
インストール済みパッケージ名で削除し、管理状態を別途検証する。