“Published over 4 years ago”とあるので随分古い記事なのですが、Ruby on Rack #1 – Hello Rack!を読んでみようと例を見ると、Mongrelが使われていたのでインストールしようとすると失敗しました。
$ gem install mongrel Fetching: gem_plugin-0.2.3.gem (100%) Fetching: daemons-1.1.9.gem (100%) Fetching: fastthread-1.0.7.gem (100%) Building native extensions. This could take a while... Fetching: cgi_multipart_eof_fix-2.5.0.gem (100%) Fetching: mongrel-1.1.5.gem (100%) Building native extensions. This could take a while... ERROR: Error installing mongrel: ERROR: Failed to build gem native extension. /home/xxx/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb checking for main() in -lc... yes creating Makefile make compiling http11_parser.c http11_parser.rl: 関数 ‘http_parser_execute’ 内: http11_parser.rl:105:3: 警告: 符号付きと符号無しの整数式の間での比較です [-Wsign-compare] compiling http11.c http11.c: 関数 ‘http_field’ 内: http11.c:70:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c:71:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c:77:22: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:77:50: エラー: ‘struct RString’ は ‘len’ という名前のメンバを持っていません http11.c:77:27: 警告: カンマ演算子の左側の式に効力がありません [-Wunused-value] http11.c: 関数 ‘request_uri’ 内: http11.c:102:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c: 関数 ‘fragment’ 内: http11.c:113:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c: 関数 ‘request_path’ 内: http11.c:124:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c: 関数 ‘query_string’ 内: http11.c:135:3: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] http11.c: 関数 ‘header_done’ 内: http11.c:172:13: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:172:13: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:172:13: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:174:89: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:176:52: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:177:26: エラー: ‘struct RString’ は ‘len’ という名前のメンバを持っていません http11.c: 関数 ‘HttpParser_execute’ 内: http11.c:298:23: エラー: ‘struct RString’ は ‘ptr’ という名前のメンバを持っていません http11.c:299:23: エラー: ‘struct RString’ は ‘len’ という名前のメンバを持っていません http11.c:307:5: 警告: 書式が文字列リテラルでは無く、かつ書式引数ではありません [-Wformat-security] make: *** [http11.o] エラー 1 Gem files will remain installed in /home/xxx/.rvm/gems/ruby-1.9.3-p448/gems/mongrel-1.1.5 for inspection. Results logged to /home/xxx/.rvm/gems/ruby-1.9.3-p448/gems/mongrel-1.1.5/ext/http11/gem_make.out
理由はわかりませんが、プレリリース版では大丈夫だそうです。
$ gem install mongrel --pre Fetching: daemons-1.0.10.gem (100%) Fetching: mongrel-1.2.0.pre2.gem (100%) Building native extensions. This could take a while... Successfully installed daemons-1.0.10 Successfully installed mongrel-1.2.0.pre2 2 gems installed Installing ri documentation for daemons-1.0.10... Building YARD (yri) index for daemons-1.0.10... Installing ri documentation for mongrel-1.2.0.pre2... Building YARD (yri) index for mongrel-1.2.0.pre2... Installing RDoc documentation for daemons-1.0.10... Installing RDoc documentation for mongrel-1.2.0.pre2...
開発時にRailsアプリを起動する場合は、
$ rails s mongrel
です。
まあ、実際にMongrelを使うことはないのでしょうが。