【Linux】yumコマンドでソフトウェアの導入・更新・削除を自動化する

目次

概要

Red Hat系ディストリビューション(RHEL, CentOSなど)において、ソフトウェア(RPMパッケージ)をインターネット上のリポジトリからダウンロードし、インストールや更新を行うコマンドです。

最大の特徴は「依存関係の自動解決」です。あるソフトを動かすために必要なライブラリが不足している場合、rpm コマンドではエラーになりますが、yum は必要なものを自動で探して一緒にインストールしてくれます。

仕様(引数・オプション)

構文

yum [オプション] [コマンド] [パッケージ名]

主なオプション

オプション説明
-y全ての確認プロンプトに自動的に「Yes」で応答します(自動化に必須)。
-q実行結果の表示を最小限に抑えます(Quietモード)。
-v詳細な情報を表示します(Verboseモード)。
-Cネットワーク通信を行わず、ローカルキャッシュのみを使用します。
–enablerepo=[ID]無効化されているリポジトリを一時的に有効にします。
–disablerepo=[ID]有効化されているリポジトリを一時的に無効にします。
–downloadonlyインストールは行わず、RPMファイルのダウンロードのみ実行します。

主なコマンド(操作)

コマンド説明
installパッケージを新規インストールします。
updateインストール済みのパッケージを更新します。
remove / eraseパッケージを削除(アンインストール)します。
searchパッケージ名や概要に含まれるキーワードで検索します。
infoパッケージの詳細情報(バージョン、ライセンス、説明など)を表示します。
listパッケージの一覧を表示します(installed, available, updates 等で絞り込み可)。
check-update更新可能なパッケージがあるか確認します(更新はしません)。
cleanキャッシュデータ(メタデータやパッケージ)を削除します。
groups複数のパッケージをまとめた「グループ」単位で操作します。

listコマンドのサブコマンド

サブコマンド説明
installedインストール済みのパッケージのみを表示します。
availableリポジトリに存在するインストール可能な全パッケージを表示します。
updates更新版が存在するパッケージのみを表示します。
all全てのパッケージを表示します。

基本の使い方

パッケージ(ここでは nginx)を検索し、詳細を確認してからインストールする基本的なフローです。

# 1. パッケージを探す
yum search nginx

# 2. 詳細を確認する
yum info nginx

# 3. インストールを実行(確認プロンプトあり)
sudo yum install nginx

実行結果例(インストール時)

Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.20.1-1.el7 will be installed
--> Finished Dependency Resolution

Total download size: 2.8 M
Is this ok [y/d/N]: y
Downloading packages:
nginx-1.20.1-1.el7.x86_64.rpm          | 2.8 MB  00:01
Running transaction
  Installing : 1:nginx-1.20.1-1.el7.x86_64          1/1 
  Verifying  : 1:nginx-1.20.1-1.el7.x86_64          1/1 

Installed:
  nginx.x86_64 1:1.20.1-1.el7

Complete!

実践コマンド

静かにパッケージを検索する

余計なヘッダー情報を出さずに、キーワード「gimp」を含むパッケージを探します。

yum search gimp -q

アップデート候補を確認する

システムに変更を加えず、どのパッケージが古くなっているかだけをリストアップします。戻り値で状態判定ができるため、監視スクリプトなどで有用です。

yum check-update -q

システムを全自動で最新化する

確認プロンプトをスキップして、更新可能なすべてのパッケージをアップデートします。

sudo yum update -y

特定のツールを一発でインストールする

確認画面を出さずに tcpdump を即座にインストールします。

sudo yum install tcpdump -y

パッケージを削除する

不要になった tcpdump をアンインストールします。

sudo yum remove tcpdump

パッケージグループを活用する

開発環境などのセットを一括で操作します。

Bash

# グループリストを静かに表示
yum groups list -q

# 「Development Tools」(開発ツール)グループの内容を確認
yum groups info "Development Tools" -q

# グループ内のツールを一括インストール
sudo yum groups install "Development Tools"

カスタムポイント

  • リポジトリの一時的な切り替え (–enablerepo)普段は無効にしているリポジトリ(例: epel)から特定のツールだけを入れたい場合に使用します。Bashyum install --enablerepo=epel htop
  • キャッシュのクリア (clean all)「リポジトリエラー」や「メタデータの不整合」が発生した場合、キャッシュを削除して再取得させます。Bashyum clean all

注意点

  1. kernelの更新yum update はカーネルも更新対象に含みます。再起動するまで新しいカーネルは有効になりませんが、本番環境などでカーネルバージョンを固定したい場合は /etc/yum.conf に exclude=kernel* を記述するか、実行時に –exclude=kernel* を付与してください。
  2. root権限パッケージのインストール、更新、削除には管理者権限(sudo)が必要です。search や info は一般ユーザーでも実行可能です。
  3. dnfとの関係RHEL 8 / CentOS 8以降では、内部エンジンが dnf に刷新されました。yum コマンドを実行しても裏側で dnf が動いていますが、オプションなどの互換性は維持されています。

応用

ローカルのRPMファイルを依存関係付きでインストールする

ネットから落としてきた個別の .rpm ファイルをインストールする際、rpm -ivh ではなく yum install を使うと、足りない依存ライブラリをリポジトリから自動で補完してくれます。

# ローカルにある chrome.rpm をインストール(依存関係も解決)
sudo yum install ./google-chrome-stable_current_x86_64.rpm

インストールせずにRPMファイルだけダウンロードする

インターネットに接続できないサーバー用に、パッケージファイルだけを確保します。

(※環境によっては yum-plugin-downloadonly の導入が必要です)

# httpdパッケージを /tmp/packages に保存
yum install --downloadonly --downloaddir=/tmp/packages httpd

まとめ

yum はLinuxサーバー運用における「アプリストア」のような存在です。

個別のファイル管理を行う rpm とは異なり、面倒な依存関係の解決を全て引き受けてくれます。「-y で自動化」「groups で一括管理」「check-update で監視」といったテクニックを駆使して、環境構築を効率化してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次