言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Linux & Mac & Bashコマンド辞典

  1. トップページ
  2. Linux & Mac & Bashコマンド辞典
  3. rpm / dpkg(低レベルパッケージ管理)

rpm / dpkg(低レベルパッケージ管理)

『rpm』はRHEL・AlmaLinux・CentOS系、『dpkg』はDebian・Ubuntu系のLinuxディストリビューションで使われる低レベルパッケージ管理ツールです。aptdnf などの高レベルツールの裏側で動作しており、.rpm / .deb ファイルを直接インストール・削除・問い合わせ・検証できます。依存関係を自動解決しないため、依存パッケージが不足している場合はエラーになります。ダウンロード済みのパッケージファイルを手動で管理する場面や、インストール済みパッケージの詳細を調べる場面で使用します。

構文

# ===============================================
#  rpm(RHEL / AlmaLinux / CentOS 系)
# ===============================================

# -----------------------------------------------
#  パッケージのインストール・アップグレード
# -----------------------------------------------

# rpm -ivh {パッケージ.rpm}
#   → .rpm ファイルをインストールします
#   → -i: install  -v: 詳細表示  -h: プログレスバー表示
#   例: sudo rpm -ivh gojo-satoru-1.0-1.x86_64.rpm

# rpm -Uvh {パッケージ.rpm}
#   → パッケージをアップグレードします(未インストールの場合は新規インストール)
#   → -U: upgrade
#   例: sudo rpm -Uvh gojo-satoru-2.0-1.x86_64.rpm

# rpm -Fvh {パッケージ.rpm}
#   → インストール済みのパッケージのみアップグレードします
#   → 未インストールの場合は何もしません(-F: freshen)

# -----------------------------------------------
#  パッケージの削除
# -----------------------------------------------

# rpm -e {パッケージ名}
#   → パッケージを削除します(ファイル名ではなくパッケージ名を指定します)
#   例: sudo rpm -e gojo-satoru

# rpm -e --nodeps {パッケージ名}
#   → 依存関係チェックをスキップして強制削除します
#   → 他のパッケージが壊れる可能性があるため慎重に使用してください

# -----------------------------------------------
#  インストール済みパッケージへの問い合わせ
# -----------------------------------------------

# rpm -q {パッケージ名}
#   → パッケージがインストールされているか確認します
#   例: rpm -q nginx

# rpm -qa
#   → インストール済みの全パッケージを一覧表示します

# rpm -qi {パッケージ名}
#   → パッケージの詳細情報(バージョン・概要・インストール日など)を表示します

# rpm -ql {パッケージ名}
#   → パッケージに含まれるファイルの一覧を表示します

# rpm -qf {ファイルパス}
#   → 指定したファイルがどのパッケージに属するかを確認します
#   例: rpm -qf /usr/bin/nginx

# -----------------------------------------------
#  .rpm ファイルへの問い合わせ(未インストール)
# -----------------------------------------------

# rpm -qip {パッケージ.rpm}
#   → .rpm ファイルの詳細情報を表示します(-p: package file)

# rpm -qlp {パッケージ.rpm}
#   → .rpm ファイルに含まれるファイルの一覧を表示します

# -----------------------------------------------
#  パッケージの検証
# -----------------------------------------------

# rpm -V {パッケージ名}
#   → インストール済みファイルが改ざんされていないか検証します
#   → 変更があったファイルにはフラグが付きます(S: サイズ, M: 権限, 5: MD5 など)

# rpm -Va
#   → インストール済み全パッケージを検証します

# rpm --checksig {パッケージ.rpm}
#   → .rpm ファイルの GPG 署名を検証します

# -----------------------------------------------
#  GPG 鍵の管理
# -----------------------------------------------

# rpm --import {鍵ファイルまたはURL}
#   → GPG 公開鍵をインポートします
#   → .rpm ファイルの署名検証に使用します
#   例: sudo rpm --import https://example.com/RPM-GPG-KEY


# ===============================================
#  dpkg(Debian / Ubuntu 系)
# ===============================================

# -----------------------------------------------
#  パッケージのインストール・アップグレード
# -----------------------------------------------

