2012-09-11 20 views
14

Actualicé rvm a 1.15.8, luego bajé a 1.15.7 después de tener algunos problemas en zsh. Después de la degradación, mis versiones de Ruby 1.9+ regresaron bien, pero 1.8.7 no se instalará nuevamente.rvm ya no puede instalar 1.8.7-p352 en Mac OS X Mountain Lion

Hay dos errores que se están produciendo:

Error running 'patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch"', please read /Users/me/.rvm/log/ruby-1.8.7-p352/patch.apply.stdout-rouge-fix.log 

El contenido de este archivo son:

[2012-09-11 01:05:59] patch -F 25 -p1 -N -f <"/Users/me/.rvm/patches/ruby/1.8.7/stdout-rouge-fix.patch" 
patching file lib/mkmf.rb 
Hunk #1 FAILED at 201. 
1 out of 1 hunk FAILED -- saving rejects to file lib/mkmf.rb.rej 

y:

Error running 'make ', please read /Users/me/.rvm/log/ruby-1.8.7-p352/make.log 

Se ha producido un error al ejecutar make . Detener la instalación.

y el contenido de ese archivo (son sólo las primeras líneas que comienzan con los errores):

Fail to find [tclConfig.sh, tkConfig.sh] 
Use MacOS X Frameworks. 

Find Tcl/Tk libraries. Make tcltklib.so which is required by Ruby/Tk. 
gcc-4.2 -I. -I../.. -I../../. -I../.././ext/tk -DHAVE_RB_SAFE_LEVEL -DHAVE_RB_HASH_LOOKUP -DHAVE_RB_PROC_NEW -DHAVE_RB_OBJ_TAINT -DHAVE_ST_PTR -DHAVE_ST_LEN -DRUBY_VERSION=\"1.8.7\" -DRUBY_RELEASE_DATE=\"2011-06-30\" -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -DWITH_TCL_ENABLE_THREAD=0 -fno-common -g -O2 -fno-common -pipe -fno-common -c stubs.c 
In file included from stubs.c:10: 
/usr/include/tk.h:78:23: error: X11/Xlib.h: No such file or directory 
In file included from stubs.c:10: 
/usr/include/tk.h:549: error: expected declaration specifiers or ‘...’ before ‘Window’ 
/usr/include/tk.h:549: error: ‘Window’ declared as function returning a function 
/usr/include/tk.h:552: error: expected declaration specifiers or ‘...’ before ‘XEvent’ 
/usr/include/tk.h:561: error: expected specifier-qualifier-list before ‘Tk_ClassCreateProc’ 
/usr/include/tk.h:655: error: expected specifier-qualifier-list before ‘Bool’ 
/usr/include/tk.h:677: error: expected specifier-qualifier-list before ‘Bool’ 
/usr/include/tk.h:756: error: expected specifier-qualifier-list before ‘Display’ 
/usr/include/tk.h:902: error: expected declaration specifiers or ‘...’ before ‘XPoint’ 
/usr/include/tk.h:996: error: expected declaration specifiers or ‘...’ before ‘Display’ 

una de las aplicaciones que apoyo es 1.8.7. Estoy muerto en el agua. Parece que podría ser un problema con Mountain Lion vs. rvm. ¿Alguien puede señalarme en la dirección correcta?

ACTUALIZACIÓN:

que superé el primer error haciendo "reinstalar" en lugar de simplemente "instalar". Aunque 1.8.7-p352 no estaba en la lista de rubíes dada por el comando "rvm list rubies".

+0

Debería publicar esto en http://serverfault.com/ o http://superuser.com/ – maxdec

+0

@Doble Respondo la mayoría de las preguntas de RVM, y la mayoría de ellas se publican aquí, publicarlas en otro lugar será lo más es probable que tenga más tiempo para obtener una respuesta. – mpapis

Respuesta

33

se problema en la detección de Tcl/Tk por ruby ​​1.8.7, la solución es para desactivarlo:

rvm reinstall 1.8.7 --without-tcl --without-tk 

la otra solución cuando se necesita Tcl/Tk: https://stackoverflow.com/a/11666019/497756

+0

¿Qué es tcl/tk? ¿Cómo sé si los necesitaré? Editar: ¿Solo necesito tcl y tk cuando quiero construir una GUI de ruby? (http://rubylearning.com/satishtalim/ruby_tk_tutorial.html) – crispy

+0

si no sabía cuáles son entonces no lo necesita, es realmente antiguo y rara vez se utiliza, ya que las interfaces son muy feas – mpapis

+0

Parece una muy mala idea incluir esto por defecto. – tadman

6

Creo terminó con dos preguntas similares en SF aquí. Mi problema principal era que el archivo tcl.h include en Mountain Lion (ubicación: /usr/include/tcl.h enlazado) no podía resolver una referencia interna que tenía a "X11/Xlib.h". Pensé que instalar tcl y tk a través de homebrew solucionaría el problema al generar una ruta a Xlib.h que podría resolverse. Así que me encontré:

brew install tcl 

y:

brew install tk 

y:

rvm remove 1.8.7-p352 
rvm install 1.8.7-p352 

y funcionó. Pero la respuesta de Michal anterior habría funcionado igual de bien, creo. Esta respuesta servirá para ayudar a las personas a construirla que necesitan tcl y tk.

+0

Homebrew ya no parece tener tcl y tk. –

+0

'brew install homebrew/dupes/tcl-tk' debería funcionar, creo. –