====== 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全般の設定ファイルは以下にあります。
{{fa>file-o}} ''/etc/yum.conf''
ほとんど触る機会はないと思いますが、以下で説明する[[#リポジトリ設定ファイル|リポジトリ設定ファイル]]の既定値となる項目(例えば:''gpgcheck'' など)もあるので、一度目を通しておく方が良いかもしれません。 ==== リポジトリ設定ファイル ==== リポジトリに関する設定ファイルは、以下ようにリポジトリ毎にファイルに保存されています。
{{fa>file-o}} ''/etc/yum.repos.d/REPOSITORY_NAME.repo''
ius.repoの例でファイルの概要を説明します。 [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
インストールの途中で、インストールしても良いか確認される (''Is this ok [y/d/N]:'') ので ''y'' と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
''yum repolist'' で、再び有効なリポジトリの一覧を表示して EPEL の有効化を確認します。 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
インストールの途中で、インストールしても良いか確認される (''Is this ok [y/d/N]:'') ので ''y'' と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
''yum repolist'' で、インストールされた remi リポジトリの一覧を表示します。 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 には含まれているようです。
インストールの途中で、インストールしても良いか確認される (''Is this ok [y/d/N]:'') ので ''y'' と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
引き続いて、PHPモジュールをインストールします。 * php-devel --- TODO * php-mbstring --- 日本語を扱えるようにする * php-gd --- 画像を扱えるようにする * php-mysql --- MySQLとの連携を実現する * php-pdo --- PHPのPDOクラスを使用する 必要に応じて追加して下さい。 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
削除の途中で、削除しても良いか確認される (''上記の処理を行います。よろしいでしょうか? [y/N]:'') ので ''y'' と回答します。正常に削除されると最後に、完了のメッセージが表示されます。
=== 3. IUS リポジトリの登録 === ''yum install'' で、IUS リポジトリを yum に登録します。 yum install https://repo.ius.io/ius-release-el7.rpm
インストールの途中で、インストールしても良いか確認される (''Is this ok [y/d/N]:'') ので ''y'' と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
''yum repolist'' で、インストールされた iusリポジトリの一覧を表示します。 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
インストールの途中で、インストールしても良いか確認される (''Is this ok [y/d/N]:'') ので ''y'' と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。
現在のGitバージョンを確認します。 git --version git version 2.24.2 \\