2009-07-02 13 views
22

私は昨日自分でレール開発に着​​手しました。
ruby​​ 1.9.1、rubygems、およびrailsをインストールしました。
gem install mongrelを実行すると、細かく表面的に雑草もインストールされました。gem install mongrelがruby 1.9.1で失敗する

  • スクリプト/サーバは、私は雑種がインストールされているように見えるんデフォルト
  • which mongrel何も返さない
 
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1 
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib 
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel 
. 
. 
. 
/usr/local/bin/mongrel_rails 
/usr/local/lib/ruby/gems/1.9.1/cache/mongrel-1.1.5.gem 
/usr/local/lib/ruby/gems/1.9.1/doc/actionpack-2.3.2/rdoc/files/lib/action_controller/vendor/rack-1_0/rack/handler/evented_mongrel_rb.html 
/usr/local/lib/ruby/gems/1.9.1/doc/actionpack-2.3.2/rdoc/files/lib/action_controller/vendor/rack-1_0/rack/handler/mongrel_rb.html 
/usr/local/lib/ruby/gems/1.9.1/doc/actionpack-2.3.2/rdoc/files/lib/action_controller/vendor/rack-1_0/rack/handler/swiftiplied_mongrel_rb.html 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/evented_mongrel.rb 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb 
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/swiftiplied_mongrel.rb 
/usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5 
. 
. 
. 

ようなエントリの

  • locate mongrel戻りロットによってWEBrickに開始されますので、私は少し困惑しています(デフォルトのインストールと私のカスタムインストールの両方)。だから、なぜ雑種が何かを返さないのはなぜですか?

    gem install mongrelリターンを使用して雑種を再インストールしようとすると、例外の独自のセットをスロー:

     
    Building native extensions. This could take a while... 
    ERROR: Error installing mongrel: 
        ERROR: Failed to build gem native extension. 
    
    /usr/local/bin/ruby extconf.rb install mongrel 
    checking for main() in -lc... yes 
    creating Makefile 
    
    make 
    gcc -I. -I/usr/local/include/ruby-1.9.1/i386-darwin9.7.0 -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -D_XOPEN_SOURCE=1 -O2 -g -Wall -Wno-parentheses -fno-common -pipe -fno-common -o http11.o -c http11.c 
    http11.c: In function 'http_field': 
    http11.c:77: error: 'struct RString' has no member named 'ptr' 
    http11.c:77: error: 'struct RString' has no member named 'len' 
    http11.c:77: warning: left-hand operand of comma expression has no effect 
    http11.c:77: warning: statement with no effect 
    http11.c: In function 'header_done': 
    http11.c:172: error: 'struct RString' has no member named 'ptr' 
    http11.c:174: error: 'struct RString' has no member named 'ptr' 
    http11.c:176: error: 'struct RString' has no member named 'ptr' 
    http11.c:177: error: 'struct RString' has no member named 'len' 
    http11.c: In function 'HttpParser_execute': 
    http11.c:298: error: 'struct RString' has no member named 'ptr' 
    http11.c:299: error: 'struct RString' has no member named 'len' 
    make: *** [http11.o] Error 1 
    
  • 答えて

    5

    それは、Ruby 1.9にother people are having problems running Mongrelのように見えます。

    ことが可能に修正かもしれないよう亜美Mahloofによってコメントは思わ:

    ここでは、ここで更新された命令だ、あなたはそれを

    を固定するために実行する必要があり何:

    1) CD /usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/ext/http11

    2)http11.c上のsudoのvi /メイトと:

    (CH = RSTRING_PTR(f)は、端= CH + RSTRING_LEN(F)のため

    とライン77を置き換えます。 ch < end; CH ++){

    結腸= strchr(RSTRING_PTR(TEMP)とライン172を置き換えます ':')。

    rb_hash_aset(REQ、global_server_name、rb_str_substr(温度、0、結腸 - RSTRING_PTR(TEMP)))とライン174を置き換えます。

    replceライン176177

    rb_str_substr(TEMP、結腸 - RSTRING_PTR(TEMP)+1、 RSTRING_LEN(TEMP)))。

    置き換える行298 299

    DPTR = RSTRING_PTR(データ)。

    dlen = RSTRING_LEN(data);

    3)ファイルを保存するには、閉じVI/TextMateの

    4)sudoのルビーEXTCONF。sudoは& & sudoを作るRB & &は

    5)CD ../../lib/mongrel (またはフルパス「/usr/local/lib/ruby/gems/1.9.1/gems/をインストールします雑種-1.1.5/libに/雑種」

    6)メイト/ sudoのviのhandlers.rb

    7)のインスタンスを変更、ライン208-212上

    にcase文を修正「:偽"から"偽 "

    8)sudo gem install gem_plugin(他の雑種がハングすることがあります)

    完了!

    +2

    サイトがダウンしていますので、コメント/コンテンツをここに貼り付けてください。ありがとう – msanjay

    3

    それがこれを行うには簡単ですので、それは、コンパイルの問題です:

    git clone git://github.com/mongrel/mongrel.git 
    
    cd mongrel/ext/http/ 
    

    http11.cを編集:

    #ifndef RSTRING_PTR 
    #define RSTRING_PTR(s) (RSTRING(s)) 
    #endif 
    #ifndef RSTRING_LEN 
    #define RSTRING_LEN(s) (RSTRING(s)) 
    #endif 
    

    それを保存して、今と同じディレクトリからは、次の手順を実行します

    sudo ruby extconf.rb && sudo make && sudo make install 
    

    完了!

    47

    あなたはsudo gem install mongrel --preで雑種プレリリース1.2をインストールすることができます。

     
    $ sudo gem1.9 install mongrel --pre 
    > Building native extensions. This could take a while... 
    > Successfully installed mongrel-1.2.0.pre2 
    > 1 gem installed 
    
    +0

    これは私のために働いてくれてありがとうございます! – alvincrespo

    +0

    私はRails 2.3.8/Ruby 1.9で、これは私のためにも機能しました。 – dafmetal

    2

    インストールこの

    sudoの宝石のような雑種をインストールするには雑種-v 1.2.0.pre2強制することができます - --with-CFLAGSを= \ " - O2 -pipe -march = native -w \"

    これで問題が解決します。

    関連する問題