# dpkg -i {パッケージ.deb}
#   → .deb ファイルをインストールまたはアップグレードします
#   → 依存パッケージが不足している場合はエラーになります
#   例: sudo dpkg -i ryomen-sukuna_1.0_amd64.deb

# dpkg -i --force-overwrite {パッケージ.deb}
#   → 既存ファイルを上書きしてインストールします

# -----------------------------------------------
#  パッケージの削除
# -----------------------------------------------

# dpkg -r {パッケージ名}
#   → パッケージを削除します(設定ファイルは残ります)
#   例: sudo dpkg -r ryomen-sukuna

# dpkg -P {パッケージ名}
#   → パッケージと設定ファイルをまとめて削除します(purge)

# -----------------------------------------------
#  インストール済みパッケージへの問い合わせ
# -----------------------------------------------

# dpkg -l
#   → インストール済みの全パッケージを一覧表示します

# dpkg -l {パターン}
#   → パターンに一致するパッケージを一覧表示します
#   例: dpkg -l "nginx*"

# dpkg -s {パッケージ名}
#   → パッケージの詳細情報(状態・バージョン・依存関係など)を表示します
#   例: dpkg -s nginx

# dpkg -L {パッケージ名}
#   → パッケージがインストールしたファイルの一覧を表示します

# dpkg -S {ファイルパス}
#   → 指定したファイルがどのパッケージに属するかを確認します
#   例: dpkg -S /usr/sbin/nginx

# -----------------------------------------------
#  .deb ファイルへの問い合わせ(未インストール)
# -----------------------------------------------

# dpkg -I {パッケージ.deb}
#   → .deb ファイルのメタ情報を表示します

# dpkg -c {パッケージ.deb}
#   → .deb ファイルに含まれるファイルの一覧を表示します

# -----------------------------------------------
#  .deb ファイルの展開
# -----------------------------------------------

# dpkg-deb -x {パッケージ.deb} {展開先ディレクトリ}
#   → .deb ファイルの中身を指定ディレクトリに展開します

# dpkg-deb -e {パッケージ.deb} {制御情報ディレクトリ}
#   → .deb ファイルの制御情報(DEBIAN/ 以下)を展開します

# -----------------------------------------------
#  依存関係の不整合を修復する
# -----------------------------------------------

# dpkg --configure -a
#   → 設定が中断されたパッケージの設定を再実行します

# apt-get install -f
#   → 依存関係の不整合を修復します(dpkg の後始末に使用します)

構文一覧

操作コマンド説明
rpm(RHEL / AlmaLinux / CentOS 系)
インストールrpm -ivh {パッケージ.rpm}.rpm ファイルをインストールします。プログレスバー付きで詳細を表示します。
アップグレードrpm -Uvh {パッケージ.rpm}パッケージをアップグレードします。未インストールの場合は新規インストールします。
削除rpm -e {パッケージ名}パッケージを削除します。ファイル名ではなくパッケージ名を指定します。
インストール確認rpm -q {パッケージ名}パッケージがインストールされているか確認します。
全パッケージ一覧rpm -qaインストール済みの全パッケージを一覧表示します。
詳細情報の表示rpm -qi {パッケージ名}バージョン・概要・インストール日などの詳細情報を表示します。
ファイル一覧rpm -ql {パッケージ名}パッケージに含まれるファイルの一覧を表示します。
ファイルの帰属確認rpm -qf {ファイルパス}指定したファイルがどのパッケージに属するかを確認します。
未インストール .rpm の情報rpm -qip {パッケージ.rpm}.rpm ファイルのメタ情報をインストールせずに確認します。
パッケージ検証rpm -V {パッケージ名}インストール済みファイルが改ざんされていないか検証します。
全パッケージ検証rpm -Vaインストール済み全パッケージのファイルを一括検証します。
署名検証rpm --checksig {パッケージ.rpm}.rpm ファイルの GPG 署名を検証します。
GPG 鍵のインポートrpm --import {鍵ファイル}GPG 公開鍵をインポートします。署名検証に必要です。
dpkg(Debian / Ubuntu 系)
インストールdpkg -i {パッケージ.deb}.deb ファイルをインストールまたはアップグレードします。依存パッケージが不足している場合はエラーになります。
削除dpkg -r {パッケージ名}パッケージを削除します。設定ファイルはシステムに残ります。
設定ファイルごと削除dpkg -P {パッケージ名}パッケージと設定ファイルをまとめて削除します。
全パッケージ一覧dpkg -lインストール済みの全パッケージを状態フラグ付きで一覧表示します。
詳細情報の表示dpkg -s {パッケージ名}パッケージの状態・バージョン・依存関係などの詳細情報を表示します。
ファイル一覧dpkg -L {パッケージ名}パッケージがインストールしたファイルの一覧を表示します。
ファイルの帰属確認dpkg -S {ファイルパス}指定したファイルがどのパッケージに属するかを確認します。
未インストール .deb の情報dpkg -I {パッケージ.deb}.deb ファイルのメタ情報をインストールせずに確認します。
未インストール .deb のファイル一覧dpkg -c {パッケージ.deb}.deb ファイルに含まれるファイルの一覧を表示します。
.deb の展開dpkg-deb -x {パッケージ.deb} {ディレクトリ}.deb ファイルの中身を指定ディレクトリに展開します。
設定の再実行dpkg --configure -a設定が中断されたパッケージの設定を再実行します。
依存不整合の修復apt-get install -fdpkg 操作後の依存関係の不整合を修復します。

