nginx_cache を有効にして nginx をビルド&インストール
EPEL パッケージリポジトリをインストール
[paraches@localhost myTest]$ wget http://ftp.riken.jp/Linux/fedora/epel/5/i386/epel-release-5-4.noarch.rpm [paraches@localhost myTest]$ sudo rpm -Uvh epel-release-5-4.noarch.rpm
nginx に必要なパッケージを yum でインストール
[paraches@localhost myTest]$ sudo yum --enablerepo=epel install rpm-build spawn-fcgi pcre-devel zlib-devel openssl-devel
たくさんインストールされた!
nginx のソースパッケージをダウンロード
[paraches@localhost myTest]$ wget http://download.fedora.redhat.com/pub/epel/5/SRPMS/nginx-0.8.55-1.el5.src.rpm
SRPM のインストール
nginx.conf は /usr/src/redhat/SPEC に、ソースファイルは /usr/src/redhat/SOURCES に展開される。
[paraches@localhost myTest]$ sudo rpm -ivh nginx-0.8.55-1.el5.src.rpm
盛大なワーニングは無視!
最新の nginx と Cache Purge plugin をダウンロード
現時点での最新は nginx-1.1.9 と ngx_cache_purge-1.5。
[paraches@localhost myTest]$ cd /usr/src/redhat/SOURCES/ [paraches@localhost SOURCES]$ sudo wget http://nginx.org/download/nginx-1.1.9.tar.gz [paraches@localhost SOURCES]$ sudo wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz
/usr/src/redhat/SPEC/nginx.spec を nginx.spec.org にして退避。
[paraches@localhost SOURCES]$ cd ../SPECS/ [paraches@localhost SPECS]$ sudo mv nginx.spec nginx.spec.org
参考にしているページに nginx.spec があるのでダウンロードして最新の nginx と Cache Purge plugin に合わせて編集。
[paraches@localhost SPECS]$ sudo wget http://sakuratan.biz/nginx/nginx.spec
変更箇所は
- 最初の Version : 1.0.6 を 1.1.9 へ変更。
- 全ての ngx_cache_purge-1.3 を ngx_cache_purge-1.5 へ変更。
nginx をビルド
rpmbuild コマンドでビルドをする。
[paraches@localhost SPECS]$ sudo rpmbuild -bb nginx.spec <省略> make[1]: Leaving directory `/usr/src/redhat/BUILD/nginx-1.1.9' + mv ngx_cache_purge-1.5/CHANGES ngx_cache_purge-1.5/CHANGES.ngx_cache_purge + mv ngx_cache_purge-1.5/README ngx_cache_purge-1.5/README.ngx_cache_purge mv: cannot stat `ngx_cache_purge-1.5/README': No such file or directory エラー: /var/tmp/rpm-tmp.69085 の不正な終了ステータス (%build) RPM ビルドエラー: /var/tmp/rpm-tmp.69085 の不正な終了ステータス (%build) [paraches@localhost SPECS]$
エラー出た!
ngx_cache_purge-1.5/README がないらしい。
ngx_cache_purge-1.5.tar.gz を展開して調べてみたら README.md はあったので、README.md を README にコピーして ngx_cache_purge-1.5.tar.gz を作り直す。
[paraches@localhost SPECS]$ cd ../SOURCES/ [paraches@localhost SOURCES]$ sudo tar zxvf ngx_cache_purge-1.5.tar.gz [paraches@localhost SOURCES]$ sudo cp ngx_cache_purge-1.5/README.md ngx_cache_purge-1.5/README [paraches@localhost SOURCES]$ sudo mv ngx_cache_purge-1.5.tar.gz ngx_cache_purge-1.5.tar.gz.org [paraches@localhost SOURCES]$ sudo tar zcvf ngx_cache_purge-1.5.tar.gz ngx_cache_purge-1.5
再度ビルド
[paraches@localhost SOURCES]$ cd ../SPECS/ [paraches@localhost SPECS]$ sudo rpmbuild -bb nginx.spec ファイルの処理中: nginx-debuginfo-1.1.9-1 Provides: nginx.so.debug()(64bit) Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/nginx-1.1.9-1-root-root 書き込み完了: /usr/src/redhat/RPMS/x86_64/nginx-1.1.9-1.x86_64.rpm 書き込み完了: /usr/src/redhat/RPMS/x86_64/nginx-debuginfo-1.1.9-1.x86_64.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.34603 + umask 022 + cd /usr/src/redhat/BUILD + cd nginx-1.1.9 + rm -rf /var/tmp/nginx-1.1.9-1-root-root + exit 0 [paraches@localhost SPECS]$
無事終了。
できあがった rpm ファイルの確認
[paraches@localhost SPECS]$ ls /usr/src/redhat/RPMS/x86_64/ nginx-1.1.9-1.x86_64.rpm nginx-debuginfo-1.1.9-1.x86_64.rpm [paraches@localhost SPECS]$
ちゃんとできてる!
rpm コマンドで nginx をインストール
[paraches@localhost SPECS]$ sudo rpm -Uvh /usr/src/redhat/RPMS/x86_64/nginx-1.1.9-1.x86_64.rpm
無事終了。