2009-07-02 15 views
22

मैंने कल खुद रेल विकास में शुरुआत की।
मैंने ruby ​​1.9.1, rubygems और रेल स्थापित किया।
gem install mongrel चल रहा है ठीक से और स्पष्ट रूप से स्थापित mongrel भी काम किया। मैं थोड़ा हैरान हूँ क्योंकि:मणि इंस्टॉल mongrel रूबी के साथ विफल रहता है 1.9.1

  • स्क्रिप्ट/सर्वर डिफ़ॉल्ट
  • which mongrel रिटर्न कुछ भी नहीं
  • locate 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 
. 
. 
. 

प्रविष्टियों की बहुत सारी द्वारा webrick शुरू होता लग रही है जैसे मैं संकर जाति का स्थापित होना (दोनों डिफ़ॉल्ट स्थापना और मेरे कस्टम इंस्टॉल)। तो क्यों नहीं जो मोन्गल कुछ वापस करता है।

 
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

यह रूबी 1.9 पर other people are having problems running Mongrel की तरह दिखता है:

इसके अलावा gem install mongrel रिटर्न का उपयोग कर संकर जाति का पुनः स्थापित करने की कोशिश कर अपवादों में से अपने स्वयं के सेट फेंकता है।

टिप्पणी अमी Mahloof से लगता है जैसे कि यह एक संभव ठीक कर सकते हैं:

1):

यहाँ आप यह

ठीक करने के लिए आदेश यहाँ है में क्या करने की जरूरत अद्यतन निर्देश है सीडी /usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/ext/http11

2) sudo vi/http11.c पर दोस्त और:

के लिए लाइन 77 को प्रतिस्थापित करें (ch = RSTRING_PTR (f), end = ch + RSTRING_LEN (f); ch < अंत; ch ++) {

, साथ

बृहदान्त्र = strchr (RSTRING_PTR (अस्थायी) लाइन 172 की जगह ':');

साथ

rb_hash_aset (अनुरोध, global_server_name, rb_str_substr (अस्थायी, 0, पेट - RSTRING_PTR (अस्थायी))) लाइन 174 की जगह;

replce लाइन 176.177

rb_str_substr (अस्थायी, पेट - RSTRING_PTR (अस्थायी) +1, RSTRING_LEN (अस्थायी)));

की जगह लाइनों 298 299

DPTR = RSTRING_PTR (डेटा);

dlen = RSTRING_LEN (डेटा);

3) फ़ाइल सहेजें, बंद vi/TextMate

4) sudo माणिक extconf।rb & & sudo बनाने & & sudo

5) सीडी ../../lib/mongrel (या पूर्ण पथ "/usr/local/lib/ruby/gems/1.9.1/gems/ स्थापित करना संकर जाति-1.1.5/lib/दोगला "

6) दोस्त/sudo vi handlers.rb

7),

में मामला बयानों लाइनों 208-212 पर तय की घटनाओं को बदलने": झूठे "टू" तो झूठा "

8) सुडो मणि gem_plugin इंस्टॉल करें (अन्यथा mongrel लटका सकता है)

किया गया!

+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 \"

यह समस्या हल करें।