使用例

# -----------------------------------------------
#  rpm: .rpm ファイルのインストールと確認
# -----------------------------------------------

# AlmaLinux 環境でダウンロード済みの .rpm ファイルをインストールします
sudo rpm -ivh gojo-satoru-tools-1.0-1.el9.x86_64.rpm

# インストールが成功したか確認します
rpm -q gojo-satoru-tools

# インストールされたファイルの一覧を確認します
rpm -ql gojo-satoru-tools

実行するコマンドは次の通りです。

$ sudo rpm -ivh gojo-satoru-tools-1.0-1.el9.x86_64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:gojo-satoru-tools-1.0-1.el9      ################################# [100%]
$ rpm -q gojo-satoru-tools
gojo-satoru-tools-1.0-1.el9.x86_64
rpm: インストール済みパッケージのファイル帰属を確認する
# -----------------------------------------------
#  指定したコマンドがどのパッケージに含まれるかを調べます
# -----------------------------------------------

# /usr/bin/curl がどのパッケージに属するか確認します
rpm -qf /usr/bin/curl

# そのパッケージの詳細情報を表示します
rpm -qi curl

実行するコマンドは次の通りです。

$ rpm -qf /usr/bin/curl
curl-7.76.1-29.el9.x86_64
$ rpm -qi curl
Name : curl
Version : 7.76.1
Release : 29.el9
Architecture: x86_64
Install Date: Mon 10 Mar 2025 09:00:00 AM JST
Group : Unspecified
Size : 695019
License : curl
Summary : A utility for getting files from remote servers (FTP, HTTP, and others)
rpm: パッケージの整合性を検証する
# -----------------------------------------------
#  インストール後にファイルが改ざんされていないか確認します
# -----------------------------------------------

# nginx パッケージのファイルを検証します
rpm -V nginx

実行するコマンドは次の通りです。

$ rpm -V nginx
S.5....T.  c /etc/nginx/nginx.conf

実装例は次の通りです。

# 出力の読み方(フラグの意味)
# S: ファイルサイズが変わっています
# 5: MD5チェックサムが変わっています(内容が変更されています)
# T: 更新日時が変わっています
# c: 設定ファイルであることを示します
# → /etc/nginx/nginx.conf は設定変更済みのため正常です
# → 出力がなければファイルは改ざんされていません
dpkg: .deb ファイルのインストールと依存不整合の修復
# -----------------------------------------------
#  Ubuntu 環境でダウンロード済みの .deb ファイルをインストールします
# -----------------------------------------------

# megumi-fushiguro-tools_1.0_amd64.deb をインストールします
sudo dpkg -i megumi-fushiguro-tools_1.0_amd64.deb

実行するコマンドは次の通りです。

$ sudo dpkg -i megumi-fushiguro-tools_1.0_amd64.deb
Selecting previously unselected package megumi-fushiguro-tools.
(Reading database ... 85432 files and directories currently installed.)
Preparing to unpack megumi-fushiguro-tools_1.0_amd64.deb ...
Unpacking megumi-fushiguro-tools (1.0) ...
dpkg: dependency problems prevent configuration of megumi-fushiguro-tools:
 megumi-fushiguro-tools depends on libshadow-style (>= 2.0); however:
  Package libshadow-style is not installed.

