9

Ruby 1.9.3 用の Mongrel を正常にインストールするにはどうすればよいですか

エラーは次のとおりです。

Building native extensions.  This could take a while...
ERROR:  Error installing mongrel:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
checking for main() in -lc... yes
creating Makefile

make
compiling http11_parser.c
compiling http11.c
http11.c: In function ‘http_field’:
http11.c:70:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c:71:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c:77:22: error: ‘struct RString’ has no member named ‘ptr’
http11.c:77:50: error: ‘struct RString’ has no member named ‘len’
http11.c:77:27: warning: left-hand operand of comma expression has no effect [-Wunused-value]
http11.c: In function ‘request_uri’:
http11.c:102:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c: In function ‘fragment’:
http11.c:113:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c: In function ‘request_path’:
http11.c:124:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c: In function ‘query_string’:
http11.c:135:3: error: format not a string literal and no format arguments [-Werror=format-security]
http11.c: In function ‘header_done’:
http11.c:172:13: error: ‘struct RString’ has no member named ‘ptr’
http11.c:172:13: error: ‘struct RString’ has no member named ‘ptr’
http11.c:172:13: error: ‘struct RString’ has no member named ‘ptr’
http11.c:174:89: error: ‘struct RString’ has no member named ‘ptr’
http11.c:176:52: error: ‘struct RString’ has no member named ‘ptr’
http11.c:177:26: error: ‘struct RString’ has no member named ‘len’
http11.c: In function ‘HttpParser_execute’:
http11.c:298:23: error: ‘struct RString’ has no member named ‘ptr’
http11.c:299:23: error: ‘struct RString’ has no member named ‘len’
http11.c:307:5: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
make: *** [http11.o] Error 1


Gem files will remain installed in /var/lib/gems/1.9.1/gems/mongrel-1.1.5 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/mongrel-1.1.5/ext/http11/gem_make.out

私はすでに試してみsudo gem install mongrel --pre ました--source

なぜ機能しないのかわかりません。Ruby 1.9.1 以降と互換性がありますか?

4

3 に答える 3

10

あなた一人じゃありません。ただし、スレッドには、可能な修正へのリンクがあります。YMMVは試していませんが、もっともらしい修正のようです。

Mongrelが更新されなくなったことを考えると、Thinのようなものに切り替えてみませんか?

編集:申し訳ありませんが、1.9.3について質問されているようです。私の理解では、Mongrelは最大1.9.1と互換性がありますが、1.9.2以降では壊れています。より現代的で維持されているものに切り替えるもう1つの理由。

于 2012-12-13T02:40:28.320 に答える
1

John Bが述べたように、Thinに切り替えます。

Ruby 1.9.3で現在設定されているMongrelをインストールできなかった後、GemfileからMongrelをコメントアウトし、Thinを追加しました。これにより、アプリが完全にインストールされ、正常に実行されます。

私のGemfileで

#gem 'mongrel', '1.2.0.pre2'
gem 'thin'

次に実行します

bundle install
于 2013-01-14T09:12:38.107 に答える