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)」で答える |
-c | yumの設定ファイルを指定する(デフォルトは/etc/yum.conf) |
-R | タイムアウトを分単位で設定する |
コマンド
install パッケージ名・・・ | 指定したパッケージを依存関係のあるパッケージを含めてインストールする |
update [パッケージ名・・・] | 指定したパッケージのみアップデートするが、パッケージを指定しない場合は、 インストールされているすべてのパッケージのアップデートを行う |
check-update | アップデート候補をリストする |
list | 利用できるパッケージリスト表示する。以下のサブコマンドが利用可能 |
サブコマンド | 説明 |
---|---|
all | 利用可能(まだインストールされていない)パッケージとインストールされている パッケージすべてをリスト表示する |
available | yumリポジトリにあるインストールできるパッケージをリストする |
updates | アップデートできるパッケージをリストする |
installed | インストールされているパッケージリストする |
recent | 最近リポジトリに追加されたパッケージをリストする |
info [パッケージ名・・・] | 利用できるパッケージの情報をリストで表示する |
upgrade | インストールされているパッケージが廃止になっている場合、自信を置き換える obsoletesフラグが立つ。これにより、OSのメジャーアップデートにも対応する |
groups [グループ名・・・] | 複数RPMパッケージを集めたグループを一括で扱う |
install | 指定したグループをインストールする |
update | グループをアップデートする |
list | yumリポジトリファイルに存在するグループをリストで表示する |
remove | グループを削除する |
info | グループの情報や依存するグループ、インストールするパッケージを表示する |
search キーワード | 指定したキーワードをyumのデータベース内にあるパッケージ名、 discription、summaryから検索し、該当するパッケージを表示する |
remove/erase | 指定したパッケージをアンインストールする。依存関係があるパッケージに ついても問い合わせする |
clean | 使用済みのパッケージとヘッダファイルを削除する |
shell | yumシェルを起動する |
オプション
–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