目次

RPM パッケージを作成して Fedora 18 に最新の nginx をインストールする

rpmbuild 環境を整える

$ sudo yum install @development-tools
$ sudo yum install fedora-packager

rpmbuild を行うためのディレクトリ構造を作成

 必ず root 以外で作業すること。

$ rpmdev-setuptree

 ホームディレクトリに以下の構造が作成される。

rpmbuild
   +-- BUILD
   +-- BUILDROOT
   +-- RPMS
   +-- SOURCES
   +-- SPECS
   +-- SRPMS

nginx の srpm をダウンロード

$ sudo yum install yum-utils
$ cd ~/rpmbuild/SOURCES/
$ yumdownloader --source nginx

srpm の中身を取り出す

$ rpm2cpio nginx-1.2.9-1.fc18.src.rpm | cpio -id
1499 blocks

nginx の最新ソースを取得

 nginx: download で最新ソースの URL を調べる。(ここでは 1.5.13 を利用)

$ curl -O http://nginx.org/download/nginx-1.5.13.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  750k  100  750k    0     0   164k      0  0:00:04  0:00:04 --:--:--  175k

nginx.spec のバージョンを修正

$ vi nginx.spec

ダウンロードした最新ソースのバージョンに修正する。

Version:           1.5.13

署名ファイルをリネーム

$ mv nginx-1.2.9.tar.gz.asc nginx-1.5.13.tar.gz.asc 

nginx のビルドに必要な依存パッケージのインストール

 nginx.spec でも確認できますが、以下のパッケージを予めインストールする。

$ sudo yum install GeoIP-devel gd-devel libxslt-devel pcre-devel openssl-devel \
                   gperftools-devel perl-devel perl-ExtUtils-Embed zlib-devel systemd

RPM パッケージをビルド

$ rpmbuild -ba nginx.spec

作成した RPM パッケージでインストール

 ビルドが終わったら ~/rpmbuild/RPMS/x86_64/ に作成されたパッケージでインストールする。

$ cd ~/rpmbuild/RPMS/x86_64/
$ sudo rpm -ivh nginx-1.5.13-1.fc18.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:nginx-1:1.5.13-1.fc18             ################################# [100%]

nginx の自動起動設定

$ sudo systemctl enable nginx
ln -s '/usr/lib/systemd/system/nginx.service' '/etc/systemd/system/multi-user.target.wants/nginx.service'

nginx.service; enabled を確認する。

$ sudo systemctl status nginx
nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)

nginx の起動

$ sudo systemctl start nginx

動作確認

 http://localhost/ にブラウザでアクセスして動作を確認する。

参考文献

How to create an RPM package - FedoraProject