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

# TL;DR

* Remi Repositoryとは、Remi Colletという方がメンテナンスしているリポジトリ
* 最新のPHPなどを利用することができる
* 使う場合は自己責任で


# CentOSに関するリポジトリ

前に書いたので、[こちら](https://qiita.com/charon/items/f5732694515d174851b3#centos%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA)を参照。


# Remi Repositoryとは

[Remi Repository](http://rpms.remirepo.net/)は、[Remi Collect](https://github.com/remicollet)氏がメンテナンスされているリポジトリで、FAQによると、以下を目的としたリポジトリです。

> Providing the  latest versions of the PHP stack, full featured, and some other software, to the Fedora and Enterprise Linux (RHEL, CentOS, Oracle, Scientific Linux, ...) users. It mainly contains :
>
>  ・packages I also maintains in Fedora
>  ・backports of packages available in Fedora development version
>  ・some packages incompatible with Fedora policy
>  ・some packages in progress before being submitted to Fedora repository
>  ・(nearly) vanilla versions

>    This is quite away from backporting fixes policy of Enterprise Linux.

[Which are the goals of this repository ?](https://blog.remirepo.net/pages/English-FAQ#goal)

最新のPHPスタックが使え、その他のソフトウェアを、できる限りvanillaな（そのままの）バージョンのまま利用できるようにしています、と。

サポートというか、ご本人に質問、コメントしたりはできるようです。

[Where to ask ? How to contact Remi ?](https://blog.remirepo.net/pages/English-FAQ#contact)

が、基本は利用にあたっては自己責任で、ですね。


# Remi Repositoryを使用可能にする

では、Remi Repositoryを使えるように設定してみましょう。

今回試した環境は、こちらです。

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

Remi Repositoryの導入手順は、以下を参考にすればOKです。

[Repository Configuration](https://blog.remirepo.net/pages/Config-en)

まず、前提としてEPELが必要なので、EPELリポジトリを追加します。

```shell
$ sudo yum install epel-release
```

今回は、EPELは`enabled`のままとします。

続いて、Remi Repositoryを追加します。

```shell
$ sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
```

いろんなリポジトリが追加されます。

```shell
$ ll /etc/yum.repos.d/remi*
-rw-r--r--. 1 root root  446  9月  6 06:31 /etc/yum.repos.d/remi-glpi91.repo
-rw-r--r--. 1 root root  446  9月  6 06:31 /etc/yum.repos.d/remi-glpi92.repo
-rw-r--r--. 1 root root  446  9月  6 06:31 /etc/yum.repos.d/remi-glpi93.repo
-rw-r--r--. 1 root root  446  9月  6 06:31 /etc/yum.repos.d/remi-glpi94.repo
-rw-r--r--. 1 root root  855  9月  6 06:31 /etc/yum.repos.d/remi-modular.repo
-rw-r--r--. 1 root root  456  9月  6 06:31 /etc/yum.repos.d/remi-php54.repo
-rw-r--r--. 1 root root 1314  9月  6 06:31 /etc/yum.repos.d/remi-php70.repo
-rw-r--r--. 1 root root 1314  9月  6 06:31 /etc/yum.repos.d/remi-php71.repo
-rw-r--r--. 1 root root 1314  9月  6 06:31 /etc/yum.repos.d/remi-php72.repo
-rw-r--r--. 1 root root 1314  9月  6 06:31 /etc/yum.repos.d/remi-php73.repo
-rw-r--r--. 1 root root 1314  9月  6 06:31 /etc/yum.repos.d/remi-php74.repo
-rw-r--r--. 1 root root  750  9月  6 06:31 /etc/yum.repos.d/remi-safe.repo
-rw-r--r--. 1 root root 2605  9月  6 06:31 /etc/yum.repos.d/remi.repo
```

ちなみに、有効になっているのは`remi-safe`と呼ばれるものだけです。

```shell
$ grep enabled=1 /etc/yum.repos.d/remi*
/etc/yum.repos.d/remi-safe.repo:enabled=1
```

`remi-safe`というのは、OSのディストリビューションのパッケージを上書き／置き換えしないリポジトリです。EPELでも未提供のものが入っているようです。

[The "remi-safe" repository ?](https://blog.remirepo.net/pages/English-FAQ#safe)

ということは、それ以外のデフォルトで有効化されていないリポジトリは上書き／置き換えの可能性があると…。

確認してみましょう。`yum`でRedisのインストールを試みます。

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

EPELにあるものが候補としてリストアップされます。

```shell
=====================================================================================================================================================================
 Package                                 Arch                                  Version                                     Repository                           Size
=====================================================================================================================================================================
Installing:
 redis                                   x86_64                                3.2.12-2.el7                                epel                                544 k
Installing for dependencies:
 jemalloc                                x86_64                                3.6.0-1.el7                                 epel                                105 k

Transaction Summary
=====================================================================================================================================================================
Install  1 Package (+1 Dependent package)
```

バージョンがちょっと古いですね。

`remi`リポジトリを使用してみましょう。

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

`remi`リポジトリから、5系のRedisがリストアップされるようになります。

```shell
=====================================================================================================================================================================
 Package                             Arch                                 Version                                           Repository                          Size
=====================================================================================================================================================================
Installing:
 redis                               x86_64                               5.0.5-1.el7.remi                                  remi                               922 k

Transaction Summary
=====================================================================================================================================================================
Install  1 Package
```