CentOSなどで使う、EPELってなんだ？

# TL;DR

* EPELは、Extra Packages for Enterprise Linuxの略
* エンタープライズLinux用の高品質な追加パッケージセットが含まれている
* Red Hat Enterprise Linux、CentOS、Scientific Linux、Oracle Linuxなどでの利用に限定されるものではない
* 使う場合は自己責任で


# CentOSに関するリポジトリ

CentOSおよび、サードパーティ製のリポジトリに関する一覧は、こちらのページに記載があります（完全なリストではないようですが）。

[Available Repositories for CentOS](https://wiki.centos.org/AdditionalResources/Repositories)

大きく、CentOSが提供するリポジトリと、サードパーティ製のリポジトリがあり、EPELはサードパーティ製のリポジトリに該当します。

サードパーティ製のリポジトリに関する注意点は、こちらです。

>  WARNING: These repositories are not provided nor supported by CentOS. The CentOS project has no control over these sites. Many have their own mailing lists, IRC channels, issue trackers, etc. for support issues with their packages.

CentOSのサポート対象外ということです。要するに、利用は自己責任で、と。


# EPELとは

EPEL（Extra Packages for Enterprise Linux）に関するページは、こちら。

[Extra Packages for Enterprise Linux (EPEL)](https://fedoraproject.org/wiki/EPEL)

エンタープライズLinux用の、高品質な追加パッケージが提供されると謳われています。

> Extra Packages for Enterprise Linux (or EPEL) is a Fedora Special Interest Group that creates, maintains, and manages a high quality set of additional packages for Enterprise Linux, including, but not limited to, Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux (SL), Oracle Linux (OL). 

標準のリポジトリでは提供されないパッケージを使うことができますが、利用に関してはCentOSのサードパーティ製のリポジトリに関する記述を考えると、自己責任、ということになります。

Aboutページ、FAQページも見ておくとよいでしょう。

[About EPEL](https://fedoraproject.org/wiki/About_EPEL)

[EPEL/FAQ](https://fedoraproject.org/wiki/EPEL/FAQ)

特にRed Hat社からサポートがあるわけでもない旨が書かれていたりします。

> Is EPEL commercially supported by Red Hat?

> No. EPEL is a volunteer effort from the Fedora community. Just like Fedora itself, Red Hat hosts infrastructure for this project and Red Hat engineers are involved as maintainers and leaders but there are no commercial support contracts or service level agreements provided by Red Hat for packages in EPEL. 


# EPELを使う

というわけで、利用に関しては自身の判断で、ということにはなりますが、EPELを使いたい場合の確認をしてみましょう。

確認した環境は、こちら。

```shell
$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)
```

CentOS 7.6です。

EPELを有効にするには、以下のコマンドを実行します。

```shell
$ sudo yum --enablerepo=extras install epel-release

### "--enablerepo=extras"なくても良かった
$ sudo yum install epel-release
```

この状態で、EPELはすでに使用可能になっています。

例えば、RedisをEPELからインストール。

```shell
$ sudo yum install redis
```

できる限り標準のリポジトリからパッケージを使い、EPELを指定した時しか使用したくない方針とする場合は、

`/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

...

# 省略
```

`enabled`を`0`にします。

```shell
[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=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

...
```

すると、今回の場合、EPEL指定なしではRedisがインストールできなくなります。

```shell
$ sudo yum install redis
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
No package redis available.
Error: Nothing to do
```

この状態でEPELを使う場合は、`--enablerepo=epel`と指定しましょう。

```shell
$ sudo yum --enablerepo=epel install redis
```