外部リポジトリの追加と、yum-prioritiesを利用した優先順位の設定


投稿日:2012年11月22日
  • 4
  • 0
  • 7



外部リポジトリを追加して最新版のソフトをインストール

CentOS Linux 5.8」のデフォルトだと「MySQLが5.0.95」で「PHPが5.1.6」です。

このままだとWordPress3.4.2の動作環境を満たしていません。最新版のソフトをインストールするために「EPEL、IUS、REMI」の3つの「外部リポジトリを追加」します。


外部リポジトリの追加の準備

以前の投稿「『初心者でも、安全なLAMP環境を構築』の投稿を開始します」でも触れましたが、「外部リポジトリ」について解説します。

外部リポジトリ」を使ってソフトをインストールする最大のメリットは「yumコマンド」でソフトを管理できることです。

Linuxではソフトのインストールの際に、「整合性を確かめて、ダウンロードして、コンパイルして、インストールして…」という作業が必要になります。さらに大変なのはアンインストールバージョンアップ作業です。インストール時のリストを見ながら、1つ1つファイルを削除する必要があります。
そのため可能な限りyumでソフトを管理します。

リポジトリに優先順位を設定するyum-prioritiesの導入

早速「外部リポジトリの導入!」といきたいところですが、外部のリポジトリ公式のリポジトリでソフトの競合が起こると、外部のリポジトリのソフトが優先されることがあります。

不用意に外部リポジトリを利用すると予期せぬ不具合が発生することがあります。そのため可能な限り公式リポジトリを利用したほうが安心です。
そこで「リポジトリの優先順位を指定」する事ができるyumのパッケージ管理プラグイン「yum-priorities(ヤム プライオリティーズ)」を導入します。


yum-prioritiesのインストール

早速「yum-priorities」をインストールします。
(オプションで-yを追加すると後にYes,Noを入力しないでインストールできますが、慣れないうちは本当に目的のパッケージかを確認してからインストールすることをお勧めします)

※コマンドラインの見方
コマンド」「引数、その他」「コメント」「#(rootユーザ)」「$(一般ユーザ)」

# yum install yum-priorities

Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirror.centos.org
 * base: www.ftp.ne.jp
 * contrib: mirror.centos.org
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
addons                                                                | 1.9 kB     00:00
base                                                                  | 1.1 kB     00:00
contrib                                                               | 1.9 kB     00:00
extras                                                                | 1.9 kB     00:00
updates                                                               | 1.9 kB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-priorities.noarch 0:1.1.16-21.el5.centos set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package                 Arch            Version                         Repository     Size
=============================================================================================
Installing:
 yum-priorities          noarch          1.1.16-21.el5.centos            base           16 k

Transaction Summary
=============================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 16 k
Is this ok [y/N]: y ←インストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
yum-priorities-1.1.16-21.el5.centos.noarch.rpm                        |  16 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : yum-priorities                                                        1/1

Installed:
  yum-priorities.noarch 0:1.1.16-21.el5.centos

Complete!

Complete!」と表示されれば「yum-priorities」のインストールは完了です。


「yum-priorities」でリポジトリに優先順位を設定

それでは公式リポジトリの優先順位を変更します。公式レポジトリの設定は「/etc/yum.repos.d/CentOS-Base.repo」にあります。

優先順位は「1~99」まで設定でき、数字が低いほど優先順位が高くなります。
それぞれ[base][updates][addons][extras]セクションに優先順位の一番高い「priority=1」を追加します。

# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
priority=1 ←追加
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

[updates]
priority=1 ←追加
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
priority=1 ←追加
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
priority=1 ←追加
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
#baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

以上で公式リポジトリの優先順位を設定できました。続いて外部リポジトリの追加をしていきます。


EPELリポジトリの追加

dl.iuscommunity.org」から「Redhatのバージョン」「i386 or x86_64」を選択して進んで「epel-release-5-4.noarch.rpm」をダウンロードします。

rootユーザー」にログインして「wgetコマンド」でダウンロードします。

# su - ←「-(ハイフン)」を付けて環境変数をリセット
# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-5-4.noarch.rpm

--2012-10-04 21:09:49--  http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-5-4.noarch.rpm
dl.iuscommunity.org をDNSに問いあわせています... 50.57.54.209
dl.iuscommunity.org|50.57.54.209|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 12275 (12K) [application/x-rpm]
`epel-release-5-4.noarch.rpm' に保存中

100%[===================================================>] 12,275      60.8K/s 時間 0.2s

2012-10-04 21:09:50 (60.8 KB/s) - `epel-release-5-4.noarch.rpm' へ保存完了 [12275/12275]

ダウンロードが完了したら「rpmコマンド」でインストール。オプションに指定している「-Uvh」はそれぞれ「U」がアップデート、「v」が詳細な情報表示、「」がインストールの進行状況を表示。というオプションになります。このオプションはインストール時にも、アップロード時にも使えるのでお勧めです。

# rpm -Uvh epel-release-5-4.noarch.rpm
警告: epel-release-5-4.noarch.rpm: ヘッダ V4 DSA signature: NOKEY, key ID 9cd4953f
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

以上で「EPELリポジトリ」をインストールできました。

優先順位の確認

EPELリポジトリ」の設定ファイルは「/etc/yum.repos.d/epel.repo」です。
[epel]セクションに「priority=2」と「enabled=0」を設定します。公式の優先順位が「1」なので、「EPELリポジトリ」は優先順位が下になります。

