yum コマンド:使い方とオプション、yum-utils とリポジトリの確認

テスト環境RHEL系AlmaLinux 9.8rootアカウント
パッケージコマンドyumyum-utilsrpm場所/usr/bin/yum

yum コマンドは、RHEL 系 Linux でパッケージをインストール・アップデート・削除するパッケージ管理コマンドです。AlmaLinux 9 サーバーで照会・アップデート確認のコマンドと yum-utils のツールを実際に実行してみると、yum は dnf と同じプログラムとして実行され、出力も dnf と同じでした。

下の出力にあるリポジトリ一覧、パッケージのリリース番号、インストール時刻は例の値です。

1️⃣ yum コマンドの基本的な使い方:yum と dnf

AlmaLinux 9 で yum と入力すると dnf が実行されます。/usr/bin/yum が dnf-3 につながるリンクだからです。

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/yum -> dnf-3

2つのファイルはどちらも dnf-3 につながるリンクでした。そのため yum --version を実行しても dnf のバージョンが表示されます。

yum --version
4.14.0
  Installed: dnf-0:4.14.0-21.el9_8.alma.1.noarch at Mon Oct  5 10:12:30 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Fri May  1 09:30:00 2026

  Installed: rpm-0:4.16.1.3-23.el9.x86_64 at Mon Oct  5 10:12:08 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Thu Mar 12 08:15:20 2026

1行目の 4.14.0 が dnf のバージョンで、その下に dnf と rpm パッケージがインストールされた時刻が続きます。rpm のバージョンも一緒に表示されるのは、yum がリポジトリから受け取ったパッケージを最終的に rpmでインストールするからです。

コマンドの基本形は、yum、オプション、コマンド、パッケージ名の順です。--help の1行目がこの形で、その下にコマンドの一覧が続きます。

