RPMでmod_perl2をインストール
うちのサーバはCentOSなので、Redhat系です。
Redhat系はアプリケーション管理をRPMで行なうので、その流儀に従います。
まずyumリポジトリにmod_perlが存在するかを調べてみる。
$ sudo yum search mod_perl mod_perl.i386 1.99_16-4.centos4 base
このblogを書いている時点では mod_perl2 は公開されていませんでした。
てことで自分でmod_perlのRPMを作ってしまおうと。
まず下記のサイトより最新版のmod_perlをダウンロードします。
http://perl.apache.org/download/index.html
ここではVersion 2.0.2が最新版だったので、これをDLして解凍します。
# cd /usr/src/redhat/SOURCES # wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz # tar zxf ./mod_perl-2.0-current.tar.gz
mod_perl-2.0.2/ というディレクトリができているので、その中を覗いてみます。
# cd ./mod_perl-2.0.2 # ll 合計 256 drwxr-xr-x 4 1001 wheel 4096 8月 27 17:23 Apache-Test -rw-r--r-- 1 1001 wheel 1525 10月 21 2005 BRANCHING -rw-r--r-- 1 1001 wheel 94857 10月 21 2005 Changes -rw-r--r-- 1 1001 wheel 646 10月 21 2005 INSTALL -rw-r--r-- 1 1001 wheel 11358 10月 21 2005 LICENSE -rw-r--r-- 1 1001 wheel 29838 10月 21 2005 MANIFEST -rw-r--r-- 1 1001 wheel 551 10月 21 2005 META.yml -rw-r--r-- 1 1001 wheel 25380 10月 21 2005 Makefile.PL drwxr-xr-x 4 1001 wheel 4096 8月 27 17:23 ModPerl-Registry -rw-r--r-- 1 1001 wheel 2108 10月 21 2005 README -rw-r--r-- 1 1001 wheel 1811 10月 21 2005 README-SVN -rw-r--r-- 1 1001 wheel 6592 10月 21 2005 RELEASE -rw-r--r-- 1 1001 wheel 1223 10月 21 2005 STATUS -rw-r--r-- 1 1001 wheel 1696 10月 21 2005 SVN-MOVE drwxr-xr-x 2 1001 wheel 4096 8月 27 17:23 bin drwxr-xr-x 2 1001 wheel 4096 8月 27 17:23 build drwxr-xr-x 6 1001 wheel 4096 8月 27 17:23 docs drwxr-xr-x 6 1001 wheel 4096 8月 27 17:23 lib -rw-r--r-- 1 1001 wheel 2904 10月 21 2005 mod_perl.spec drwxr-xr-x 3 1001 wheel 4096 8月 27 17:23 src drwxr-xr-x 22 1001 wheel 4096 8月 27 17:23 t drwxr-xr-x 2 1001 wheel 4096 8月 27 17:23 todo drwxr-xr-x 2 1001 wheel 4096 8月 27 17:23 util drwxr-xr-x 7 1001 wheel 4096 8月 27 17:23 xs
この中に"mod_perl.spec"というファイルが存在します。このファイルがRPMを作成する上で必須となるものです。
mod_perl.spec の中味を覗いてみます。
# vi mod_perl.spec %define _version 2.0.3 %define _release 1 %define _source http://perl.apache.org/dist/mod_perl-2.0.3.tar.gz %define _dirname mod_perl-2.0.3
バージョン情報が実際と異っております。このままではrpmbuildに失敗するので、ここではバージョンを元に戻します。
%define _version 2.0.2 %define _release 1 %define _source http://perl.apache.org/dist/mod_perl-2.0.2.tar.gz %define _dirname mod_perl-2.0.2
このディレクトリをtar.gzに圧縮します。
必要なファイルを/usr/src/redhat にコピーします。
# cd .. # tar zcf mod_perl-2.0.2.tar.gz ./mod_perl-2.0.2 # cp ./mod_perl-2.0.2/mod_perl.spec /usr/src/redhat/SPEC
でここで、RPM形式にビルドします。ただ下記の依存モジュールは予めyumでインストールしておくこと。
ApacheモジュールをDSOで入れる場合は必ず必要になります。
# yum install httpd-devel
# cd /usr/src/redhat/SPEC # rpmbuild -bb mod_perl.spec : : 省略 書き込み中: /usr/src/redhat/RPMS/i386/mod_perl-2.0.2-1.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/mod_perl-devel-2.0.2-1.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/mod_perl-debuginfo-2.0.2-1.i386.rpm
でインストールをしてみる。
# rpm -ivh /usr/src/redhat/RPMS/i386/mod_perl-2.0.2-1.i386.rpm エラー: Failed dependencies: perl(Apache2::FunctionTable) is needed by mod_perl-2.0.2-1.i386 perl(Apache2::StructureTable) is needed by mod_perl-2.0.2-1.i386 perl(Apache::TestConfigParse) is needed by mod_perl-2.0.2-1.i386 perl(Apache::TestConfigPerl) is needed by mod_perl-2.0.2-1.i386 perl(BSD::Resource) is needed by mod_perl-2.0.2-1.i386 perl(Data::Flow) is needed by mod_perl-2.0.2-1.i386 perl(Module::Build) is needed by mod_perl-2.0.2-1.i386
どうやら上記のモジュールがないとこのままではインストールできないみたい。orz
続きはまた今度。