今のところ被害は受けていないが、Apache killerの対応したバージョンにアップした方が
安全なのでアップデートを行ったときの作業手順です。
今回、rpmパッケージが出ていないと思いrpmパッケージを自作することから調べ、
途中で起動スクリプト(/etc/init.d配下)ではプロセスファイルが無いために
起動はできるが停止ができないというトラブルに合った。
しかし、調べてみるとapache killerに対応したrpmがリリースされているいうことで
yumからアップデートを行い、事なきを得た。
方法論としては、2通り、1つ目は簡単なyum updateで対応済みのrpmパッケージをインストールする方法、
2つ目はrpmbuildを使ってtar.gzからrpmパッケージをインストールする方法になります。
■yum
この方法はとっても簡単で下記の通りで終わりです。
# yum update httpd
設定ファイルが差し変わるのでバックアップを取るか、通常/etc/httpd/confと/etc/httpd/conf.dに新しいファイルが
作成されているので元のファイルに戻す。
■rpmbuild
まず、apache httpdのtar.gzをダウンロードする。
次にrpmbuildコマンドでrpmを作成する。
# rpmbuild -ta httpd-2.2.21.tar.gz
これを行った時にライブラリが足りないというエラーが出て、作成が止まる。
エラー: ビルド依存性の失敗:
apr-devel は httpd-2.2.21-1.i386 に必要とされています
apr-util-devel は httpd-2.2.21-1.i386 に必要とされています
openldap-devel は httpd-2.2.21-1.i386 に必要とされています
db4-devel は httpd-2.2.21-1.i386 に必要とされています
expat-devel は httpd-2.2.21-1.i386 に必要とされています
pcre-devel >= 5.0 は httpd-2.2.21-1.i386 に必要とされています
/usr/bin/apr-1-config は httpd-2.2.21-1.i386 に必要とされています
/usr/bin/apu-1-config は httpd-2.2.21-1.i386 に必要とされています
openssl-devel は httpd-2.2.21-1.i386 に必要とされています
なので、次に必要なライブラリをインストールします。
# yum install apr-devel apr-util-devel openldap-devel db4-devel expat-devel pcre-devel distcache-devel –enablerepo=remi –enablerepo=epel –enablerepo=rpmforge
再度、rpmbuildを行うとmakeなどが走って、
完了後、/usr/src/redhat/RPMS/rpmsに4つのファイルが作成されます。
- httpd-2.2.21-1.i386.rpm
- httpd-devel-2.2.21-1.i386.rpm
- httpd-manual-2.2.21-1.i386.rpm
- mod_ssl-2.2.21-1.i386.rpm
次に、作成されたrpmパッケージをrpmコマンドを使ってインストールします。
# rpm -iUvh httpd-2.2.21-1.i386.rpm mod_ssl-2.2.21-1.i386.rpm httpd-manual-2.2.21-1.i386.rpm httpd-devel-2.2.21-1.i386.rpm
エラー: 依存性の欠如:
apr >= 1.4.2 は httpd-2.2.21-1.i386 に必要とされています
apr-util >= 1.3.10 は httpd-2.2.21-1.i386 に必要とされています
apr-devel >= 1.4.2 は httpd-devel-2.2.21-1.i386 に必要とされています
apr-util-devel >= 1.3.10 は httpd-devel-2.2.21-1.i386 に必要とされています
libtool は httpd-devel-2.2.21-1.i386 に必要とされています
また、ここでライブラリの依存でエラーになりました。
ビルドが出来ているので恐らく大丈夫だろう(普通はダメだよね)と思い、
強制インストールすることにしました。
# rpm -iUvh httpd-2.2.21-1.i386.rpm mod_ssl-2.2.21-1.i386.rpm httpd-manual-2.2.21-1.i386.rpm httpd-devel-2.2.21-1.i386.rpm –force –nodepes
その後は、/etc/init.dにある起動スクリプトが停止ができないこと以外は特に問題が無かったが、
起動スクリプトが使えないのも困るというか、面倒なのでリポジトリのapacheに入れ直しました。
<参考サイト>
Apache 2.2.21 をrpmbuildしようとして失敗したことについて
Apacheセキュリティホール対策アップデート yum対応可能