2009-07-02 14 views
22

Ho iniziato me stesso nello sviluppo di binari ieri.
Ho installato il rubino 1.9.1, rubini e rotaie.
In esecuzione gem install mongrel funzionava bene e apparentemente installato anche bastardo. Sono un po 'perplesso perché:gem di installazione bastardo fallisce con rubino 1.9.1

  • script/server inizia webrick di default
  • which mongrel restituisce nulla
  • locate mongrel restituisce un sacco di voci come
 
/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 
. 
. 
. 

fa apparire come ho bastardo installato (sia l'installazione predefinita che la mia installazione personalizzata). Quindi, perché non importa quale meticcio restituisce qualcosa.

cercando anche di reinstallare bastardo utilizzando gem install mongrel ritorna lancia una propria serie di eccezioni:

 
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 

risposta

5

Sembra other people are having problems running Mongrel su Ruby 1.9.

Il commento di Ami Mahloof sembra che potrebbe essere una possibile soluzione:

Ecco cosa dovete fare per risolvere il problema

ecco le istruzioni aggiornate:

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

2) sudo vi/mate http11.c e:

sostituire la linea 77 con

per (ch = RSTRING_PTR (f), end = ch + RSTRING_LEN (f); ch < fine; ch ++) {

sostituire la linea 172 con

colon = strchr (RSTRING_PTR (temp), ':');

sostituire linea 174 con

rb_hash_aset (req, global_server_name, rb_str_substr (temperatura, 0, colon - RSTRING_PTR (temp)));

linea REPLCE 176.177

rb_str_substr (temp, colon - RSTRING_PTR (temp) +1, RSTRING_LEN (temp)));

sostituire le righe 298 299

dptr = RSTRING_PTR (dati);

dlen = RSTRING_LEN (dati);

3) salvare il file, chiudere il VI/TextMate

4) sudo ruby ​​extconf.rb & & sudo make & & sudo make install

5) cd ../../lib/mongrel (o il percorso completo “/usr/local/lib/ruby/gems/1.9.1/gems/ bastardino-1.1.5/lib/bastardo”

6) compagno/sudo vi handlers.rb

7) fissare le istruzioni case in

Sulle linee 208-212, cambiare le istanze di“: false "A" quindi falso "

8) sudo gem installa gem_plugin (altrimenti mongrel potrebbe bloccarsi)

fatto!

+2

il sito è inattivo, puoi inserire il commento/contenuto qui, grazie – msanjay

3

Si tratta di un problema di compilazione in modo che sia più facile per fare questo:

git clone git://github.com/mongrel/mongrel.git 

cd mongrel/ext/http/ 

Ora modificare il http11.c:

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

Salva e ora dalla stessa directory effettuare le seguenti operazioni:

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

Fatto!

47

È possibile installare bastardo 1.2 pre-release con sudo gem install mongrel --pre:

 
$ 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

Questo ha funzionato per me, grazie mille! – alvincrespo

+0

Sono su Rails 2.3.8/Ruby 1.9 e questo ha funzionato anche per me. – dafmetal

2

può costringerti a installare bastardo come questo

sudo gem install bastardo -v 1.2.0.pre2 - --with-CFLAGS = \ "- O2 -pipe -march = nativo -w \"

Risolvi il problema.

Problemi correlati