====== yumコマンド ====== Version CentOS 7.2 --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-29// [[centos:top|CentOS パッケージ管理に戻る]] yum は rpm パッケージを対象とした RHEL や CentOS などで標準として採用されているパッケージ管理システムです。もともとは、Fedoraの前身である ''[[https://ja.wikipedia.org/wiki/Yellow_Dog_Linux|Yellow Dog Linux]]'' で開発されたツールです。yum の名前の用来は、この Yellowdog から来ており、''Yellowdog Updater Modified'' の略称です。 RPMがパッケージ単体を管理しているのに対して、yum は RPMパッケージの依存関係などの情報を保持した統合的管理運用システムです。yum は RHEL系のソフトウェアですが、Debian系(Ubuntu,Raspbianなど)でいうところの APT と同じ位置づけになり、パッケージのインストール、アップデート、検索、削除、情報表示などができます。 CentOS7のパッケージ管理全般についてもう少し知りたい場合は、本章の前に [[centos:package|CentOS パッケージ管理の基礎知識]] をご覧ください。 関連記事 * [[centos:package|CentOS パッケージ管理の基礎知識]] * yum --- パッケージ管理システム * [[centos:systemctl|systemctl --- サービスの操作]] * [[centos:journalctl|journalctl --- ログの操作]] * [[centos:firewall-cmd|firewall-cmd --- ファイアウォールの操作]] リンク * [[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-yum|Red Hat Customer Portal]] --- YUM パッケージの確認と更新 * [[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-configuring_yum_and_yum_repositories|Red Hat Customer Portal]] --- YUM と YUM リポジトリーの設定 ---- ===== yumの設定ファイル ===== yum全般の設定ファイルは以下にあります。
[ius]
name=IUS Community Packages for Enterprise Linux 7 - $basearch
#baseurl=https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/$basearch
mirrorlist=https://mirrors.iuscommunity.org/mirrorlist?repo=ius-centos7&arch=$basearch&protocol=http
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
...
^項目^内容^
|[ID]|リポジトリのID|
|name|リポジトリの名前|
|baseurl|リポジトリへのパス|
|mirrorlist|baseurl相当のURLを複数記述する\\ 通常、baseurlよりもこちらが記述されている場合が多い|
|enabled|yumコマンド使用時にこのリポジトリを使用する(1)か否(0)かの設定\\ 詳細は[[#リポジトリの有効化/無効化|リポジトリの有効化/無効化]]を参照|
|gpgcheck|パッケージにGPG署名確認を実行する(1:Default)か否(0)かの設定|
|gpgkey|リポジトリのGPG署名ファイルを指定|
==== リポジトリの有効化/無効化 ====
複数のリポジトリを使用していると、同じパッケージが複数のリポジトリから提供されていることも少なくありません。この状況は必ずしも良いものではありません。不用意に ''yum install'' を実行してしまうと目的のリポジトリでない方からパッケージがインストールされてしますからです。従って yum の運用では、既定のリポジトリを設け、それ以外の利用を普段は無効化しておくことをお薦めします。無効化したリポジトリでも、明示的にyumコマンドで有効なリポジトリとして指定することができるので、不便を感じることは少ないと思います。
リポジトリを無効化する方法は、リポジトリ設定ファイルの項で述べたように、''.repo'' ファイルで ''enabled=0'' と設定します。
[ius]
...
enabled=0
...
無効化されたリポジトリを yumで一時的に有効にする場合は、下例のようにオプション ''--enablerepo REPOSITORY_ID'' を付けて yum を実行します。
yum --enablerepo=ius search git2
\\
===== ユースケース =====
==== 一覧・検索 ====
{{fa>question-circle}}リポジトリの一覧
yum perolist # 有効なリポジトリ
yum perolist all # 全てのリポジトリ
{{fa>question-circle}}パッケージの一覧
yum list # インストール済み/可能
yum list installed # インストール済み
yum list updates # アップデート可能
yum list available # インストール可能
{{fa>question-circle}}パッケージの情報表示
yum info PACKAGE_NAME
{{fa>question-circle}}パッケージの検索
yum search PATTERN # 検索文字列を指定可
==== 導入・更新・削除 ====
{{fa>question-circle}}パッケージのインストール
yum install PACKAGE_NAME
{{fa>question-circle}}パッケージのアップデートチェック
yum check-update # 全てのインストール済みパッケージ
yum check-update PACKAGE_NAME # 指定したパッケージ
{{fa>question-circle}}パッケージのアップデート
yum update # 全てのインストール済みパッケージ
yum update PACKAGE_NAME # 指定したパッケージ
{{fa>question-circle}}パッケージの削除
yum remove PACKAGE_NAME
\\
===== EPELリポジトリの登録 =====
最初に、EPEL を yum に登録します。EPEL は [[https://fedoraproject.org/wiki/About_EPEL/ja|EPELの目的]] にもあるように CentOSの公式リポジトリの拡張と思われるので(これは筆者の考えです)、常に有効化して yum を運用することにしています。
''yum repolist'' で、現在有効なリポジトリの一覧を表示します。
yum repolist
...
リポジトリー ID リポジトリー名 状態
!base/7/x86_64 CentOS-7 - Base 9,007
!extras/7/x86_64 CentOS-7 - Extras 392
!updates/7/x86_64 CentOS-7 - Updates 2,507
repolist: 11,906
''yum install'' で、EPELリポジトリを yum に登録します。
yum install epel-release
yum repolist
...
リポジトリー ID リポジトリー名 状態
base/7/x86_64 CentOS-7 - Base 10,070
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,300
extras/7/x86_64 CentOS-7 - Extras 397
updates/7/x86_64 CentOS-7 - Updates 671
repolist: 24,438
\\
===== RemiによるPHP7.3の導入 =====
Remi リポジトリは最新版を含め各種PHPの蓄積場なので是非とも追加しておきたいリポジトリです。Remi リポジトリは登録が終わったら無効化しておき、必要に応じて yumコマンドで有効化することにします。
Remi から PHP7.3 をインストール手順を以下に示します。Remi では EPEL を使用するので、先に[[#EPELリポジトリの登録|EPELリポジトリの登録]]を済ませて下さい。
> ここではPHPがまだインストールされていないものとして説明します。既にPHPがインストールされている環境では、古いPHPを ''yum remove php php-*'' で削除することができます。
=== 1. PHPのインストール状況の確認 ===
''yum list'' でPHPのインストール状況を調べます。
yum list php
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* epel: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* updates: ftp.yz.yamagata-u.ac.jp
利用可能なパッケージ
php.x86_64 5.4.16-48.el7 base
PHPはインストールされておらず、PHP5は公式リポジトリ(base)からインストール可能ですが、PHP7はありません。
=== 2. Remi リポジトリの登録 ===
''yum install'' で、Remi リポジトリを yum に登録します。
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum repolist all | grep remi
...
remi Remi's RPM repository for Enterpri 無効
remi-php54 Remi's PHP 5.4 RPM repository for 無効
remi-php55 Remi's PHP 5.5 RPM repository for 無効
remi-php56 Remi's PHP 5.6 RPM repository for 無効
remi-php70 Remi's PHP 7.0 RPM repository for 無効
remi-php71 Remi's PHP 7.1 RPM repository for 無効
remi-php72 Remi's PHP 7.2 RPM repository for 無効
remi-php73 Remi's PHP 7.3 RPM repository for 無効
remi-php74 Remi's PHP 7.4 RPM repository for 無効
remi-safe Safe Remi's RPM repository for Ent 有効: 3,805
remi-test Remi's test RPM repository for Ent 無効
...
上の表示例は、抜粋ですが、多くのPHPがバージョン毎にリポジトリ化されているのが分かります。有効になっているのは remi-safe だけです。この状態でも、php7.4のインストールはできますが、PHPのバージョンを指定する方が分かり易いので、yum コマンドで、PHPバージョン毎のリポジトリを指定してインストールすることにします。
=== 3. Remi リポジトリの無効化 ===
/etc/yum.repos.d/emi-safe.repo を編集してremi-safeリポジトリを無効化します。
cd /etc/yum.repos.d/
vi remi-safe.repo
''[remi-safe]'' の ''enabled=0'' と設定します。
[remi-safe]
...
enabled=0
...
''yum repolist'' で remi が無効になっているかを確認して下さい。
=== 4. PHP7.3のインストール ===
最初に ''yum install'' でPHP7.3の本体をインストールします。使用するリポジトリは remi-php74です。
yum install --enablerepo=remi,remi-php73 php
>リポジトリしては ''remi'' と ''remi-php73'' の2つを指定しました。バージョン共通のパッケージが remi には含まれているようです。
yum install --enablerepo=remi,remi-php73 php-devel php-mbstring php-pdo php-gd php-mysqlnd
現在のPHPバージョンを確認します。
php -v
PHP 7.3.18 (cli) (built: May 12 2020 08:04:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
\\
===== IUSによるgit2の導入 =====
IUS リポジトリは python や git の最新版をインストールする場合に必要になります。IUS リポジトリは登録が終わったら無効化しておき、必要に応じて yumコマンドで有効化することにします。
IUS から git2.x をインストール手順を以下に示します。IUS では EPEL を使用するので、先に[[#EPELリポジトリの登録|EPELリポジトリの登録]]を済ませて下さい。
=== 1. gitのインストール状況の確認 ===
''yum list'' でgitのインストール状況を調べます。
yum list git*
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* epel: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* updates: ftp.yz.yamagata-u.ac.jp
インストール済みパッケージ
git.x86_64 1.8.3.1-6.el7_2.1 @updates
利用可能なパッケージ
GitPython.noarch 1.0.1-8.el7 epel
git.x86_64 1.8.3.1-22.el7_8 updates
git-all.noarch 1.8.3.1-22.el7_8 updates
git-annex.x86_64 5.20140221-1.2.el7 epel
...
git1.8がインストールされているようです。
=== 2. git1.xの削除 ===
''yum remove'' で、インストール済のgit1.8を削除します。
yum remove git
yum install https://repo.ius.io/ius-release-el7.rpm
yum repolist all | grep ius
ius/x86_64 IUS for Enterprise Linux 7 - x86_6 有効: 609
ius-archive/x86_64 IUS for Enterprise Linux 7 - Archi 無効
ius-archive-debuginfo/x86_64 IUS for Enterprise Linux 7 - Archi 無効
ius-archive-source IUS for Enterprise Linux 7 - Archi 無効
ius-debuginfo/x86_64 IUS for Enterprise Linux 7 - x86_6 無効
ius-source IUS for Enterprise Linux 7 - Sourc 無効
ius-testing/x86_64 IUS for Enterprise Linux 7 - Testi 無効
ius-testing-debuginfo/x86_64 IUS for Enterprise Linux 7 - Testi 無効
ius-testing-source IUS for Enterprise Linux 7 - Testi 無効
=== 4. IUS リポジトリの無効化 ===
/etc/yum.repos.d/ius.repo を編集してiusリポジトリを無効化します。
cd /etc/yum.repos.d/
vi ius.repo
''[ius]'' を ''enabled = 0'' と設定します。
[remi-safe]
...
enabled = 0
...
''yum repolist'' で ius が無効になっているかを確認して下さい。
=== 4. gitのインストール ===
''yum search'' でGit2.xのパッケージ名を調べます。
yum search --enablerepo=ius git2
...
git222.x86_64 : Fast Version Control System
git222-all.noarch : Meta-package to pull in all git tools
git222-core.x86_64 : Core package of git with minimal functionality
...
git224.x86_64 : Fast Version Control System
git224-all.noarch : Meta-package to pull in all git tools
git224-core.x86_64 : Core package of git with minimal functionality
...
上の表示例は、抜粋ですが、git2.22 と git2.24 があることが分かります。
''yum install'' でGit2.24をインストールします。
yum install --enablerepo=ius git224
git --version
git version 2.24.2
\\