はじめに
自前でソースをダウンロードしてコンパイルして…というのは、時間がいくらあっても足りない。何かセキュリィティホールが発見される度に対処されたソースを取得してコンパイルしなければならないからだ。そのためには、どんなセキュリィティホールが発生したのか絶えず最新の情報を漏れなく追いかけなくてはならない。こんな事、専任のネットワーク管理者がいなければ不可能だ。しかも、ライブラリの依存関係にも気を遣わなければならない。ライブラリが根本から覆ると、それに依存しているものは全てコンパイルし直し…という事態を招くかもしれない。こうして、どんどんと時間を費やすことになるだろう。 ながらネットワーク管理者には、とてもそんな時間は取れないし知識も無いので、できる事ならパッケージを流用する方が賢明というものだ。メンテナーの皆様ありがとう。という事で、なるべくパッケージを流用する方針で行こう。
最初にやる事
初期の状態で yum update を開始すると、恐ろしく時間がかかります。そこで、yum-fastestmirror の導入は必須でしょう。また、方針により yum-updatesd を外し yum-cron を導入するものとします。yum-cron を利用すると無条件に更新されてしまうため動作していたものが動作しなくなるという危険が伴います。考え方により導入しないで手動でメンテナンスするというのも有りです。手をかけたくない人は yum-corn でしょう(注:centos だから成立するのであって fedora では有り得ない選択肢です)。
$ yum remove yum-udpatesd
$ yum install yum-fastestmirror yum-cron
もうひとつ、いろんなパッケージを導入すると、依存関係に破綻をきたす事があります。そんな破綻を防いでくれるのが yum-protect-packages です。
$ yum install yum-protect-packages
こいつを導入したら、
$ cd /etc/yum.repos.d
$ ls
$ gedit CentOS-Base.repo&
として
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
[addones]
...
protect=0
base, updates セクションに対して protect=1 を追加で設定し、その他のセクションに対しては、protect=0 を追加で設定します。
同様に、他の *.repo ファイルに対しても protect=0 を追加で設定します。
今後、リポジトリを追加した場合には、protect=0 を追加で設定するようにしましょう。
リポジトリを追加
これから2つのリポジトリを追加します。1つは、PostgreSQL で、もうひとつは DAG と呼ばれるものです。
PostgreSQL
CentOS 5.5 から postgresql84 が導入されました。
http://yum.pgsqlrpms.org/reporpms/ から目的のパッケージをダウンロードしてインストールします。
$ wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-5.noarch.rpm
$ rpm -ivh pgdg-centos-8.3-5.noarch.rpm
$ gedit /etc/yum.repos.d/CentOS-Base.repo &
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
exclude=postgresql*
protect=1
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
exclude=postgresql*
protect=1
DAG
http://packages.sw.be/rpmforge-release/ から目的のパッケージをダウンロードしてインストールします。尚、CentOS <-> RedHat の関係が成立します。
$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
$ rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
とします。
追記:同じようにインストールを行っても、手順の前後で不整合が生じてうまくいかない場合もあります。
pgdg-83-centos.repo に対して
exclude=libevent
exclude=postgresql*
exclude=pgadmin*
追記2:なんかエラーになる場合は、以下の呪文を唱えると良いらしいです。
yum clean metadata
追記:2010/07/06 修正
0 件のコメント:
コメントを投稿