server-memo.net

CentOS7 サードパーティーリポジトリの追加

      2016/01/22

サードパーティリポジトリについて

サードパーティリポジトリとは、ざっくりまとめるとCentOSが標準で用意している以外のサードパーティが作成したパッケージを「yum」でインストールできるようにする為のものです。

有名な物では、FedoraProjectが作成している「EPEL」や、RepoForgeプロジェクトの「RepoForge」(旧RepoForge)、mysqlやPHPの新しいバージョンを集めている「remi」リポジトリなどがあります。ここではそれらのリポジトリを使用できるようにする方法をまとめています。

リポジトリ一覧情報

CentOSで使用できるリポジトリ情報が、英語ですが下記のWikiにまとめられています。

http://wiki.centos.org/AdditionalResources/Repositories

ここの情報をみると、各リポジトリの特徴や導入する際の注意点などがわかりますので、参照してみてください。

また、サードパーティリポジトリについては、「サードパーティが提供しているパッケージなので、CentOSプロジェクトではサポートしていない」といったことが書いてありますので、使用する際は自己責任でということ忘れないで下さい・・・

追加するリポジトリの使用方針

追加するリポジトリによっては、CentOS標準のパッケージを置き換えてしまったりするものがあり、それが問題を引き起こしてしまう場合があります。

ですので、通常はCentOSデフォルトのリポジトリを使用し、そこに無いパッケージをインストールしたい場合のみ、明示的に追加したリポジトリを指定してパッケージのインストールを行うという運用に私はしています。

ここではその運用方針を踏まえた設定で説明しています。

EPELリポジトリ

EPELリポジトリとは、エンタープライズLinux用の拡張パッケージ(Extra Packages for Enterprise Linux)の略称で、Fedoraプロジェクトで作成されたパッケージ達を使用できるようにするためのリポジトリです。

EPELリポジトリの追加

CentOS7では「EPEL」リポジトリを「yum」で追加することで追加することができます。

# yum -y install epel-release

EPELリポジトリの無効化

「EPEL」リポジトリは、インストールすると有効化(常時使用できる)された状態となっています。「EPEL」リポジトリを使用する際は明示的に指定して使用したいので、設定ファイルである「/etc/yum.repos.d/epel.repo」を「vi」等のエディタで編集していきます。

# vi /etc/yum.repos.d/epel.repo

編集内容

[epel]部分の「enabled=1」部分を「enabled=0」に変更することで、明示的に指定しなければ「EPEL」リポジトリを使用出来ないようになります。

変更前
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=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
変更前
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=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リポジトリ使用方法

「EPEL」を無効化したので、使用する際は「yum --enablerepo=epel 」といったように、明示的に「EPEL」リポジトリを指定して「yum」を実行する形となります。

書式
yum --enablerepo=epel [コマンド] [パッケージ名]
使用例

「clamav」というパッケージを「EPEL」リポジトリからインストール場合は、下記のように「yum」を実行します。

# yum install --enablerepo=epel clamav

Repoforge(RPMForge)リポジトリ

こちらは、有名な「RPMForge」の新しいプロジェクトとなります。

以前はよく「RPMForge」のお世話になっていたのですが、CentOSのwikiでは「一度は勧めていたけど、メンテナンスされていないのでお勧めできない」(Although once recommended, this repository is no longer maintained, and is not advised.)といったような記述がされていて、「Known Problem Repositories」となっています・・・

ということで、EPELリポジトリに無い物インストールしたい場合のみ使うのが良いでしょう。

Repoforge(RPMForge)リポジトリの追加

このリポジトリの追加方法は、「rpm」コマンドで、「GPG key」とパッケージをインストールするという流れになります。

DAG's GPG key インストール

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

rpmforgeインストール

# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

※最新のパッケージ名は随時変更されていきますので、最新のパッケージについてはhttp://repoforge.org/use/で確認して下さい。

インストールが失敗する場合

今回の手順では、直接インターネット上からインストールしていますが、ダウンロード先のサーバの状態によっては失敗することがあるらしいです。その場合は、まず「wget」等でダウンロードを行ってから、インストールを行ってみてください。

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
--2015-04-22 12:12:29--  http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Resolving pkgs.repoforge.org (pkgs.repoforge.org)... 78.46.17.228
Connecting to pkgs.repoforge.org (pkgs.repoforge.org)|78.46.17.228|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://rpmforge.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm [following]
--2015-04-22 12:12:30--  http://rpmforge.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Resolving rpmforge.sw.be (rpmforge.sw.be)... 78.46.17.228
Connecting to rpmforge.sw.be (rpmforge.sw.be)|78.46.17.228|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://tree.repoforge.org/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm [following]
--2015-04-22 12:12:31--  http://tree.repoforge.org/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Resolving tree.repoforge.org (tree.repoforge.org)... 78.46.17.228
Connecting to tree.repoforge.org (tree.repoforge.org)|78.46.17.228|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm [following]
--2015-04-22 12:12:32--  http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Resolving apt.sw.be (apt.sw.be)... 193.1.193.67
Connecting to apt.sw.be (apt.sw.be)|193.1.193.67|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12520 (12K) [application/x-redhat-package-manager]
Saving to: ‘rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm’

100%[=========================================================================>] 12,520      24.1KB/s   in 0.5s

2015-04-22 12:12:33 (24.1 KB/s) - ‘rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm’ saved [12520/12520]