yum --help | head -n 12
usage: yum [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package

よく使うコマンドは表にまとめました。

コマンド作業
list installedインストール済みパッケージの一覧(パッケージ名を付けるとそのパッケージだけ)
list updatesリポジトリに新しいバージョンがあるパッケージの一覧
check-updateアップデートがあるか確認(あれば終了コード 100)
infoパッケージ1つのバージョン・サイズ・リポジトリ・説明
search名前と概要からパッケージを検索
installパッケージのインストール(依存関係を含む)
removeパッケージの削除(erase と同じ)
updateインストール済みパッケージを新しいバージョンに(upgrade と同じ)
autoremove依存関係でインストールされ、もう不要になったパッケージを削除
makecacheリポジトリのメタデータを先に受け取ってキャッシュを作成
clean all受け取ったキャッシュをすべて削除
repolist有効なリポジトリの一覧
deplist依存関係と提供パッケージ(repoquery --deplist を推奨)
historyインストール・削除のトランザクション履歴

2️⃣ yum コマンドのオプション:-y、-C、exclude、enablerepo

オプションは yum とコマンドの間に置きます。-y は質問に「はい」と答えるのでスクリプトで使い、本番サーバーで手動で update を実行するときは -y を付けずにトランザクション表を読んでから答えるほうが適切です。

オプションコピー説明
-C, --cacheonlyリポジトリに接続せず、受け取ったキャッシュだけを使います。
-q, --quietメタデータの行などの案内を隠し、結果だけを出力します。
--showduplicates同じパッケージのインストール済みバージョンとリポジトリのバージョンをすべて出力します。
--exclude=PKG, -x PKGそのパッケージを今回のコマンドから外します(kernel* のようなパターンも可)。
--enablerepo=REPO無効なリポジトリを今回のコマンドだけ有効にします。
--versionyum(dnf)と rpm のバージョンを出力します。
-h, --helpヘルプを出力します。
オプションコピー説明
-y, --assumeyesすべての質問に「はい」と答えます。
-v, --verbose作業内容を詳しく出力します。
--disablerepo=REPO有効なリポジトリを今回のコマンドだけ無効にします。
--skip-broken依存関係が壊れたパッケージを飛ばして残りを進めます。

-C はリポジトリに接続せず、受け取ったキャッシュだけで結果を出力します。1行目にキャッシュを最後に更新した時刻が残り、2行目からが結果です。

yum -C list tree
Last metadata expiration check: 0:35:03 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

-q を付けると1行目が消え、結果だけが表示されます。

yum -C -q list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

--showduplicates は、インストール済みのバージョンとリポジトリにあるバージョンを並べて出力します。

yum -C --showduplicates list libavif
Last metadata expiration check: 0:38:15 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
libavif.x86_64                      0.11.1-7.el9                       @epel
Available Packages
libavif.x86_64                      1.1.1-2.el9                        epel

Installed Packages の 0.11.1 と Available Packages の 1.1.1 が同じパッケージの2つのバージョンです。リポジトリ側のバージョンのほうが新しいので、libavif はアップデートの対象です。

--exclude は今回のコマンドからそのパッケージを外します。

yum -C --exclude=libavif check-update libavif libdav1d
Last metadata expiration check: 0:35:10 ago on Thu Oct 29 05:32:35 2026.

libdav1d.x86_64                         1.5.4-2.el9                         epel

2つのパッケージを指定しましたが、libavif が外れて libdav1d だけが残りました。update に付けると、そのパッケージだけを除いてアップデートします。

3️⃣ yum のパッケージ管理とアップデートの順序

オプションを知っていても、何がインストールされていて何が新しく出たのかを先に見ないと、アップデートするパッケージは決まりません。そこでインストール済みのパッケージを確認するコマンドから見ていきます。

yum -C list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

最後の列の @baseos は、インストールしたときに取得したリポジトリです。rpm -q で照会するとバージョンまで1行で表示されます。

rpm -q tree htop libavif
tree-1.8.0-12.el9.x86_64
package htop is not installed
libavif-0.11.1-7.el9.x86_64

インストールされていないパッケージは not installed の1行で終わり、終了コードは 1 です。

リポジトリに新しいバージョンが出たパッケージは list updates で確認します。

yum -C list updates libavif libdav1d
Last metadata expiration check: 0:35:07 ago on Thu Oct 29 05:32:35 2026.
Available Upgrades
libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel

Available Upgrades の下が新しいバージョンのあるパッケージです。パッケージ名を付けなければ、インストール済みのすべてが対象になります。

check-update は同じ一覧を終了コードでも知らせます。

yum -C check-update libavif libdav1d; echo $?
Last metadata expiration check: 0:35:08 ago on Thu Oct 29 05:32:35 2026.

libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel
100

最後の行の 100 が終了コードです。アップデートがあれば 100、なければ 0 になるので、スクリプトではこの値で判断します。

アップデートは makecache、update、autoremove の順に進めます。

yum makecache

makecache はリポジトリのメタデータを先に受け取っておきます。update が自分で受け取るので、省略してもかまいません。

yum update

update はインストール済みのパッケージをすべて新しいバージョンに上げ、依存関係もあわせて処理します。

yum update libavif

パッケージ名を付けると、そのパッケージだけを上げます。

yum autoremove

autoremove は、依存関係で一緒にインストールされ、もう必要なくなったパッケージを削除します。update のあとに実行します。

yum update --exclude='kernel*'

カーネルを除いてアップデートするには、--exclude に kernel のパターンを付けます。カーネルがアップデートされたあとは再起動しないと新しいカーネルで動きませんが、再起動が必要かどうかは yum-utils の needs-restarting で確認します。

4️⃣ yum-utils のツール:yumdownloader、repoquery、needs-restarting

AlmaLinux 9 の yum-utils は、dnf-plugins-core が提供する互換レイヤーです。コマンド名は昔の YUM 時代のままで、実行されるのは dnf プラグインです。

yum -C info yum-utils
Last metadata expiration check: 0:38:12 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
Name         : yum-utils
Version      : 4.3.0
Release      : 14.el9
Architecture : noarch
Size         : 23 k
Source       : dnf-plugins-core-4.3.0-14.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Yum-utils CLI compatibility layer
URL          : https://github.com/rpm-software-management/dnf-plugins-core
License      : GPLv2+
Description  : As a Yum-utils CLI compatibility layer, supplies in CLI shims for
             : debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
             : repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
             : download and yum-groups-manager that use new implementations using DNF.

Source が dnf-plugins-core で、Summary が Yum-utils CLI compatibility layer です。インストールされていなければ [yum install yum-utils] でインストールします。

このパッケージがインストールする17個のコマンドは rpm -ql で表示されます。

rpm -ql yum-utils | grep bin/
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
ls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-manager
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/needs-restarting -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/repoquery -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yum-config-manager -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yumdownloader -> /usr/libexec/dnf-utils

すべて /usr/libexec/dnf-utils 1つにつながるリンクでした。よく使うツールとその役割はツリーにまとめました。

yum-utilsパッケージ1つ — 17個のコマンドがすべて /usr/libexec/dnf-utils につながるリンク
yumdownloaderパッケージファイル(.rpm)のダウンロード · --urls はアドレスだけを出力
repoqueryパッケージのファイル一覧・依存関係・逆依存関係の照会
needs-restartingアップデート後に再起動・再始動が必要か確認
package-cleanup重複・孤立・問題のあるパッケージを探す
yum-builddepソース RPM をビルドするときに必要なパッケージをインストール
yum-config-managerリポジトリの有効化・無効化・追加(設定ファイルを変更)
repoclosure · repodiff · repomanage · repo-graphリポジトリの点検・比較・整理・グラフ
reposync · repotrackリポジトリ・パッケージ群のダウンロード
debuginfo-install · find-repos-of-install · yum-debug-dump · yum-debug-restore · yum-groups-managerデバッグ情報 · 取得元リポジトリ · 設定のダンプ・復元 · グループ管理

yumdownloader はパッケージファイルをインストールせず、ダウンロードだけを行います。--urls を付けると、ダウンロードするアドレスだけを出力します。

yumdownloader --urls tree
Last metadata expiration check: 0:35:16 ago on Thu Oct 29 05:32:35 2026.
https://repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/Packages/tree-1.8.0-12.el9.x86_64.rpm

リポジトリのアドレスとファイル名が1行で表示されます。インターネットにつながらないサーバーに移してインストールするファイルを、このアドレスで先に受け取っておけます。

repoquery は、パッケージがインストールするファイルと依存関係を照会します。

repoquery -l tree
Last metadata expiration check: 0:35:17 ago on Thu Oct 29 05:32:35 2026.
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/e2ec3d46003583b56979e08d437395bd0d2a07
/usr/share/doc/tree
/usr/share/doc/tree/README
/usr/share/licenses/tree
/usr/share/licenses/tree/LICENSE
/usr/share/man/man1/tree.1.gz

-l はそのパッケージのファイル一覧です。実行ファイル1つと、ドキュメント、ライセンス、マニュアルが入っています。

repoquery --requires tree
Last metadata expiration check: 0:35:19 ago on Thu Oct 29 05:32:35 2026.
libc.so.6(GLIBC_2.34)(64bit)
rtld(GNU_HASH)

--requires は必要なライブラリです。yum deplist も同じ内容に提供パッケージまで付けて出力しますが、ヘルプに deprecated と書かれているので repoquery --deplist で代わりにします。

yum -C repoquery --deplist tree
Last metadata expiration check: 0:38:17 ago on Thu Oct 29 05:32:35 2026.
package: tree-1.8.0-12.el9.x86_64
  dependency: libc.so.6(GLIBC_2.34)(64bit)
   provider: glibc-2.34-170.el9_8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.34-170.el9_8.i686
   provider: glibc-2.34-170.el9_8.x86_64

dependency の行が必要なもので、provider の行がそれを提供するパッケージです。

アップデート後に再起動が必要かどうかは needs-restarting -r で確認します。

needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

カーネルや主要なライブラリがアップデートされたあとは、再起動が必要だという案内に変わり、終了コード 1 で終わります。

package-cleanup はオプションなしで実行すると、どの点検をするか選ぶように促す案内だけを出力します。

package-cleanup
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

5️⃣ yum リポジトリの確認:repolist と enablerepo オプション

ツールがそろっていても、パッケージがリポジトリになければ yum は何も見つけられません。そこで、どの yum リポジトリが有効になっているかから確認します。

yum repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

repolist は、設定ファイルで enabled=1 のリポジトリだけを出力します。baseos と appstream がディストリビューションの標準リポジトリで、epel は別に追加したリポジトリです。

yum repolist --all | head -n 12
repo id                       repo name                                 status
appstream                     AlmaLinux 9 - AppStream                   enabled
appstream-debuginfo           AlmaLinux 9 - AppStream - Debug           disabled
appstream-source              AlmaLinux 9 - AppStream - Source          disabled
baseos                        AlmaLinux 9 - BaseOS                      enabled
baseos-debuginfo              AlmaLinux 9 - BaseOS - Debug              disabled
baseos-source                 AlmaLinux 9 - BaseOS - Source             disabled
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled
epel                          Extra Packages for Enterprise Linux 9 - x enabled
epel-cisco-openh264           Extra Packages for Enterprise Linux 9 ope enabled

--all は無効なリポジトリまで status 列と一緒に出力します。crb のように disabled のリポジトリのパッケージは、そのままではインストールされません。

無効なリポジトリを今回のコマンドだけ有効にするには --enablerepo を付けます。

yum --enablerepo=crb repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
crb                 AlmaLinux 9 - CRB
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

crb が一覧に入りました。設定ファイルはそのままなので、次のコマンドではまた外れます。リポジトリを有効のままにしておくには yum-config-managerで設定ファイルを変更します。リポジトリが有効・無効になる様子は、下のダイアグラムでコマンドボタンを押して確認できます。

🧭 yum がパッケージを探すリポジトリ
解説ダイアグラム
🔍 コマンド
$ yum repolist--enablerepo=crb repolist--disablerepo=epel repolist
baseosオン今回だけオン今回だけオフ
appstreamオン今回だけオン今回だけオフ
extrasオン今回だけオン今回だけオフ
epelオン今回だけオン今回だけオフ
crbオフ今回だけオン今回だけオフ
➜
yumパッケージを探すリポジトリ5つ6つ4つ
repolist は、設定ファイルで enabled=1 のリポジトリだけを出力します。yum はこの一覧にあるリポジトリからだけパッケージを探します。crb のように無効なリポジトリのパッケージは見えません。
--enablerepo=crb を付けると、このコマンド1回だけ crb が有効になり、一覧に入ります。設定ファイルは変わらないので、次のコマンドではまた外れます。
--disablerepo=epel を付けると、このコマンド1回だけ epel が外れます。リポジトリをずっと有効または無効にするには、設定ファイルを変更する yum-config-manager を使います。

EPEL のように新しいリポジトリを加える作業は、リポジトリのパッケージを1つインストールするだけで終わります。

yum install epel-release

インストールすると /etc/yum.repos.d/ の下に epel.repo ファイルができ、repolist に epel が表示されます。

🔲 yum コマンドシミュレーター

下のシミュレーターで、yum list や check-update、repolist、yum-utils のコマンドを実際に入力して出力を確認できます。リポジトリ一覧は本文と同じ例の値で、インストール・削除・アップデートのコマンドは案内だけが表示されます。

yum コマンドシミュレーターyum 4.14.0
[root@server work]#
キーボードの↑↓で、前に入力したコマンドを呼び出せます。

🔢 FAQ & おすすめコンテンツ

ありません。yum delete と入力すると No such command: delete のエラーで終わります。パッケージの削除は yum remove で、erase も同じ動作をします。

同じコマンドです。dnf では update は upgrade の別名なので、yum help update を実行しても usage: yum upgrade で始まるヘルプが表示されます。

-C を付けると、リポジトリに接続せず受け取っておいたキャッシュで list と info を実行します。パッケージのインストールは、別のサーバーで yumdownloader で受け取った .rpm ファイルを移してから、ファイルのパスを install に渡す方法です。

ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

人間であることを証明してください: 9   +   8   =