Linuxコマンド辞典 yumコマンド(RPMパッケージ管理)

依存関係を含めたRPMパッケージ管理の yum(ヤム)コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS

概要・使用方法

yumは対話的にRPMパッケージ管理を行うコマンドです。

元々はYellowdogLinuxというディストリビューションで開発され「Yellow dog Updater Modifier」が名前が由来です。FedoraやCentOSなど、Red Hat系ディストリビューションで採用されています。

PRMパッケージは依存関係をデータとして持っていますが、依存関係は解決してインストールしてくれませんでした。yumはパッケージが登録されているリポジトリサーバーにパッケージリストを問い合わせを行い、パッケージのダウンロードやインストール、依存関係があるパッケージの取得やシステムにインストール済みのパッケージをアップデートができます。

書式

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

オプション

-y問い合わせがあった場合に自動で「y(yes)」で答える
-cyumの設定ファイルを指定する(デフォルトは/etc/yum.conf)
-Rタイムアウトを分単位で設定する

コマンド

install パッケージ名・・・指定したパッケージを依存関係のあるパッケージを含めてインストールする
update [パッケージ名・・・]指定したパッケージのみアップデートするが、パッケージを指定しない場合は、
インストールされているすべてのパッケージのアップデートを行う
check-updateアップデート候補をリストする
list利用できるパッケージリスト表示する。以下のサブコマンドが利用可能
サブコマンド説明
all利用可能(まだインストールされていない)パッケージとインストールされている
パッケージすべてをリスト表示する
availableyumリポジトリにあるインストールできるパッケージをリストする
updatesアップデートできるパッケージをリストする
installedインストールされているパッケージリストする
recent最近リポジトリに追加されたパッケージをリストする
info [パッケージ名・・・]利用できるパッケージの情報をリストで表示する
upgrade

インストールされているパッケージが廃止になっている場合、自信を置き換える

obsoletesフラグが立つ。これにより、OSのメジャーアップデートにも対応する

groups [グループ名・・・]複数RPMパッケージを集めたグループを一括で扱う
install指定したグループをインストールする
updateグループをアップデートする
listyumリポジトリファイルに存在するグループをリストで表示する
removeグループを削除する
infoグループの情報や依存するグループ、インストールするパッケージを表示する
search キーワード

指定したキーワードをyumのデータベース内にあるパッケージ名、

discription、summaryから検索し、該当するパッケージを表示する

remove/erase

指定したパッケージをアンインストールする。依存関係があるパッケージに

ついても問い合わせする

clean使用済みのパッケージとヘッダファイルを削除する
shellyumシェルを起動する

オプション

–enablerepo=リポジトリ名通常では無効のリポジトリを有効にする
–disablerepo=リポジトリ名通常では有効のリポジトリを無効にする
–obsoletes廃止パッケージを置き換える
–downloadonlyパッケージをダウンロードだけする
-q
–quiet
途中経過を出力しない
-v
–verbose
デバック情報を含めて出力する

パッケージのインストール

installオプションを付けて引数にパッケージ名を指定してインストールします。yumコマンドもrpmコマンドと同様でGPG署名が行われるようになっています。GPG署名を有効にしないとyumコマンドでのインストールが行えません。

yum install パッケージ名

実行結果

[root@i-host centos]# yum install samba
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package samba.x86_64 0:4.10.16-18.el7_9 will be installed
・
・
Dependencies Resolved

================================================================================================
 Package                     Arch            Version                     Repository        Size
================================================================================================
Installing:
 samba                       x86_64          4.10.16-18.el7_9            updates          720 k
Installing for dependencies:
 gnutls                      x86_64          3.3.29-9.el7_6              base             680 k
 libldb                      x86_64          1.5.4-2.el7                 updates          149 k
 libtalloc                   x86_64          2.1.16-1.el7                base              33 k
 libtdb                      x86_64          1.3.18-1.el7                base              49 k
 libtevent                   x86_64          0.9.39-1.el7                base              41 k
 libwbclient                 x86_64          4.10.16-18.el7_9            updates          116 k
 nettle                      x86_64          2.7.1-9.el7_9               updates          328 k
 pyldb                       x86_64          1.5.4-2.el7                 updates           49 k
 pytalloc                    x86_64          2.1.16-1.el7                base              18 k
 python-tdb                  x86_64          1.3.18-1.el7                base              20 k
 samba-client-libs           x86_64          4.10.16-18.el7_9            updates          5.0 M
 samba-common                noarch          4.10.16-18.el7_9            updates          216 k
 samba-common-libs           x86_64          4.10.16-18.el7_9            updates          182 k
 samba-common-tools          x86_64          4.10.16-18.el7_9            updates          466 k
 samba-libs                  x86_64          4.10.16-18.el7_9            updates          271 k
 trousers                    x86_64          0.3.14-2.el7                base             289 k

