httpd srpm

どうも Redhat Linux9 httpd-2.0.40 + JK2 + Jakarta Tomcat 4.1.27 でInternal error が発生するので、LinuxのhttpdかJK2をリビルドしようと思って、ちょっと調べてみた。

まずは、Redhat Linux9 の httpd がどういうオプションでコンパイルされているかを調べるために、RedhatのダウンロードサイトからhttpdのSRPMファイルを手に入れる。
これをインストール(rpm -i *.rpm)すると、/usr/src/redhat/SPECS に specファイルができあがるので、それを開いて確認。

../configure -C \
–prefix=%{_sysconfdir}/httpd \
–exec-prefix=%{_prefix} \
–bindir=%{_bindir} \
–sbindir=%{_sbindir} \
–mandir=%{_mandir} \
–libdir=%{_libdir} \
–sysconfdir=%{_sysconfdir}/httpd/conf \
–includedir=%{_includedir}/httpd \
–libexecdir=%{_libdir}/httpd/modules \
–datadir=%{contentdir} \
–with-mpm=$mpm \
–enable-suexec –with-suexec \
–with-suexec-caller=%{suexec_caller} \
–with-suexec-docroot=%{contentdir} \
–with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
–with-suexec-bin=%{_sbindir}/suexec \
–with-suexec-uidmin=500 –with-suexec-gidmin=500 \
$*

rpm -bb httpd.spec で構築ができるはずなので、実際のオプションが何かわかるはずなのだが、-bはunknown option といわれて構築できない。なぜ?

rpm のバージョンが 3.0.6 では使えることがわかった。4.xでは駄目なんではないだろうか。しかし、manでは相変わらず使えるような感じで書いてある。–testはヘルプで表示されるのに、これも使えない。なぜ?

回答はこちらにありました。
RPMのリビルドで「unknown option」エラーが表示される
rpmbuildコマンドを使うのが正解のようです。

# rpmbuild -bc httpd.spec

こうやって確認をすると、次のようになっているのがわかりました。これをJK2をbuildするときの参考にするのがよさそうです。

../configure -C –prefix=/etc/httpd –exec-prefix=/usr –bindir=/usr/bin –sbindir=/usr/sbin –mandir=/usr/share/man –libdir=/usr/lib –sysconfdir=/etc/httpd/conf –includedir=/usr/include/httpd –libexecdir=/usr/lib/httpd/modules –datadir=/var/www –with-mpm=prefork –enable-suexec –with-suexec –with-suexec-caller=apache –with-suexec-docroot=/var/www –with-suexec-logfile=/var/log/httpd/suexec.log –with-suexec-bin=/usr/sbin/suexec –with-suexec-uidmin=500 –with-suexec-gidmin=500 –enable-mods-shared=all –enable-ssl –with-ssl –enable-deflate
–enable-cgid –enable-proxy –enable-proxy-connect –enable-proxy-http –enable-proxy-ftp

ちなみに、httpdのソースは、 /usr/src/redhat/SOURCES/httpd-2.0.40 になります。また、buildした結果は /usr/src/redhat/BUILD/httpd-2.0.40 にはいります。

同じカテゴリの記事: Linux