CentOS 5.1 に perl 5.10 を yum から入れる(ついでに、MySQL 5.0 も・・・)

CentOS 5.1 で、ローカル環境向け yum リポジトリサーバを作ってみる - cooldaemonの備忘録 の続き。
CentOS 5.1 向けの RPMperl 5.10 は存在しないので Fedora から SRPM をもらってきて、RPM を作る事にする。

ローカルにビルド環境を作る

root で作業したくないので、ローカルに環境を作る。
下記のようにディレクトリを作って・・・

$ mkdir ~/rpmbuild
$ mkdir ~/rpmbuild/BUILD
$ mkdir ~/rpmbuild/SRPMS
$ mkdir ~/rpmbuild/SPECS
$ mkdir ~/rpmbuild/SOURCES
$ mkdir ~/rpmbuild/RPMS

下記のようなファイルを設置する。

$ cat ~/.rpmmacros
%_topdir    $HOME/rpmbuild
%_specdir   %{_topdir}/SPECS
%_builddir  %{_topdir}/BUILD
%_sourcedir %{_topdir}/SOURCES
%_srcrpmdir %{_topdir}/SRPMS
%_rpmdir    %{_topdir}/RPMS

SRPM を取得する

$ rpm -ivh http://ftp.riken.go.jp/Linux/fedora/development/source/SRPMS/perl-5.10.0-26.fc10.src.rpm

これで、~/rpmbuild 配下にイロイロファイルが出来る。

RPM を作る

rpmbuild コマンドをインストールする。

$ sudo yum install rpm-build

事前に、perl 5.10 の RPM が依存している RPM を幾つかインストールしておく。

$ sudo yum install gdbm-devel
$ sudo yum install db4-devel
$ sudo yum install zlib-devel

rsyslog にも依存しているのだけれど、面倒なので ~/rpmbuild/SPECS/perl.spec 内の rsyslog の箇所を sysklogd に変えてしまった。(何か問題あるかな?)

という事でビルド開始。

$ cd ~/rpmbuild
$ rpmbuild -bb SPECS/perl.spec

これで ~/rpmbuild/RPMS/[arch] 配下に RPM ファイルが作成される。

リポジトリサーバに RPM を配置する

CentOS 5.1 で、ローカル環境向け yum リポジトリサーバを作ってみる - cooldaemonの備忘録 では、os と updates というリポジトリを作ったが、ここに配置すると、イロイロ問題が出るので myrepo というリポジトリを作る事にする。

$ mkdir -p /var/www/html/yum/centos/5.1/myrepo/x86_64/RPMS
$ cp ~/rpmbuild/RPMS/x86_64/RPMS/*.rpm /var/www/html/yum/centos/5.1/myrepo/x86_64/RPMS
$ cd /var/www/html/yum/centos/5.1/myrepo/x86_64/
$ createrepo $PWD

ミラーリストを用意する。

$ cat /var/www/html/yum/centos/5.1-myrepo-x86_64.txt
http://yum.foo.jp/yum/centos/5.1/myrepo/x86_64/

myrepo 用に /etc/yum.repos.d/myrepo.repo という専用のファイルを作る。

$ cat /etc/yum.repos.d/myrepo.repo
name=CentOS-$releasever - myrepo
mirrorlist=http://yum.foo.jp/yum/centos/$releasever-myrepo-$basearch.txt
gpgcheck=0

これで、yum から perl 5.10 をインストールする事が可能となる。

注意点

os や updates には、既に perl 5.8.8 の RPM が配置されており、他の幾つかの RPMperl 5.8.8 に依存している。
perl 5.10 をインストールする場合は、perl 5.8.8 をアンインストールし、os や updates を一時的に enabled=0 にした方が良い。(これに気がつかず、yum install perl-CPAN が失敗して困ってしまった・・・)

perl 5.8.8 に依存している RPM は、perl 5.10 と同様に、Fedora からもらって来る事で回避する。
MySQL 5.0 が、perl に依存しててガックリした・・・。
ちなみに、MySQL 5.0 の RPM は、下記のような感じで作れる。

$ sudo yum install gperf
$ sudo yum install readline-devel.x86_64
$ sudo yum install openssl-devel.x86_64
$ sudo yum install gcc-c++
$ sudo yum install ncurses-devel.x86_64
$ sudo yum install libtool
$ rpm -ivh http://ftp.riken.go.jp/Linux/fedora/development/source/SRPMS/mysql-5.0.51a-1.fc9.src.rpm
$ cd ~/rpmbuild
$ rpmbuild -bb SPECS/mysql.spec