CentOS 6.2 用に Apache 2.4.1 の RPM を作成する
CentOS 6.2(i686)用に先日リリースされた Apache 2.4.1 の RPM を作成しインストールしてみました。
事前準備
開発用ツールのインストール。
# yum groupinstall -y "Development Tools"
# rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6 # rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-5.noarch.rpm
事前に行っていた主な作業はこのくらいです(たぶん・・・)。
もし足りないライブラリなどがあればエラーが出るはずなので、適宜インストールしてください。
インストールされている Apache の削除
Apache の最新版を RPM ビルドしてインストールするため、まずは yum で入っていた Apache 関連パッケージを削除します。
# yum remove httpd apr apr-util
rpmbuild の準備
RPM を作成するため、rpmbuild の準備をします。
# useradd rpmdevel # su - rpmdevel $ mkdir -p ~/rpm/{BUILD,SRPMS,SPECS,SOURCES,RPMS} $ echo "%_topdir $HOME/rpm" > $HOME/.rpmmacros $ mkdir src
これで RPM 作成のための準備は完了です。
apr のインストール
$ cd src/ $ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.4.6.tar.bz2 $ rpmbuild -tb --clean --rmspec apr-1.4.6.tar.bz2
成功すれば /home/rpmdevel/rpm/RPMS/ 以下に RPM パッケージが作成されています。
apr-util の rpmbuild 時に必要になるので、ここでインストールしておきます。
$ su -
# rpm -Uvh /home/rpmdevel/rpm/RPMS/i686/apr-1.4.6-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/apr-devel-1.4.6-1.i686.rpm
SQLite3 のインストール
apr-util が必要とする SQLite3 の新しいバージョンを入れるため、Fedora の SRPM を持ってきてリビルドします。
一旦 root になり依存ライブラリをインストール。
$ su -
# yum install -y tcl-devel
Fedora のリポジトリから SQLite3 の SRPM を取得してリビルドします。
# su - rpmdevel $ cd src/ $ wget http://ftp.riken.jp/Linux/fedora/releases/16/Everything/source/SRPMS/sqlite-3.7.7.1-1.fc16.src.rpm $ rpmbuild --rebuild sqlite-3.7.7.1-1.fc16.src.rpm
root になりインストールします。
# su - # rpm -Uvh /home/rpmdevel/rpm/RPMS/i686/sqlite-3.7.7.1-1.el6.i686.rpm /home/rpmdevel/rpm/RPMS/i686/sqlite-devel-3.7.7.1-1.el6.i686.rpm
apr-util のインストール
依存ライブラリをインストール。
# yum install -y expat-devel libuuid-devel db4-devel postgresql-devel mysql-devel freetds-devel unixODBC-devel openldap-devel nss-devel
# su - rpmdevel $ cd src/ $ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.4.1.tar.bz2 $ rpmbuild -tb --clean --rmspec apr-util-1.4.1.tar.bz2 $ su - # rpm -Uvh /home/rpmdevel/rpm/RPMS/i686/apr-util-1.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/apr-util-devel-1.4.1-1.i686.rpm
Apache 2.4.1 のインストール
依存ライブラリをインストール。
# yum install -y pcre-devel lua-devel libxml2-devel
distcache-devel については CentOS 6 のリポジトリでは提供されていないようなので、Fedora から SRPM を持ってきて リビルドしてインストールしました。
# su - rpmdevel $ cd src/ $ wget http://ftp.riken.jp/Linux/fedora/releases/16/Everything/source/SRPMS/distcache-1.4.5-22.src.rpm $ rpmbuild --rebuild distcache-1.4.5-22.src.rpm $ su - # rpm -Uvh /home/rpmdevel/rpm/RPMS/i686/distcache-1.4.5-22.i686.rpm /home/rpmdevel/rpm/RPMS/i686/distcache-devel-1.4.5-22.i686.rpm
これでやっと Apache をビルドする準備が完了です。
これまでと同じく rpmbuild を実行して RPM を作成します。
$ su - rpmdevel $ cd src $ wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.4.1.tar.bz2 $ rpmbuild -ta --clean --rmspec httpd-2.4.1.tar.bz2
成功すると以下のファイルが作成されます。
/home/rpmdevel/rpm/SRPMS/httpd-2.4.1-1.src.rpm /home/rpmdevel/rpm/RPMS/i686/httpd-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/httpd-devel-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/noarch/httpd-manual-2.4.1-1.noarch.rpm /home/rpmdevel/rpm/RPMS/i686/httpd-tools-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_authnz_ldap-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_lua-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_proxy_html-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_socache_dc-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_ssl-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/httpd-debuginfo-2.4.1-1.i686.rpm
ここでは取り合えず httpd と httpd-devel、mod_ssl をインストールしました。
$ su -
# rpm -Uvh /home/rpmdevel/rpm/RPMS/i686/httpd-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/httpd-devel-2.4.1-1.i686.rpm /home/rpmdevel/rpm/RPMS/i686/mod_ssl-2.4.1-1.i686.rpm
バージョンを確認し、2.4.1 がインストールされたことを確認します。
# apachectl -V Server version: Apache/2.4.1 (Unix) Server built: Feb 25 2012 19:10:50 Server's Module Magic Number: 20120211:0 Server loaded: APR 1.4.6, APR-UTIL 1.4.1 Compiled using: APR 1.4.6, APR-UTIL 1.4.1 Architecture: 32-bit Server MPM: event threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/usr" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/var/run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="/etc/httpd/conf/mime.types" -D SERVER_CONFIG_FILE="/etc/httpd/conf/httpd.conf"
これで環境は整ったので、暇を見て Apache 2.4 系の新機能を試してみたいです。