先日CentOSでLAMP環境を構築する機会があったのですが、サードパーティのyumレポジトリは使用したくないため、いろいろ探してみたところ、Software Collections(SCL)というCentOSの公式レポジトリ(要追加)があることがわかりました。結構新しいバージョンのphpやhttpd,mysql(mariadb)が配布されているため、手っ取り早く環境を構築したい人はおすすめです。
本記事では、EPELやRemiなどその他の主だったyumレポジトリと比較してSoftwareCollectionsの位置づけと概要をまとめてみたいと思います。
EPEL
EPELとはExtra Packages for Enterprise Linuxの略で、Fedoraの有志が作成、メンテナンスしているRed Hat Enterprise LinuxやCentOSでも使えるパッケージレポジトリのことです。
Red Hat Enterprise Linux (RHEL) 向けの高品質なアドオンパッケージであり、CentOS や Scientific Linux (SL) のような RHEL からスピンオフしたディストリビューションと互換性のある、Fedora プロジェクトで有志によって作成されたパッケージになります。
御存知の通りFedoraは先進的・実験的なLinuxのディストリビューションとなっており、ここでテスト・検証されて品質を高めたものが商用であるRed Hat Enterprise Linux(RHEL)に取り込まれることになります。
CentOSは概ねRHELをオープンソース化したものですので、CentOSはEPELのパッケージを利用することができます。ただし、Red Hatが公式に管理しているわけではなく、品質が保証されているわけでもありませんので、利用には注意が必要です(特に会社で利用できるレポジトリ・パッケージが定められている場合)。
使用するには下記のコマンドを実行してepel-releaseをインストールします。
yum install epel-release
参考
Remi
Remiレポジトリは様々なバージョンのphpのパッケージを配布しているレポジトリで、Fedoraのプロジェクトコントリビューターであり、後述するCentOS SCLのSIGのメンバーでもあるRemi Colletさんによって運営されています。
公式サイトによると、Remiレポジトリの役割として以下のことが挙げられています。
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
だそうです。
現在提供されているphpのバージョン
- 7.2.3
- 7.1.15
- 7.0.28
- 5.6.34
- 5.5.38
- 5.4.45
インストール方法
レポジトリの設定方法のページを読めば分かりますが、こちらの設定ウィザードを見たほうが分かりやすいと思います。利用しているOS(例えばCentOS6)、インストールしたいphpのバージョン、インストール方法(single version/multiple version simultaneously)を選択すると、インストールのための手順を表示してくれます。
例えばCentOS 7にphp-7.2.3をsingleでインストールしたい場合は、こんなふうにインストールするようです。
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils
yum-config-manager --enable remi-php72
yum update
yum install php-xxx
上記の通り、Remiを使うためにはEPELもインストールする必要があるので注意が必要です。
また、公式レポジトリのパッケージを上書きしてしまう可能性もあるのでこちらも注意が必要です(remi-safeというレポジトリからインストールする場合は、上書きは発生しないようです)。
Software Collections(SCL)
Software Collections(SoftwareCollections.org)はRed Hat Enterprise Linux, Fedora, CentOSで最新のバージョンの言語やRDBMSなどのミドルウェアのパッケージを集めたプロジェクトです。RHEL(とCentOS)の公式レポジトリがだいぶ古くなっていて不便なので、SCLのコミュニティが管理・運営をして新しめのパッケージを配布してくれています。
https://www.softwarecollections.org/en/about/
そのうちCentOSの公式のSCLチームが提供しているパッケージは基本的にSCLのなかでもcentos-release-sclというレポジトリで配布されています。これはCentOSとしてはサードパーティではなくAdditional CentOS Provided Repositoriesとして配布されているので、公式レポジトリの一部として利用できそうです。
https://wiki.centos.org/AdditionalResources/Repositories
また、SoftwareCollections.orgのサイトからもSCLのパッケージを検索することができます。各パッケージごとのインストール方法などの説明もあるため、便利です。ただし、サードパーティのパッケージも含まれているので利用には注意が必要です。
余談ですが、SoftwareCollections.orgにはRedHatのSCLチーム(RHSCL)が提供しているパッケージもあり、CentOSのSCLチームが配布しているパッケージと同名ものがあります。詳細は各パッケージのインストール方法を見れば分かるのですが、CentOSでのインストール方法とRHELでのインストール方法が分かれています。
なお上述のRemiさんここにもいました。赤い帽子(Red Hat!)がステキ。
提供しているphpのバージョン
こちらを確認する限り、以下のバージョンが公開されているのを確認できます。
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
今現在では7.2はまだ公開されていないですね。それ以外はRemiで提供されているものは全てこちらでカバーできています。きっとRemiさんはこっちでも頑張ってくれているんだと思います。
と思ったらやはりこちらにいらっしゃいました。唐突すぎる写真にびっくり。
インストール方法
yum --enablerepo=extras install centos-release-scl
php7.1をインストールする場合
sudo yum install centos-release-scl #上記と同様
sudo yum install rh-php71
scl enable rh-php71 bash
なお、最後の scl enable rh-php71 bash
はsclからインストールしたパッケージを、CentOSのシステム内部のパスに登録するコマンドのようです。詳しくは次回解説したいと思います。
参考
https://wiki.centos.org/AdditionalResources/Repositories
https://wiki.centos.org/AdditionalResources/Repositories/SCL
まとめ
ということでEPEL, Remi, SoftwareCollections(SCL)の3つのレポジトリについてそれぞれの特徴を見てきました。
一部Remiさんの追っかけ記事みたいになっちゃいましたが、ご参考になれば幸いです。