「yum」を使ったパッケージ管理まとめ【Red Hat Enterprise Linux・CentOS】

2018年3月31日

Red Hat Enterprise Linux(RHEL)やCentOSのパッケージ管理といえば「yum」コマンドです。
将来的には、より新しい「dnf」コマンドに移行していくようですが、まだまだyumが主流です。

このページでは、「yum」コマンドを中心に、RPMパッケージの操作をまとめました。

更新可能なパッケージの確認 - yum check-update

sudo yum check-update

# 以下のコマンドでも確認できる
sudo yum list updates

# 出力をlessにパイプする例
sudo yum check-update | less
sudo yum list updates | less

パッケージのリポジトリ(貯蔵庫)から、パッケージの名前やバージョン、依存関係を取得し、更新可能なパッケージを出力します。出力が長くなるので、lessなどのページャーにパイプすると良いでしょう。

パッケージの更新 - yum update

# 更新可能なパッケージをすべて更新する例
sudo yum update

# 特定のパッケージだけを指定して更新することもできます。以下は「firefox」パッケージと、その依存するパッケージを更新します。
sudo yum update firefox

アップグレード可能なパッケージを更新します。デスクトップだと更新ダイアログで実行できますが、コマンドも覚えておくと便利です。

パッケージの検索 - yum search

yum search 検索語句

# 「game」で検索してページャでスクロールする例
yum search game | less

パッケージを検索します。検索語句によっては大量に出力されるので、パイプでlessに送ったほうが良いでしょう。

パッケージのインストール - yum install

sudo yum install パッケージ名

# 「-y」を付けると最終確認を行わずインストール処理が行われる
sudo yum -y install パッケージ名

# 「openssh-server」をインストールする例
sudo yum install openssh-server

# 複数のパッケージを一度にインストールする例
sudo yum install htop iotop

# パターン「ruby-*」に合ったパッケージをすべてインストールする例
sudo yum install 'ruby-*'

# 再インストールを行う場合は「reinstall」を用いる
sudo yum reinstall bash

パッケージの削除 - yum remove

sudo yum remove パッケージ名

# 「-y」を付けると最終確認を行わず削除処理が行われる
sudo yum -y remove パッケージ名

# 「openssh-server」 を削除する例
sudo yum remove openssh-server

# 複数のパッケージを一度に削除する例
sudo yum remove htop iotop

# パターン「ruby-*」に合ったパッケージをすべて削除する例
sudo yum remove 'ruby-*'

パッケージの自動削除 - yum autoremove

sudo yum autoremove

# パッケージの削除と同時に行うこともできる
sudo yum autoremove パッケージ名

これは、パッケージが削除されたことで「必要なくなった」パッケージを削除するコマンドです。

パッケージキャッシュの削除 - yum clean all

sudo yum clean all

# enableに設定されていないレポジトリのキャッシュも含めて削除する場合
sudo yum --enablerepo='*' clean all

自動でダウンロードされたrpmパッケージやメタデータなどは、ストレージ内にキャッシュされています。これを削除して、ストレージ容量を空けるコマンドです。

ローカルパッケージのインストール - yum localinstall

sudo yum localinstall RPMファイル

# カレントディレクトリにある「jdk-8u162-linux-x64.rpm」をインストールする例
sudo yum localinstall jdk-8u162-linux-x64.rpm

ダウンロード済みのrpmをインストールします。必要に応じて、依存するパッケージが自動でインストールされます。

インストール済みパッケージの一覧 - yum list installed

yum list installed

# lessにパイプする例
yum list installed | less

# rpmコマンドを用いる例
rpm -qa | less

全パッケージ一覧 - yum list

# lessにパイプする例
yum list | less

インストール済みパッケージのファイル一覧 - rpm -ql

rpm -ql パッケージ名

# yum-utilsパッケージに含まれるrepoqueryコマンドでも可能
repoquery --list パッケージ名

# yumパッケージに含まれるファイルの一覧を出力する例
rpm -ql yum

パッケージ情報の表示 - yum info

yum info パッケージ名

# 「nginx」パッケージの情報を表示する例
yum info nginx

パッケージの依存関係を表示 - yum deplist

yum deplist パッケージ名

# 「httpd」パッケージの依存関係を表示する例
yum deplist httpd | less

指定したパッケージの依存性と、その依存性を提供するパッケージを表示します。

ファイルや機能を含むパッケージを表示 - yum provides

yum provides ファイル名(もしくは機能名)

# 「*/bin/vim*」にマッチするファイルを含むパッケージを表示
yum provides '*/bin/vim*'

# 「webserver」を提供するパッケージを表示
yum provides webserver | less

ファイル名や機能名からパッケージを探して表示します。

レポジトリの一覧を表示 - yum repolist

yum repolist

レポジトリの一覧を表示します。

レポジトリの情報を表示 - yum repoinfo

# lessにパイプする例
yum repoinfo | less

レポジトリの情報を表示します。

グループの一覧を表示 - yum -v groups list

# lessにパイプする例
yum -v groups list | less

グループ名を指定してインストール - yum groupinstall

sudo yum groupinstall グループ名

# 「Web Server」グループのパッケージをまとめてインストールする例
sudo yum groupinstall 'Web Server'

グループ名を指定して削除 - yum groupremove

sudo yum groupremove グループ名

# 「Web Server」グループのパッケージをまとめて削除する例
sudo yum groupremove 'Web Server'

なお、Ubuntuで用いられている「apt」を使ったパッケージ管理は以下のページにまとめています。