外部リポジトリを追加して最新版のソフトをインストール
「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」が詳細な情報表示、「h」がインストールの進行状況を表示。というオプションになります。このオプションはインストール時にも、アップロード時にも使えるのでお勧めです。
# 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