Linux

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

更新日:

CentOSの標準のdnf(yum)リポジトリは古いパッケージ、良く言えば枯れたパッケージを提供していることが多いです。

しかし、もっと新しいパッケージやCentOS標準のリポジトリでは提供されていないパッケージをdnf(yum)でインストールしたい場合もあるでしょう。例えば、最新のPerlやPHPのバージョンを使いたい場合などです。

そういうときは、サードパーティが提供するリポジトリを追加して利用します。この記事では、EPELとRemiというメジャーなサードパーディのリポジトリをCentOSに追加する方法を紹介します。

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

EPELリポジトリは、Red Hat Enterprise Linux (RHEL) やその互換ディストリビューションのために、Fedoraの先進的なパッケージを配布しているリポジトリです。

RemiはRemi Colletがメンテナンスするリポジトリです。PHPやMySQLなどの最新パッケージに強いのが特徴です。

ただし、これらが提供するのはあくまでもサードパーティのパッケージです。CentOSのサポートやパッケージのトラブルついては注意する必要があります。

リポジトリを追加する

リポジトリを追加するにはパッケージをインストールだけです。ここではEPEL、Remiリポジトリのインストール方法を説明します。

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

EPELリポジトリを利用するには、CentOSの標準リポジトリからepel-releaseパッケージをインストールするだけです。

# dnf install epel-release

CentOS7、CentOS6ではyumでインストールします。

# yum install epel-release

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

Remiリポジトリはrpmをインストールします。インストールするrpmはCentOSのバージョンによって異なります。

CentOS8ではdnfコマンドでインストールします。

・CentOS8
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

CentOS7やCentOS6では、yumでインストールできます。

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

・CentOS6
# yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm

これらは、上述のepel-releaseパッケージがインストールされていなければ、一緒にインストールされます。

リポジトリを無効化する

EPELやRemiのリポジトリは、追加した時点で有効になっています。 有効のままだと、意図せずこれらのリポジトリからパッケージをインストールしてしまうかもしれません。 そのため通常はこれらのリポジトリを無効化しておくことをおすすめします。

無効化しておいても、dfn(yum)コマンドでパッケージをインストールするときに、引数で有効化することができますので、使い勝手はあまり心配いりません。

リポジトリを確認する

まずは、現在有効なリポジトリを確認してみましょう。それには次のように実行します。

# dnf repolist
repo id              repo name
appstream            CentOS Linux 8 - AppStream
baseos               CentOS Linux 8 - BaseOS
epel                 Extra Packages for Enterprise Linux 8 - x86_64
epel-modular         Extra Packages for Enterprise Linux Modular 8 - x86_64
extras               CentOS Linux 8 - Extras
remi-modular         Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe            Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

すると有効なCentOS標準のリポジトリ、EPELレポジトリ、Remiリポジトリ表示されます。

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

# dnf repolist all

EPEL、Remiのリポジトリを無効化する

リポジトリを無効化したい場合、dnf config-managerを利用するのが簡単です。

# dnf config-manager --disable epel epel-modular remi-modular remi-safe

yumコマンドでは次のように実行します。

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

無効化したら前述したコマンドで有効なリポジトリの確認してみましょう。無効化したリポジトリは表示されなくなっているはずです。

参考:設定ファイルを直接編集してリポジトリを無効化する

dnf(yum)リポジトリの設定ファイルを直接編集して無効化することもできます。

dnf(yum)リポジトリの設定ファイルは/etc/yum.repos.d/以下にあります。dnfに変わっても設定ファイルの場所は変わっていません。EPELとRemiのファイルはそれぞれepel、remiで始まるファイルです。

ファイルの中はいくつかのセクションが記述されており、「repo id 」を [ と ] で囲んだ部分がセクションの開始です。このセクションの各々がサブリポジトリの設定になります。

有効なサブリポジトリには「enabled=1」という行が見つかるはずです。これを全て「enabled=0」に変更します。

次のコマンドで「enabled=1」の記述があるファイルを探すのが簡単です。

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

対象のファイルが見つかったら、viなどで「enabled=1」を「enabled=0」に修正します。

無効化したリポジトリからパッケージをインストールする方法

epelとremiリポジトリを無効化しましたが、dnf(yum)コマンドの--enablerepoオプションを使えば、 コマンドの実行時だけ指定したリポジトリを有効化することができます。

反対に特定のリポジトリを無効化したければ --disablerepo オプションを使います。

試しに先ほど無効化リポジトリのいくつかを有効化して表示してみましょう。複数のリポジトリを指定するときはカンマで区切ります。

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

epelとremi-safeリポジトリが有効になっていることがわかるでしょう。

次の例はCentOS8でPHP7.4をインストールする例です。

# dnf --enablerepo=remi-safe install php74

なお、CentOS7では、PHPのバージョンごとにremi-php74などの名前のリポジトリになっていました。次の例はCentOS7にPHP7.4をインストールする例です。

# yum --enablerepo=remi-php74 install php

おしまい

-Linux
-,

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