CentOS 5.1 に perl 5.10 を yum から入れる(ついでに、MySQL 5.0 も・・・)
CentOS 5.1 で、ローカル環境向け yum リポジトリサーバを作ってみる - cooldaemonの備忘録 の続き。
CentOS 5.1 向けの RPM に perl 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
注意点
os や updates には、既に perl 5.8.8 の RPM が配置されており、他の幾つかの RPM は perl 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