変更要約: 初版(主題1.04・副主題1.04.1〜1.04.4に対応)
4.3yumコマンドによるパッケージ管理
RHEL 系のリポジトリを利用したパッケージ管理を学びます。yum によるインストール・更新・削除・検索、特定のファイルを提供するパッケージの検索(provides)、リポジトリ設定(/etc/yum.repos.d/・/etc/yum.conf)、パッケージ取得だけ行う yumdownloader を押さえます。
RHEL・CentOS・AlmaLinux などの RPM 系ディストリビューションで apt に相当するのが yum です(後継の dnf も互換の使い勝手)。役割は同じ「リポジトリから取り寄せて依存関係ごと管理」なので、apt との対応関係で覚えるのが近道です。
4.3.1yum の基本操作
- インストール=
yum install httpd/削除=yum remove httpd/更新=yum update(全体。パッケージ名を付ければ個別)/検索=yum search キーワード・情報=yum info パッケージ。 - ファイル→パッケージの逆引き=
yum provides /usr/sbin/httpd(未インストールのパッケージも対象)。一覧=yum list installed。 - リポジトリ定義=/etc/yum.repos.d/ ディレクトリ内の
.repoファイル(1リポジトリ=1セクション)。全体設定=/etc/yum.conf。有効なリポジトリの確認=yum repolist。 - yumdownloader=インストールせず rpm ファイルの取得だけ行う(オフライン環境への持ち込みや検証用)。
「ファイルを提供するパッケージ=yum provides」「リポジトリ定義=/etc/yum.repos.d/ の .repo ファイル」「ダウンロードのみ=yumdownloader」 が定番です。apt との対応(update の意味の違い=yum update はパッケージ更新・apt update は索引更新)は混同を誘う最頻出ポイントです。
試験で狙われるのは apt との非対称です。apt では「update=索引・upgrade=本体」と2語で分かれていますが、yum の update は「本体の更新」で、索引の更新は毎回自動的に行われます(明示するなら yum makecache)。つまり「yum update を実行した」=「パッケージが更新された」であり、apt の感覚で「索引だけ更新した」と読むと誤答します。リポジトリ管理も対称ではありません:apt が原則1ファイル(sources.list)に列挙するのに対し、yum は /etc/yum.repos.d/ にリポジトリごとの .repo ファイルを置く分割スタイルで、enabled=1/0 の行で有効/無効を切り替えます。社内ミラーの追加は「.repo ファイルを1つ置く」だけで完結します。yumdownloader はインターネット非接続のサーバー群に rpm を配る運用や、「中身を確認してから入れたい」場面の定番で、--resolve を付ければ依存 rpm もまとめて取得できます。
| 目的 | Debian系(apt) | RHEL系(yum) |
|---|---|---|
| インストール | apt install | yum install |
| パッケージ更新 | apt update → apt upgrade | yum update(索引は自動) |
| ファイル→パッケージ | apt-file search | yum provides |
| リポジトリ定義 | /etc/apt/sources.list | /etc/yum.repos.d/*.repo |
ひっかけ: 「yum update は apt update と同じく索引の更新だけを行う」は誤りです。yum update はパッケージ本体を更新します(索引は自動更新)。また「yum のリポジトリは /etc/apt/sources.list に定義する」のようなディストリビューション取り違えの選択肢も定番です(正しくは /etc/yum.repos.d/)。
4.3.2この節のまとめ
- yum update=パッケージ更新(索引は自動)。install/remove/search/info/list installed
- provides=ファイル逆引き・/etc/yum.repos.d/=.repo 分割定義・yumdownloader=取得のみ
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. RHEL 系サーバーで「/usr/sbin/httpd というファイルを提供するパッケージ」を調べたい。適切なコマンドは?
Q2. インターネットに接続できない検証サーバーに持ち込むため、パッケージの rpm ファイルをインストールせずに取得だけしたい。適切なコマンドは?
Q3. yum が利用するリポジトリを追加したい。定義ファイルを置く場所として適切なのはどれ?