Transaction Summary
================================================================================================
Install  1 Package (+16 Dependent packages) ←インストールパッケージ数

Total download size: 8.5 M ←ダウンロードファイルの容量
Installed size: 28 M
Is this ok [y/d/N]:  ←実行するの確認 Yを入力してEnterでインストール、nで中止

パッケージのアップロード

アップロード可能なパッケージをすべてアップデートします。コマンド実行するとアップデート対象のパッケージの依存性確認が行われ、次にチェック結果にもとづき、依存パッケージを含むインストールパッケージ一覧とダウンロード容量が表示されます。

確認メッセージが表示されますので、y=実行、n=中止となります。

GPG-KEYのインストールがされていない場合は、これをインストールするか確認メッセージが表示されますので、yを入力してEnterで進めます。

yum update

実行結果

 
 rpm-build-libs                     x86_64        4.11.3-48.el7_9                 updates                  108 k
 rpm-libs                           x86_64        4.11.3-48.el7_9                 updates                  279 k
 rpm-python                         x86_64        4.11.3-48.el7_9                 updates                   84 k
 rsyslog                            x86_64        8.24.0-57.el7_9.1               updates                  622 k
 sudo                               x86_64        1.8.23-10.el7_9.2               updates                  843 k
 systemd                            x86_64        219-78.el7_9.5                  updates                  5.1 M
 systemd-libs                       x86_64        219-78.el7_9.5                  updates                  419 k
 systemd-sysv                       x86_64        219-78.el7_9.5                  updates                   97 k
 tzdata                             noarch        2021e-1.el7                     updates                  501 k
 tzdata-java                        noarch        2021e-1.el7                     updates                  190 k
 virt-what                          x86_64        1.18-4.el7_9.1                  updates                   30 k

Transaction Summary
=================================================================================================================
Install   1 Package
Upgrade  77 Packages

Total size: 372 M ←ダウンロードファイルの容量
Total download size: 15 k ←ダウンロードファイルの容量
Is this ok [y/d/N]: ←実行するの確認 Yを入力してEnterでインストール、nで中止

インストール後に「Complete!」のメッセージが表示されると正常に終了です。

アップデート可能なパッケージリストを表示

ミラーサイトにある最新パッケージとローカルのパッケージリストを比較してアップロード可能なパッケージリストを表示することができる。

下記の2つのコマンドは同じ結果になります。

yum list updates
yum check-update

実行結果

[root@i-host centos]# yum list update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Error: No matching Packages to list
[root@i-host centos]# yum list updates
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Updated Packages
bash.x86_64                                          4.2.46-35.el7_9                            updates          
bind-export-libs.x86_64                              32:9.11.4-26.P2.el7_9.9                    updates          
bind-libs-lite.x86_64                                32:9.11.4-26.P2.el7_9.9                    updates          
bind-license.noarch                                  32:9.11.4-26.P2.el7_9.9                    updates          
binutils.x86_64                                      2.27-44.base.el7_9.1                       updates          
ca-certificates.noarch                               2021.2.50-72.el7_9                         updates          

パッケージをアンインストール

不要になったパッケージをアンインストールする場合は、removeオプションを付けて実行します。

yum remove パッケージ名

実行結果

[root@i-host centos]# yum remove samba
Loaded plugins: fastestmirror
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package samba.x86_64 0:4.10.16-18.el7_9 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================
 Package               Arch                   Version                             Repository                Size
=================================================================================================================
Removing:
 samba                 x86_64                 4.10.16-18.el7_9                    @updates                 2.2 M

Transaction Summary
=================================================================================================================
Remove  1 Package

Installed size: 2.2 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : samba-4.10.16-18.el7_9.x86_64                                                                 1/1 
  Verifying  : samba-4.10.16-18.el7_9.x86_64                                                                 1/1 

Removed:
  samba.x86_64 0:4.10.16-18.el7_9                                                                                

Complete!
[root@i-host centos]# 


パッケージリストを表示

yumコマンドにlistを付加することで、インストールできるパッケージのリストを表示できます。

yum list パッケージ名

実行結果

[root@i-host centos]# yum list openssl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Installed Packages
openssl.x86_64       ←パッケージ名            1:1.0.2k-21.el7_9  ←バージョン       @updates ←状況
Available Packages
openssl.x86_64                               1:1.0.2k-24.el7_9                    updates 
[root@i-host centos]# 

多くの情報が表示されるので、moreコマンドやlessコマンドにパイプしページ単位で見ていくとよいでしょう

yum list | more

インストール済みのパッケージを表示

listにinstalledを付加することでインストール済みのパッケージのみ表示できます。

yum list installed

実行結果