こんな感じで何回かダウンロード失敗していますが、最後はダウンロードできると思います。その後、「rpm」コマンドでインストールを行ってください。

# rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:rpmforge-release-0.5.3-1.el7.rf  ################################# [100%]

Repoforge(RPMForge)リポジトリの無効化

通常はこのリポジトリを使用しないので、設定ファイルである「/etc/yum.repos.d/rpmforge.repo」を「vi」等のエディタで編集し無効化する作業を行っていきます。

# vi /etc/yum.repos.d/rpmforge.repo

編集内容

[rpmforge]部分の「enabled=1」部分を「enabled=0」に変更することで、明示的に指定しなければ「Repoforge(RPMForge)」リポジトリを使用出来ないようになります。

変更前
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
変更後
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0  <---変更部分
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

Repoforge(RPMForge)リポジトリの使用方法

「EPEL」を無効化したので、使用する際は「yum --enablerepo=epel 」といったように、明示的に「EPEL」リポジトリを指定して「yum」を実行する形となります。

書式
yum --enablerepo=rpmforge [コマンド] [パッケージ名]
使用例

「clamav」というパッケージを「Repoforge(RPMForge)」リポジトリからインストール場合は、下記のように「yum」を実行します。

# yum --enablerepo=rpmforge install clamav

remiリポジトリ

このリポジトリは、最新のMySQLやPHPを「Remi Collet」がメンテナンスをして提供しているリポジトリです。

CentOSで提供していない最新のパッケージを使用できるのがメリットですが、デメリットとしてコアパッケージを入れ替えてしまう場合があるので、使用する際には注意が必要となります。

remiリポジトリの追加

このリポジトリの追加方法ですが、まず前提条件として「EPEL」リポジトリが追加されている必要がありますので、追加していない場合は先に「EPEL」を追加してください。(追加方法はこのページの上のほうで説明してます。)

「EPEL」リポジトリを追加しましたら、「rpm」コマンドで「remi」の「GPG key」と、パッケージをインストールするという流れになります。

http://rpms.famillecollet.com/
Distribution choice - Repository contentを参照

remi GPG keyインストール

# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

remiリポジトリの追加

# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

remiリポジトリの無効化

「remi」リポジトリはデフォルトで無効化されているはずですが、念のため「/etc/yum.repos.d/remi.repo」の「enabled」部分が「enabled=0」となっていることを確認します。

remiリポジトリの使用方法

「remi」リポジトリはインストールしようとするphpのバージョンによって、指定するリポジトリ名が異なります。

php 5.5をインストールする場合

php5.5をインストールしたい場合は「--enablerepo=remi-php55」といったようにリポジトリを指定して、「yum」を実行する必要があります。

実行例
# yum install --enablerepo=remi-php55 php

中略

================================================================================
 Package            アーキテクチャー
                               バージョン                  リポジトリー    容量
================================================================================
インストール中:
 php                x86_64     5.5.24-1.el7.remi           remi-php55     2.6 M
依存性関連でのインストールをします:
 apr                x86_64     1.4.8-3.el7                 base           103 k
 apr-util           x86_64     1.5.2-6.el7                 base            92 k
 httpd              x86_64     2.4.6-31.el7.centos         base           2.7 M
 httpd-tools        x86_64     2.4.6-31.el7.centos         base            79 k
 mailcap            noarch     2.1.41-2.el7                base            31 k
 php-cli            x86_64     5.5.24-1.el7.remi           remi-php55     3.9 M
 php-common         x86_64     5.5.24-1.el7.remi           remi-php55     1.0 M
 php-pecl-jsonc     x86_64     1.3.7-1.el7.remi.5.5        remi-php55      53 k
 php-pecl-zip       x86_64     1.12.5-1.el7.remi.5.5       remi-php55      89 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+9 個の依存関係のパッケージ)

総ダウンロード容量: 11 M
インストール容量: 39 M

※ちなみに、CentOS7の標準リポジトリを使用して「php」をインストールしようとするとバージョン5.4がインストールされます。

php 5.6をインストールする場合

php5.6をインストールしたい場合は「--enablerepo=remi-php56」といったようにリポジトリを指定して、「yum」を実行する必要があります。

実行例
# yum install --enablerepo=remi-php56 php

中略

================================================================================
 Package            アーキテクチャー
                               バージョン                  リポジトリー    容量
================================================================================
インストール中:
 php                x86_64     5.6.8-1.el7.remi            remi-php56     2.6 M
依存性関連でのインストールをします:
 apr                x86_64     1.4.8-3.el7                 base           103 k
 apr-util           x86_64     1.5.2-6.el7                 base            92 k
 httpd              x86_64     2.4.6-31.el7.centos         base           2.7 M
 httpd-tools        x86_64     2.4.6-31.el7.centos         base            79 k
 mailcap            noarch     2.1.41-2.el7                base            31 k
 php-cli            x86_64     5.6.8-1.el7.remi            remi-php56     4.0 M
 php-common         x86_64     5.6.8-1.el7.remi            remi-php56     1.1 M
 php-pecl-jsonc     x86_64     1.3.7-1.el7.remi.5.6        remi-php56      52 k
 php-pecl-zip       x86_64     1.12.5-1.el7.remi.5.6       remi-php56      90 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+9 個の依存関係のパッケージ)

総ダウンロード容量: 11 M
インストール容量: 40 M

 - CentOS7