dpkg: error processing package megumi-fushiguro-tools (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 megumi-fushiguro-tools

実装例は次の通りです。

# 依存パッケージが不足しているエラーが発生しました
# apt-get install -f で依存関係を自動解決します
sudo apt-get install -f

実行するコマンドは次の通りです。

$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree... Done
The following additional packages will be installed:
  libshadow-style
The following NEW packages will be installed:
  libshadow-style
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 512 kB of disk space will be used.
Do you want to continue? [Y/n] y
(依存パッケージがインストールされ、設定が完了します)
dpkg: インストール済みパッケージを調べる
# -----------------------------------------------
#  インストール状態の確認と詳細情報の表示
# -----------------------------------------------

# インストール済みパッケージを一覧表示して nginx を絞り込みます
# 出力フォーマット: ii = インストール済み, rc = 削除済みだが設定ファイルが残っている
dpkg -l | grep nginx

# nginx の詳細情報を表示します
dpkg -s nginx

# nginx がインストールしたファイルを確認します
dpkg -L nginx | head -20

実行するコマンドは次の通りです。

$ dpkg -l | grep nginx
ii  nginx          1.24.0-1ubuntu1  amd64  high performance web server
$ dpkg -s nginx
Package: nginx
Status: install ok installed
Priority: optional
Section: httpd
Installed-Size: 126
Maintainer: Ubuntu Developers
Architecture: amd64
Version: 1.24.0-1ubuntu1
Depends: libpcre3, libssl3 (>= 3.0.0), zlib1g (>= 1:1.1.4)
Description: high performance web server
$ dpkg -L nginx | head -20
/.
/etc
/etc/nginx
/etc/nginx/sites-available
/etc/nginx/sites-available/default
/etc/nginx/sites-enabled
/usr
/usr/sbin
/usr/sbin/nginx
dpkg: .deb ファイルの中身をインストールせずに確認する
# -----------------------------------------------
#  インストール前に .deb ファイルの内容を確認します
# -----------------------------------------------

# nobara-kugisaki_2.0_amd64.deb のメタ情報を表示します
dpkg -I nobara-kugisaki_2.0_amd64.deb

# .deb ファイルに含まれるファイルの一覧を確認します
dpkg -c nobara-kugisaki_2.0_amd64.deb

実行するコマンドは次の通りです。

$ dpkg -I nobara-kugisaki_2.0_amd64.deb
 new Debian package, version 2.0.
 size 10485760 bytes: control archive=2048 bytes.
     512 bytes,    15 lines      control
 Package: nobara-kugisaki
 Version: 2.0
 Architecture: amd64
 Maintainer: Jujutsu <packages@jujutsu.example>
 Installed-Size: 40960
 Depends: libc6 (>= 2.35)
 Description: Nobara Kugisaki hammer tools
$ dpkg -c nobara-kugisaki_2.0_amd64.deb
drwxr-xr-x root/root   0 2025-01-01 00:00 ./
drwxr-xr-x root/root   0 2025-01-01 00:00 ./usr/
drwxr-xr-x root/root   0 2025-01-01 00:00 ./usr/bin/
-rwxr-xr-x root/root  40960 2025-01-01 00:00 ./usr/bin/kugisaki

概要

『rpm』と『dpkg』はそれぞれ RHEL 系・Debian 系 Linux の低レベルパッケージ管理ツールです。dnf / yumapt などの高レベルツールが依存関係の自動解決やリポジトリからのダウンロードを担うのに対し、rpmdpkg は手元にある .rpm / .deb ファイルを直接操作します。高レベルツールでは取得できないインターネット非接続環境でのインストール、パッケージの署名検証、特定ファイルの帰属確認、インストール済みファイルの改ざん検知といった用途で力を発揮します。dpkg -i で依存エラーが発生した場合は apt-get install -f で修復するのが定番の手順です。通常の運用では dnfapt を使い、低レベルな調査・検証が必要になったときに rpm / dpkg を使うという使い分けがおすすめです。pacman(Arch Linux 系)のように独自の低レベルツールを持つディストリビューションもあります。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。