CentOS/RHELにサードパーティリポジトリをインストール・設定する完全ガイド(EPEL、Remiなど)
リポジトリとは、Linux向けRPMソフトウェアパッケージの更新可能な保管場所です。パッケージマネージャーは、ネットワーク上のリポジトリを利用してプログラムのインストールやアップデートを行います。
標準(公式)のRHEL/CentOSリポジトリには基本パッケージしか収録されておらず、必ずしもプログラムの最新バージョンが含まれているとは限りません。しかし、サードパーティの公開・非公開リポジトリを利用すれば、Red Hat Enterprise Linux、CentOS、Oracle Linux、Scientific Linuxにも新しいプログラムをインストールできます。中でもRemiとEPELは最も人気のあるサードパーティリポジトリです。
本記事では、CentOSでyum(dnf)パッケージマネージャーを使って追加リポジトリをインストール、管理、活用する方法を詳しく解説します。
CentOSでEPELおよびRemiリポジトリを有効化する方法
OS(本記事の例ではCentOS 7)をインストールすると、基本的なリポジトリがデフォルトで設定されます。以下のコマンドで一覧を確認できます。
yum repolist
スクリーンショットのとおり、base、extras、updatesの3つのリポジトリが登録されています。これだけで、基本的なソフトウェアや追加リポジトリのインストールを始めるのに十分です。
それでは、CentOSに追加リポジトリをインストールする手順を見ていきましょう。
EPELリポジトリとは
EPEL(Extra Packages for Enterprise Linux)は、Fedoraチームが提供するオープンソースの無料リポジトリプロジェクトです。FTPサーバーからPHP、システム監視ツールに至るまで、高品質な追加ソフトウェアパッケージが多数収録されています。エンタープライズLinux向けとしては最も人気のあるリポジトリと言えるでしょう。
特筆すべきは、EPELのパッケージがCentOS/RHEL純正のパッケージと競合せず、既存パッケージを置き換えることもない点です。
CentOS 7(CentOS 6とは異なり)では、RPMパッケージを使えばコマンド1つでEPELを簡単にインストールできます。これが新しいリポジトリを追加する最も手軽な方法です。
yum install epel-release
インストール後は、特別な操作をしなくても自動的にリポジトリ一覧に反映されます(yumキャッシュのクリアは不要です)。
Remiリポジトリのインストール
CentOSにRemiリポジトリをインストールするには、次のコマンドを実行します。
rpm -ivh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm
RemiはCentOS向けのもうひとつの人気リポジトリで、最新バージョンのPHPやMySQLを提供しています。作者はRemi Collet氏です。このリポジトリを使用するには、事前にOSでEPELリポジトリが有効になっている必要があります。なお、一部のパッケージが基本リポジトリのパッケージと競合する可能性がある点に注意してください。
必要なリポジトリのRPMパッケージが存在しない場合は、/etc/yum.repos.dディレクトリに.repo設定ファイルを手動で作成することで追加できます(詳細は後述のセクションを参照)。
インストール元リポジトリの確認方法
各パッケージがどのリポジトリからインストールされたのかを確認するには、全パッケージの一覧を表示します。
yum list installed
ご覧のとおり、各パッケージにはインストール元リポジトリの情報(base、updates、epel、anacondaなど)が表示されます。
特定のリポジトリからインストール可能なパッケージ一覧を表示することもできます。
yum repo-pkgs epel list
リポジトリ設定ファイル(*.repo)の構成
すべてのリポジトリ設定ファイルは/etc/yum.repos.d/ディレクトリに保存され、*.repoという拡張子を持ちます。典型的な設定ファイルには、以下のパラメータが含まれます。
- name — リポジトリ名
- baseurl — リポジトリへのURL(ftp://アドレス、https://アドレス、https://アドレス、またはローカルリポジトリの場合file://アドレス)
- enabled — このリポジトリを使用するかどうか(1 = 有効、0 = 無効)
- async — パッケージの並列ダウンロードを使用するか(auto/on/off)
- gpgcheck — GPG署名検証を行うか(1 = 検証有効)
- gpgkey — GPGキーへのURL
- exclude — 除外するパッケージのリスト
- includepkgs — 対象に含めるパッケージのリスト
- mirrorlist — リポジトリミラーのリスト
最小構成のリポジトリファイルは、次のようになります。
[rep_name] name=rep_name baseurl=rep_url
例えばREMIリポジトリをインストールすると、remi-*.repo形式の複数の設定ファイルがリポジトリディレクトリに生成されます。
ご覧のとおり、RemiにはPHPのバージョンごとに個別の設定ファイルが用意されており、使用したいPHPバージョンのリポジトリを設定ファイルで有効化する必要があります。例えば、サーバーにPHP 7.3をインストールしたい場合は、対応するリポジトリを有効にします(remi-php73.repo内でenabled=1を指定)。
MariaDBリポジトリの手動接続
リポジトリは手動でも接続できます。その場合は、/etc/yum.repos.d/にリポジトリ設定ファイルを作成します。ここではMariaDBのリポジトリを追加してみましょう。
nano /etc/yum.repos.d/mariadb.repo
MariaDB開発者が公開している情報を、以下のように記述します。
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
CentOSでリポジトリを無効化する方法
インストール済みのリポジトリを無効化するには、その設定ファイルでenabled=0を指定するだけで十分です。
その後、yumキャッシュをクリアします。
yum clean all
そしてキャッシュを再生成します。
yum makecache
これで、remi-php73リポジトリはパッケージのインストールやアップデート時に使用されなくなります。
現在実行するパッケージのアップデート/インストールコマンドに対してのみリポジトリを無効化したい場合は、yumコマンドのオプションで指定できます。例:
yum update --disablerepo=epel
この例では、EPELを無効化した状態でインストール済みパッケージをアップデートしています。
逆に、不要なリポジトリをすべて一時的に無効化し、特定のリポジトリからのみアップデートすることも可能です。例えば、MariaDBリポジトリのパッケージのみをアップデートするには、次のコマンドを実行します。
yum update --disablerepo "*" --enablerepo=mariadb
リポジトリの無効化や削除には、yum-utilsツール群に含まれるyum-config-managerコマンドが便利です。
まずyum-utilsをインストールします。
yum -y install yum-utils
例えば、remiリポジトリを無効化するには:
yum-config-manager --disable remi
リポジトリを完全に削除するには、その設定ファイルを削除したうえで、yumキャッシュを更新する必要があります。
リポジトリの利用可能なパッケージアップデートを確認する方法
特定のリポジトリにアップデート可能なパッケージがあるかどうかをチェックできます。
yum check-update --disablerepo "*" --enablerepo=mariadb
このように、サーバー上の接続済みリポジトリを柔軟に管理できます。なお、異なるリポジトリに同じパッケージが含まれている場合、アップデート時にバージョンの競合が発生することがあります。実際に使用するリポジトリだけを有効化しておくことをおすすめします。
CentOS/RHEL向けの人気サードパーティリポジトリ
MariaDBリポジトリ
名前から想像できるとおり、MariaDBリポジトリはMariaDBのパッケージを提供します。MariaDB開発者によって作成され、継続的にサポート・更新されている信頼性の高いリポジトリです。
このリポジトリをシステムにインストールするには、以下の内容の.repoファイルを作成します。
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Nginxリポジトリ
前述のリポジトリと同様に、Nginxリポジトリはnginx HTTPサーバー関連のパッケージを提供します。
nginxリポジトリをインストールするには、.repoファイルを作成し、以下のテキストを追加します。
[nginx-stable] name=nginx stable repo baseurl=https://nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
これらのリポジトリがあれば、nginxをフロントエンドサーバーとした、いわゆるLAMPスタック(LEMPスタック)の環境を構築できます。
この程度のリポジトリリストでほぼすべてのユーザーのニーズを満たせますが、参考としてもう少し例を紹介します。
Webtaticリポジトリ
Webtaticは限られた少数の専門家(主にAndy Thompson氏)によって運営されているリポジトリで、PHP関連のパッケージを中心に提供しています。ただしRemiほど人気はなく、本記事の執筆時点では、このリポジトリの最新PHPバージョンは7.2にとどまっていました。
yum repo-pkgs webtatic list | grep php7
mod_php71w.x86_64 7.1.31-1.w7 webtatic mod_php72w.x86_64 7.2.21-1.w7 webtatic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ php72w-tidy.x86_64 7.2.21-1.w7 webtatic php72w-xml.x86_64 7.2.21-1.w7 webtatic php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic
リポジトリを有効化するには、以下のRPMパッケージをインストールします。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
MySQLリポジトリ
MySQLについては補足しておきます。データベースサーバーとしてのMySQLは近年その地位を失いつつあり、代わりにMariaDBがサーバーに導入されることが多いため、人気リポジトリのリストには含めませんでした。それでもMySQLを導入したい場合は、このリポジトリを有効化しましょう。例として、MySQL 5.7をインストールする手順を紹介します。
まずパッケージをダウンロードします。
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
続いてインストールします。
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
インストール後、MySQLを導入できるようになります。
まとめ
本記事では、CentOSにおけるリポジトリ管理のポイントを解説し、実用的なリポジトリをいくつか紹介しました。EPELやRemiなどの追加リポジトリを適切に活用すれば、公式リポジトリだけでは得られなかった最新のソフトウェアや豊富なパッケージを利用できるようになります。ぜひ本記事の手順を参考に、自分のサーバー環境に最適なリポジトリ構成を整えてみてください。
-
CentOSのインストール手順を徹底解説!デスクトップPCへの導入ガイド
CentOSは主にサーバー用途で使われるOSですが、実はデスクトップ環境としても十分に活用できます。このチュートリアルでは、CentOSをデスクトップPCにインストールする具体的な手順を詳しく解説します。インストール前の準備まず始めに、CentOSプロジェクトの公式サイトからISOファイルをダウンロードし、起動可能なUSBメモリを作成する必要があります。このチュートリアルでは、CentOS 8.2の最小構成(minimal)ISOを使用します。注意: CentOSインストーラーでは、各設定項目を確認した後、必ず左上の「完了(Done)」ボタンをクリックして画面を閉じます。ボタンは常に同じ位置に
-
CentOS/RHELでBashの自動補完(タブ補完)をインストールして有効化する方法
Bash(Bourne Again Shell)は、間違いなく最も広く使われているLinuxシェルです。多くのLinuxディストリビューションでデフォルトシェルとして採用されているのも納得でしょう。Bashの魅力的な機能の一つが、組み込みの「自動補完(オートコンプリート)」機能です。 この機能は「TAB補完」とも呼ばれ、コマンドの入力を簡単に完成させることができます。コマンドの一部を入力した状態で[Tab]キーを押すと、残りのコマンドや引数が自動的に補完されます。候補が複数ある場合は、すべての候補が一覧表示されます。 Bashだけでなく、近年のほぼすべてのモダンなLinuxシェルにはコマンド補