2009-07-02 4 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 시작합니다 때문에 나는 약간 의아해입니다 (기본 설치와 사용자 정의 설치 모두). 왜 어떤 잡동사니가 뭔가를 돌려주지 않는지? 그것은 루비 1.9에 other people are having problems running 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

    :

    는 또한 gem install mongrel 수익률을 사용하여 잡종을 다시 설치하려고하면 예외 자체적가 발생합니다.

    는 가능한 수정 될 수처럼 아미 Mahloof에 의해 댓글이 보인다

    :

    1) : 여기

    당신이 그것을

    를 해결하기 위해 여기에서 할 업데이트 된 지침을 필요로 무엇입니까 CD /usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/ext/http11

    2) http11.c에 sudo는 VI/동료와 :

    행을 77을

    으로 바꿉니다 (ch = RSTRING_PTR (f), end = ch + RSTRING_LEN (f); ch < 끝; CH ++) {

    ,

    = strchr과 결장 (RSTRING_PTR (TEMP)와 라인 (172)을 대체 '');

    rb_hash_aset (REQ, global_server_name, rb_str_substr (온도, 0, 결장 - RSTRING_PTR (TEMP)))과 라인 (174)을 대체;

    로 교체하십시오 라인 176,177

    rb_str_substr (온도, 결장 - RSTRING_PTR (TEMP) +1, RSTRING_LEN (TEMP)));

    교체 행 (298) (299)

    DPTR RSTRING_PTR = (데이터);

    dlen = RSTRING_LEN (데이터);

    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에

    의 경우 문을 수정의 인스턴스를 변경"거짓 "~"거짓 "

    8) sudo gem install gem_plugin (그렇지 않으면 잡동사니가 멈춤)

    done!

    +2

    사이트가 다운되었습니다. 여기에 의견/내용을 붙여주세요. 감사합니다. – msanjay

    3

    이렇게 쉽게 컴파일 문제입니다되도록 : 그것은 저장을

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

    지금 같은 디렉토리에서 다음을 수행하십시오 :

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

    이제 http11.c을 편집

    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

    나는 레일즈 2.3.8/루비 1.9에 있는데 이것은 나에게도 효과가있다. – dafmetal

    2

    설치이

    sudo는 보석 같은 잡종을 설치하는 잡종 -v 1.2.0.pre2 강제 할 수 - --with-CFLAGS를 = \ "- O2 -pipe -march = native -w \"

    이렇게하면 문제가 해결됩니다.

    관련 문제