Apache2.0.65のrpmを作成する

はじめに

必要に迫られてApache2.0.65のrpmをソースから作ることになりました。
ソースからrpm作るのがはじめてです。rpmbuildを使うといいらしいです。

環境

VMで2台サーバがあります。

  • CentOS5.10(32bit)
    • rpm作成用:DevLS
  • CentOS5.10(32bit)
    • 運用環境:OpsLS

rpmbuildインストール

DevLSにrpmbuildと開発ツールをインストールします。

# yum install rpm-build
# yum groupinstall "Development Tools"

rpmbuildの準備

ユーザー作成

# useradd rpmbuilder
# su - rpmbuilder

ディレクトリ作成

ディレクトリ作成とrpmbuild時のパス設定。

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

rpm作成

ソース取得

$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/httpd-2.0.65.tar.gz

展開

$ tar zxvf httpd-2.0.65.tar.gz

specファイルの修正

$ cp ./httpd-2.0.65/httpd.spec ~/rpmbuild/SPECS/
$ vi ~/rpmbuild/SPECS/httpd.spec

今回はconfigureに--enable-jkを追加する必要があったのでそこを直した。

作成

$ cp httpd-2.0.65.tar.gz ~/rpmbuild/SOURCES/
$ rpmbuild -bb ~/rpmbuild/SPECS/httpd.spec
エラー: 旧来の構文はサポートされません: serial
エラー: 63 行目: 不明なタグ: Serial: 1

~/rpmbuild/SPECS/httpd.specの63行目を削除して

$ rpmbuild -bb ~/rpmbuild/SPECS/httpd.spec
エラー: ビルド依存性の失敗:
        openldap-devel は httpd-2.0.65-1.i386 に必要とされています
        db4-devel は httpd-2.0.65-1.i386 に必要とされています
        expat-devel は httpd-2.0.65-1.i386 に必要とされています
        openssl-devel は httpd-2.0.65-1.i386 に必要とされています

足りないものをyum install

# yum install openldap-devel db4-devel expat-devel openssl-devel

もう一回rpmbuild

$ rpmbuild -bb ~/rpmbuild/SPECS/httpd.spec
rmdir: /var/tmp/httpd-root/etc/httpd/logs: No such file or directory
エラー: /var/tmp/rpm-tmp.26801 の不正な終了ステータス (%install)

だめだ。あきらめよう。