# vi /etc/yum.repos.d/epel.repo
[epel]
priority=2 ←追加(1の場合は2に変更)
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=0 ←追加(1の場合は0に変更)
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
(省略)

これでEPELリポジトリの優先順位が設定できました。


サードパティリポジトリ利用する際の注意

上記yum-prioritiesの設定で「yum install」とコマンドを打った場合、公式のものが最優先にインストールされます。外部リポジトリのパッケージをインストールする場合は「--enablerepo=[repo]」とオプションで指定する必要があります。

またenablerepoオプションでEPELリポジトリを有効にしていても、公式のpriorityを「1」、EPELリポジトリのpriorityを「2」としているため、公式とEPEL両方で提供しているパッケージの場合は、公式のものが優先されます。

公式のものを無効にしてEPELリポジトリのものをインストールしたい場合は、公式を「--disablerepo=[repo]」オプションで指定する必要があります。

例)公式を無効にして、EPELのPHPパッケージをインストールする場合
# yum install --disablerepo=base,updates,extras,centosplus,contrib --enablerepo=epel php*


IUSリポジトリの追加

上と同じ流れで「IUSリポジトリ」を追加します。

dl.iuscommunity.org」から、Redhatのバージョン、i386 or x86_64と進んで「ius-release-1.0-10.ius.el5.noarch.rpm」をダウンロードします。

同じく「rootユーザー」にログインして「wgetコマンド」でダウンロード

# su -
# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-10.ius.el5.noarch.rpm


--2012-10-04 21:12:11--  http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-10.ius.el5.noarch.rpm
dl.iuscommunity.org をDNSに問いあわせています... 50.57.54.209
dl.iuscommunity.org|50.57.54.209|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7331 (7.2K) [application/x-rpm]
`ius-release-1.0-10.ius.el5.noarch.rpm' に保存中

100%[===================================================>] 7,331       41.9K/s 時間 0.2s

2012-10-04 21:12:11 (41.9 KB/s) - `ius-release-1.0-10.ius.el5.noarch.rpm' へ保存完了 [7331/7331]

続いてrpmでインストール

# rpm -Uvh ius-release-1.0-10.ius.el5.noarch.rpm

警告: ius-release-1.0-10.ius.el5.noarch.rpm: ヘッダ V4 DSA signature: NOKEY, key ID 9cd4953f
準備中...                ########################################### [100%]
   1:ius-release            ########################################### [100%]

以上で「IUSリポジトリ」をインストールできました。

優先順位の確認

同じく優先順位を設定します。
IUSリポジトリの設定ファイルは「/etc/yum.repos.d/ius.repo」です。
[ius]セクションに「priority=2」と「enabled=0」を設定します。

# vi /etc/yum.repos.d/ius.repo
[ius]
priority=2 ←追加(1の場合は2に変更)
name=IUS Community Packages for Enterprise Linux 5 - $basearch
#baseurl=http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/$basearch
mirrorlist=http://dmirr.iuscommunity.org/mirrorlist/?repo=ius-el5&arch=$basearch
failovermethod=priority
enabled=0 ←追加(1の場合は0に変更)
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
(省略)

これでIUSリポジトリの優先順位が設定できました。


REMIリポジトリの追加

rpms.famillecollet.com」から「Maintained Enterprise Linux (RHEL / CentOS / Other clones)」の「remi-release-5.rpm」のURLをコピーします。

同じく「rootユーザー」にログインして「wgetコマンド」でダウンロード

# su -
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

--2012-10-04 21:12:44--  http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpms.famillecollet.com をDNSに問いあわせています... 88.191.74.232, 2a01:e0b:1:74:2e0:f4ff:fe1b:b827
rpms.famillecollet.com|88.191.74.232|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 4974 (4.9K) [application/x-rpm]
`remi-release-5.rpm' に保存中

100%[===================================================>] 4,974       17.8K/s 時間 0.3s

2012-10-04 21:12:46 (17.8 KB/s) - `remi-release-5.rpm' へ保存完了 [4974/4974]

続いてrpmでインストール

# rpm -Uvh remi-release-5.rpm

警告: remi-release-5.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 00f97f56
準備中...                ########################################### [100%]
   1:remi-release           ########################################### [100%]

以上で「REMIリポジトリ」をインストールできました。

優先順位の確認

同じく優先順位を設定します。
REMIリポジトリの設定ファイルは「/etc/yum.repos.d/remi.repo」です。
[remi]セクションに「priority=2」と「enabled=0」を設定します。

# vi /etc/yum.repos.d/remi.repo
[remi]
priority=2 ←追加(1の場合は2に変更)
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=0 ←追加(1の場合は0に変更)
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
(省略)

これでREMIリポジトリの優先順位が設定できました。


それぞれのリポジトリを確認

リポジトリ追加時の作法として、yumに関するキャッシュやデータベースをクリアします。
以下のコマンドでインストールしたリポジトリのバージョンを確認してください。

全てのキャッシュを削除。

# yum clean all

EPELリポジトリの確認方法

# rpm -qa | grep epel

IUSリポジトリ確認方法

# rpm -qa | grep ius

REMIリポジトリ確認方法

# rpm -qa | grep remi

次は「yumコマンドで外部リポジトリを指定して、最新のPHPにバージョンアップ」です。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。