Linux

CentOSにEPELとRemiのyumリポジトリを追加する

更新日:

CentOSの標準のyumリポジトリは、古いパッケージ(良く言えば枯れたパッケージ)を提供していることが多いです。 しかし、もっと新しいパッケージやCentOS標準のリポジトリでは提供されていないパッケージをyumでインストールしたい場合もあるでしょう。 例えば、最新のPerlやPHPのバージョンを使いたいといった場合などです。 そういった場合はサードパーティが提供するリポジトリを利用します。

この記事ではサードパーディのリポジトリであるEPELとRemiのyumリポジトリをCentOSに追加する方法を紹介します。 しかし、これらが提供するのはサードパーティのパッケージですので、CentOSのサポートやパッケージのトラブルついては考慮しておく必要があるでしょう。

EPELリポジトリとRemiリポジトリとは

EPELリポジトリは、Red Hat Enterprise Linux (RHEL) やその互換ディストリビューションのために、 Fedoraの先進的なパッケージを配布しているリポジトリです。 RemiはRemi Colletがメンテナンスするリポジトリです。PHPやMySQLなどの最新パッケージに強いのが特徴です。

EPELリポジトリのインストール

EPELリポジトリを利用するにはepel-releaseパッケージをインストールします。 CentOS6.x系、CentOS7.x系の場合は、CentOS標準リポジトリからyumで簡単にインストールできます。

CentOS6.x系、CentOS7.x系
# yum install epel-release

Remiリポジトリのインストール

RemiリポジトリもEPEL同様に、rpmパッケージをインストールします。 なお、Remiリポジトリをインストールするには、epel-releaseパッケージもインストールされている必要がありますので、 先にepel-releaseパッケージをインストールしておいてください。

インストールするパッケージはCentOSのバージョンによって異なります。 ここではネットから直接インストールする手順を紹介します。

・CentOS6.x系
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm

・CentOS7系
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

リポジトリを設定する

インストールした直後はepelとremiの(サブ)リポジトリは有効になっています。 有効のままにしておくと、これらのリポジトリから意図せずパッケージをインストールしてしまうかもしれません。 普段はCentOS標準のリポジトリだけを利用したいので、 間違いを犯さないために、これらのリポジトリは無効化しておきます。 ここでは無効化する方法の説明をします。

リポジトリを確認する

現在有効なリポジトリを確認するには次のように実行します。

# yum repolist
...
repo id                                          repo name                                                                                   status
base/7/x86_64                                    CentOS-7 - Base                                                                             10,097
epel/x86_64                                      Extra Packages for Enterprise Linux 7 - x86_64                                              13,228
extras/7/x86_64                                  CentOS-7 - Extras                                                                              341
remi-safe                                        Safe Remi's RPM repository for Enterprise Linux 7 - x86_64                                   3,693
updates/7/x86_64                                 CentOS-7 - Updates                                                                           1,787
repolist: 29,146

base、extras、updatesはCentOS標準のリポジトリです。 epel、remi-safeも有効になっているのが分かります。

全てのリポジトリを一覧表示するにはallをつけて実行します。 これにはstatusにリポジトリが有効か無効かどうかも示されます。

# yum repolist all

epel、remiのリポジトリを無効化する

yum-config-managerがサポートされているなら、次のように無効化したいリポジトリを指定して実行するのが簡単です。

# yum-config-manager --disable epel remi-safe

yumリポジトリの設定ファイルを直接編集して無効化することもできます。 yumリポジトリの設定ファイルは/etc/yum.repos.d/以下にあります。 EPELとRemiのファイルはそれぞれepel、remiで始まるファイルです。

ファイルの中を確認すると[と]で囲まれた部分で始まるセクションがあると思います。 このセクションの各々がサブリポジトリの設定になります。 有効なサブリポジトリには「enabled=1」という行が見つかるはずです。これを全て「enabled=0」に変更します。 次のコマンドを実行すれば「enabled=1」の記述があるファイルが見つかります。

# grep enabled=1 /etc/yum.repos.d/*

ファイルの中身は次のような感じです。 「enabled=1」の記述を「enabled=0」に修正します。

# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
...

いずれかの方法で無効化したら最後にもう一度有効なリポジトリの確認をします。 無効化したリポジトリは表示されなくなっているはずです。

# yum repolist

epel、remiリポジトリからパッケージをインストールする

epelとremiリポジトリを無効化しましたが、 yumコマンドの--enablerepoオプションを使えば、 コマンドの実行時だけ任意のリポジトリを有効にすることができます。 --enablerepoには「yum repolist all」で表示されるリポジトリ名を指定します。

次の例はepelとremiリポジトリを有効化して、有効なリポジトリを一覧表示しています。 リポジトリを複数指定する場合はカンマで区切って指定します。

# yum --enablerepo=epel,remi-safe repolist

epelとremi-safeリポジトリが有効になっていることがわかるでしょう。 次の例は、remi-php71リポジトリを有効にしてPHPのバージョン7.1をインストールする例です。

# yum --enablerepo=remi-php71 install php

おしまい

-Linux
-,

Copyright© アナグマのモノローグ , 2021 All Rights Reserved Powered by STINGER.