GCC 4.7 では最新リリース版の Passenger (3.0.15) のビルドに失敗する。
これは C11 で追加された TIME_UTC が、 Boost 1.49 までで定義されている TIME_UTC
と衝突するためである。
Arch Linux では既に GCC 4.7 が導入されているが、
Boost も最新版の 1.50 であるため、この問題は起きない。ところが
Passenger は古いバージョンの Boost を同梱しており、それを使って必要なものを
ビルドしようとする。このため GCC 4.7 の環境ではビルドが失敗する。
Boost にパッチを当ててこの問題を解決する修正が Passenger のレポジトリに
先日コミット( [Backport fix from https://svn.boost.org/trac/boost/ticket/6940]
(https://github.com/FooBarWidget/passenger/commit/27894da4c7a5da30ef7ab4b03f914d1dec8531ac)
)されているので、git からソースコードを持ってきて gem を作り、インストール
すれば、ビルドに成功する Passenger をインストールできたことになる。
# Install Doxygen and Asciidoc to Arch Linux.
sudo pacman -S --noconfirm --needed doxygen asciidoc
git clone https://github.com/FooBarWidget/passenger.git
cd passenger
rake package
gem install -l pkg/passenger-3.0.16.gem
以上のようにすれば gem に Git 版 Passenger がインストールされる。
Passenger StandAlone を使ってみよう。
cd $rails_application_to_be_run_with_passenger
passenger start -p $passenger_port -d
Passenger が Nginx など、必要なものをビルドして起動するはずだ。