[root@i-host work]# yum list installed
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Installed Packages
GeoIP.x86_64                        1.5.0-14.el7                             @base              
PyYAML.x86_64                       3.10-11.el7                              installed          
acl.x86_64                          2.2.51-15.el7                            @base              
acpid.x86_64                        2.0.19-9.el7                             @base              
alsa-lib.x86_64                     1.1.8-1.el7                              @base              
・
・
・
    

パッケージを検索する

パッケージをインストールする時に正式なパッケージ名称が解らないときに、キーワードにより検索することができます。

「Packager」「Summary」「Description」のフィールドを対象に検索を行います。

yum search キーワード

実行結果

[root@i-host centos]# yum search samba
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
====================================== N/S matched: samba ======================================
centos-release-samba411.noarch : Samba 4.11 packages from the CentOS Storage SIG repository
kdenetwork-fileshare-samba.x86_64 : Share files via samba
pcp-pmda-samba.x86_64 : Performance Co-Pilot (PCP) metrics for Samba
php-pear-Auth-samba.noarch : Samba support for php-pear-Auth
samba-client.x86_64 : Samba client programs
samba-client-libs.i686 : Samba client libraries
・
・
・
smbldap-tools.noarch : User and group administration tools for Samba/OpenLDAP

  Name and summary matches only, use "search all" for everything.
    

パッケージの概要を表示する

listにinstalledを付加することでインストール済みのパッケージのみ表示できます。

yum info パッケージ名

実行結果

[root@i-host centos]# yum info samba
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
Available Packages
Name        : samba
Arch        : x86_64
Version     : 4.10.16
Release     : 18.el7_9
Size        : 720 k
Repo        : updates/7/x86_64
Summary     : Server and Client software to interoperate with Windows machines
URL         : http://www.samba.org/
License     : GPLv3+ and LGPLv3+
Description : Samba is the standard Windows interoperability suite of programs for Linux and
            : Unix.
    

yum infoコマンドにより表示される情報

Nameパッケージ名Repo状態
Arch対応アーキテクチャSummary概要
VersionバージョンURL提供サイトのURL
Releaseリリーズ番号Licenseライセンス
Size容量Description説明

リポジトリをクリアする

パッケージのアップデート途中で処理が中断してしまった場合、再度アップデートしてもエラートなってアップデートできない場合は、リポジトリをクリアすることでアップデートが可能となります。

すべてのリポジトリをクリア

yum clean all
yum clean headers
yum clean packages
yum clean metadata
yum clean dbcache
yum clean plugins
yum clean expire-cache

headers(ヘッダ)、packages(パッケージ)、metadata(メタデータ)、dbcache(データベースキャッシュ)、plugins(プラグイン)、expire-cache(期限切れキャッシュ)、all(すべて)のいずれかを指定して実行します。

実行結果

[root@i-host centos]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base epel extras mysql-connectors-community mysql-tools-community mysql57-community remi-safe
              : updates
Cleaning up list of fastest mirrors
Other repos take up 21 M of disk space (use --verbose for details)

アップデートが途中で中断してしまう1つの理由として、リモートリポジトリへの接続が不安定な可能性もあるので、その場合は接続サイトを変更することでエラーを防止することができます。

高速なミラーサイトを自動選択する

ミラーサイトが混雑している場合、回線の帯域が細いなどでファイルのダウンロードが遅い場合があります。その場合は、yumのプラグインをインストールすることで自動的に高速なミラーサイトを選択してくれます。

べてのリポジトリをクリア

yum install yum-fastestmirror #CentOS5
yum install yum-plugin-fastestmirror #CentOS4.4

「yum-plugin-fastestmirror」は、/etc/yum.confにplugins=1を追記します。

不要なパッケージを抽出

システムインストール時に自動的にインストールされたものや依存関係の解決のために自動的にインストールされた不要なファイルを抽出します。

※「yum-utils」がインストールされている必要があります。

package-cleanup --leavesnstall

実行結果

[root@i-host centos]# package-cleanup --leaves
Loaded plugins: fastestmirror
libndp-1.2-9.el7.x86_64
libsysfs-2.1.0-16.el7.x86_64
[root@i-host centos]# 

パッケージファイルのダウンロードだけする方法

パッケージのダウンロードとインストールを行うコマンドですが、パッケージのダウンロードだけすることもできます。「yum-downloadonly」プラグインをインストールします。

yum install yum-downloadonly -y

「/etc/yum/pluginconf.d/downloadonly.conf」に以下の記述をします。

[main]
enabled=1

RHEL注意点

RHELで実行する場合は、管理者にスィッチしてシェル変数を「C」セットしないとRHN(Red Hat Network)のリポジトリリストにアクセスできないため表示が異なるかも?

[centos@i-host work]$ su 
Password: 
[root@i-host work]# LANG=C
[root@i-host work]# yum search ssh