[Sy] Amazon Linux (2017.03-release) に remi リポジトリをインストールして有効にする手順
Amazon Linux (2017.03-release) への remi リポジトリの追加と確認方法、リポジトリの有効・無効の切り替えについて説明します。
1. remi をインストール
インストールは以下のコマンドでできます。
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
warning: /var/tmp/rpm-tmp.8k1bpo: Header V4 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:remi-release-6.9-1.el6.remi ################################# [100%]
インストールはこれで完了です!
以降、本当にリポジトリが追加されているかどうかの確認方法とリポジトリの有効・無効を切り替えて使う方法についての説明になります。
2. remi がインストールされているか確認
/etc/yum.repos.d/
配下にremi.repo
などが追加されているはずです。
$ ls -al /etc/yum.repos.d/
total 56
drwxr-xr-x 2 root root 4096 Oct 2 13:51 .
drwxr-xr-x 83 root root 4096 Oct 2 10:17 ..
-rw-r--r-- 1 root root 1014 Aug 10 23:26 amzn-main.repo
-rw-r--r-- 1 root root 327 Aug 10 23:26 amzn-nosrc.repo
-rw-r--r-- 1 root root 1041 Aug 10 23:26 amzn-preview.repo
-rw-r--r-- 1 root root 1041 Aug 10 23:26 amzn-updates.repo
-rw-r--r-- 1 root root 957 Mar 1 2013 epel.repo
-rw-r--r-- 1 root root 1056 Mar 1 2013 epel-testing.repo
-rw-r--r-- 1 root root 457 Jun 30 12:13 remi-php54.repo <- 追加
-rw-r--r-- 1 root root 1316 Jun 30 12:13 remi-php70.repo <- 追加
-rw-r--r-- 1 root root 1316 Jun 30 12:13 remi-php71.repo <- 追加
-rw-r--r-- 1 root root 1316 Jun 30 12:13 remi-php72.repo <- 追加
-rw-r--r-- 1 root root 2609 Jun 30 12:13 remi.repo <- 追加
-rw-r--r-- 1 root root 751 Jun 30 12:13 remi-safe.repo <- 追加
ただ、これだけではまだ確認としては中途半端です。
各repoファイルには、例えばremi-safe.repo
の中身がこうなっているように、複数のリポジトリの有効・無効の設定が書いてあります。
$ cat remi-safe.repo
# This repository is safe to use with RHEL/CentOS base repository
# it only provides additional packages for the PHP stack
# all dependencies are in base repository or in EPEL
[remi-safe]
name=Safe Remi's RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/safe/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/6/safe/httpsmirror
mirrorlist=http://rpms.remirepo.net/enterprise/6/safe/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-safe-debuginfo]
name=Remi's RPM repository for Enterprise Linux 6 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/6/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
この場合、remi-safe.repo
というファイルには、remi-safe
,remi-safe-debuginfo
という2つのリポジトリについての設定が書いてあることがわかります。
そしてそれぞれの設定値で、enabled=1
またはenabled=0
というものがあり、これが 1の場合は有効、0の場合は無効 という設定になります。
この設定の場合、例えば$ sudo yum install xxx
とした場合のパッケージの検索対象に、remi-safe
リポジトリは(enabled=1
なので)含まれますが、remi-safe-debuginfo
は(enabled=0
なので)含まれません。
各リポジトリの有効・無効状態の確認は、以下コマンドで確認できます。
有効なリポジトリを見たい
$ yum repolist enabled
Loaded plugins: priorities, update-motd, upgrade-helper
11 packages excluded due to repository priority protections
repo id repo name status
!amzn-main/latest amzn-main-Base 5,668
!amzn-updates/latest amzn-updates-Base 1,616
remi-safe Safe Remi's RPM repository for Enterprise Linux 6 - x86_64 2,180+11
repolist: 9,464
無効なリポジトリを見たい
$ yum repolist disabled
Loaded plugins: priorities, update-motd, upgrade-helper
repo id repo name
amzn-main-debuginfo/latest amzn-main-debuginfo
amzn-main-source/latest amzn-main-source
amzn-nosrc/latest amzn-nosrc-Base
amzn-preview/latest amzn-preview-Base
amzn-preview-debuginfo/latest amzn-preview-debuginfo
amzn-preview-source/latest amzn-preview-source
amzn-updates-debuginfo/latest amzn-updates-debuginfo
amzn-updates-source/latest amzn-updates-source
epel/x86_64 Extra Packages for Enterprise Linux 6 - x86_64
epel-debuginfo/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 - Debug
epel-source/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 - Source
epel-testing/x86_64 Extra Packages for Enterprise Linux 6 - Testing - x86_64
epel-testing-debuginfo/x86_64 Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Debug
epel-testing-source/x86_64 Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Source
remi Remi's RPM repository for Enterprise Linux 6 - x86_64
remi-debuginfo/x86_64 Remi's RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php54 Remi's PHP 5.4 RPM repository for Enterprise Linux 6 - x86_64
remi-php55 Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - x86_64
remi-php55-debuginfo/x86_64 Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php56 Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - x86_64
remi-php56-debuginfo/x86_64 Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php70 Remi's PHP 7.0 RPM repository for Enterprise Linux 6 - x86_64
remi-php70-debuginfo/x86_64 Remi's PHP 7.0 RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php70-test Remi's PHP 7.0 test RPM repository for Enterprise Linux 6 - x86_64
remi-php70-test-debuginfo/x86_64 Remi's PHP 7.0 test RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php71 Remi's PHP 7.1 RPM repository for Enterprise Linux 6 - x86_64
remi-php71-debuginfo/x86_64 Remi's PHP 7.1 RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php71-test Remi's PHP 7.1 test RPM repository for Enterprise Linux 6 - x86_64
remi-php71-test-debuginfo/x86_64 Remi's PHP 7.1 test RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php72 Remi's PHP 7.2 RPM repository for Enterprise Linux 6 - x86_64
remi-php72-debuginfo/x86_64 Remi's PHP 7.2 RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-php72-test Remi's PHP 7.2 test RPM repository for Enterprise Linux 6 - x86_64
remi-php72-test-debuginfo/x86_64 Remi's PHP 7.2 test RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-safe-debuginfo/x86_64 Remi's RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
remi-test Remi's test RPM repository for Enterprise Linux 6 - x86_64
remi-test-debuginfo/x86_64 Remi's test RPM repository for Enterprise Linux 6 - x86_64 - debuginfo
repolist: 0
3. インストールしたリポジトリを使うには?
remi-safe-debuginfo
リポジトリのように、インストール後に最初からenabled=1
になっているリポジトリは何も考えずに yum install
をすると良いので簡単です。
では初期設定がenabled=0
になっている場合はどうしたら良いのか?ですが、2つの方法があります。
リポジトリを有効にする方法その1:enabled=1に書き換える
シンプルに、repoファイルを編集してenabled=0
となっているのをenabled=1
に書き換えればOKです。
逆に無効にしたい場合はenabled=1
からenabled=0
に書き換えれば良いということです。
ただし、この方法を使う場合、常に有効になってしまうため過剰に新しいバージョンのパッケージがインストールされてしまったりして、意図しない環境ができあがる可能性があるので、できれば次の「その2」の方法をおすすめします。
リポジトリを有効にする方法その2:–enablerepoオプションを使う
例えばリポジトリにあるパッケージのリストを見たい場合、yum list
というコマンドを使うことで確認できます。
デフォルトでは有効になっているリポジトリのみ検索対象になります。
例として、phpMyAdmin
を探す場合ですが、普通に実行すると何も検索されません。
$ yum list | grep phpMyAdmin
(phpMyAdminという文字が含まれるパッケージが一つもなく、何も出力されない)
当然、phpMyAdmin
をインストールしようとすると、エラーになってしまいます。
$ sudo yum install phpMyAdmin
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00:00
amzn-updates | 2.3 kB 00:00:00
remi-safe | 2.9 kB 00:00:00
remi-safe/primary_db | 894 kB 00:00:03
11 packages excluded due to repository priority protections
No package phpMyAdmin available. <- 「パッケージが見つからない」とエラーになってしまう
Error: Nothing to do
次に、enabled=0
となっているepel
リポジトリを有効にしてみます。この時に使うのが --enablerepo
オプションで、このように書きます。
$ yum list --enablerepo=epel | grep phpMyAdmin
phpMyAdmin.noarch 4.0.10.20-1.el6 epel
ひとつ該当するものがありました。この結果の意味は、 epelリポジトリを有効にすることで、phpMyAdminがインストールできるよ ということになるので、以下のようにすることで4.0.10.20-1
というバージョンのphpMyAdmin
をインストールすることができます。
$ sudo yum install --enablerepo=epel phpMyAdmin
もう一つ試してみます。
実はepel
だけでなく、remi
にもphpMyAdmin
はあるので、次のようにすることで 別のバージョンのphpMyAdminを検索することができます。
$ yum list --enablerepo=remi | grep phpMyAdmin
phpMyAdmin.noarch 4.7.4-1.el6.remi remi
さっきとの違いは、--enablerepo=epel
か--enablerepo=remi
か、です。
このように、 一時的に有効にするリポジトリを自由に切り替える ことで自分が作りたい環境に合ったバージョン(例えばPHP5.6を使っているのかPHP7.0を使っているのかでインストール可能なphpMyAdminのバージョンが違ったりします)のパッケージを入れやすくなります。
まとめ
remi
リポジトリのインストール自体は簡単ですね。
あとはenabled=0
のまま、必要なパッケージに合わせて--enablerepo
オプションを適宜使っていくのがおすすめです。