この記事の作業はユーザーで行なって下さい。rpmbuild は root で行うとシステムにダメージを与える可能性があるそうですので、この作業は root ではなくユーザーになって行う必要があるそうです。
nginx 1.2 のインストール
ソースからインストールします。
1 2 3 | yum install gcc rpm-build perl-ExtUtils-Embed mkdir $HOME/rpmbuild $HOME/rpmbuild/SOURCES $HOME/rpmbuild/SPECS $HOME/rpmbuild/BUILD $HOME/rpmbuild/SRPMS $HOME/rpmbuild/RPMS $HOME/rpmbuild/RPMS/x86_64 echo "%_topdir $HOME/rpmbuild" >> $HOME/.rpmmacros |
以下から rpm の URL を取得してきます。
1 2 3 4 5 6 7 | wget http://dl.fedoraproject.org/pub/epel/6/SRPMS/nginx-1.0.15-1.el6.src.rpm useradd -s /sbin/nologin mockbuild rpm -Uvh nginx-1.0.15-1.el6.src.rpm cd ~/rpmbuild/SOURCES/ wget http://nginx.org/download/nginx-1.2.0.tar.gz cd ~/rpmbuild/SPECS/ vi nginx.spec |
nginx.spec は下記のように編集します。
まず、以下の行を上の方に追加。
1 | %define _unpackaged_files_terminate_build 0 |
バージョン番号を変更します。
1 | Version: 1.2.0 |
以下の行をコメントアウト。
1 | #Patch0: nginx-auto-cc-gcc.patch |
以下の行をコメントアウト。
1 | #%patch0 -p0 |
export の所に以下のように文字コードの設定を追加。
1 | export LANG='ja_JP.UTF-8' |
終わったら下記のようにビルドしてください。
1 | rpmbuild -bb nginx.spec |
するとこんなエラーが出ます。
1 2 3 4 5 6 | error: Failed build dependencies: GeoIP-devel is needed by nginx-1.2.0-1.el6.x86_64 gd-devel is needed by nginx-1.2.0-1.el6.x86_64 libxslt-devel is needed by nginx-1.2.0-1.el6.x86_64 openssl-devel is needed by nginx-1.2.0-1.el6.x86_64 zlib-devel is needed by nginx-1.2.0-1.el6.x86_64 |
言われた通りにインストールします。
1 | yum install GeoIP-devel gd-devel libxslt-devel openssl-devel zlib-devel |
再度ビルドしたら移動してインストールします。
1 2 3 | rpmbuild -bb nginx.spec cd ~/rpmbuild/RPMS/x86_64/ rpm -Uvh nginx-1.2.0-1.el6.x86_64.rpm |
とりあえずこれで nginx 1.2 が使えるようになります。
ngx_cache_purge のインストール
こちらから最新の ngx_cache_purge の URL を取得して、下記の手順で作業していきます。
1 2 3 4 | cd ~/rpmbuild/SOURCES/ wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz cd ~/rpmbuild/SPECS/ vi nginx.spec |
先程追加した define の下に以下の行を追加。
1 | %define ngx_cache_purge_version 1.5 |
Source の部分に下記の行を追加する。
1 | Source10: ngx_cache_purge-%{ngx_cache_purge_version}.tar.gz |
Patch0 の下らへんに下記の行を追加
1 | %setup -T -D -a 10 |
configure らへんの所に下記の引数を追加。前の行などを見てバックスラッシュを付加したりコメントアウトを削除することを忘れずに。
1 | --add-module=%{_builddir}/nginx-%{version}/ngx_cache_purge-%{ngx_cache_purge_version} |
make の下にこれを入れる。
1 2 | mv ngx_cache_purge-1.5/CHANGES ngx_cache_purge-1.5/CHANGES.ngx_cache_purge mv ngx_cache_purge-1.5/README.md ngx_cache_purge-1.5/README.ngx_cache_purge |
doc の所にこれを入れる。
1 | %doc ngx_cache_purge-1.5/CHANGES.ngx_cache_purge ngx_cache_purge-1.5/README.ngx_cache_purge |
終わったら下記の手順でビルドします。
1 2 3 4 5 | rpmbuild -bb nginx.spec cd ~/rpmbuild/RPMS/x86_64/ rpm -Uvh nginx-1.2.0-1.el6.x86_64.rpm /sbin/chkconfig nginx on /etc/init.d/nginx start |
ちなみに新しいモジュールを入れたり、間違えた時に修正したい場合はこの手の方法で再度インストールすると思いますが、その時は以下のように一度削除します。
1 | rpm -e nginx-1.2.0 |
すると下記のように設定ファイルはバックアップされて全て消えます。
1 2 | 警告: /etc/nginx/nginx.conf は /etc/nginx/nginx.conf.rpmsave として保存されました。 警告: /etc/nginx/conf.d/virtual.conf は /etc/nginx/conf.d/virtual.conf.rpmsave として保存されました。 |
その後さっきのようにインストールすれば良いです。
1 2 | cd ~/rpmbuild/RPMS/x86_64/ rpm -Uvh nginx-1.2.0-1.el6.x86_64.rpm |
- さくらのVPS 乗り換え備忘録 (Nginx インストール rpmbuild 編) | Code Life
- nginx 1.0.0 が出てます : dogmap.jp
- Nginx に cache purge モジュールを追加する : dogmap.jp
- apache のかわりにnginxを使ってみる(1) nginxの最新版をインストールする | レンタルサーバー・自宅サーバー設定・構築のヒント
- apache のかわりにnginxを使ってみる(1)-3 リバースプロキシのキャッシュ削除モジュール nginx cache purge を組み込む | レンタルサーバー・自宅サーバー設定・構築のヒント
- nginxとredisのrpmを作ってみた(fedora16 x86_64用) – CubicLouve
コメント