2011-11-01 25 views
5

Estoy tratando de instalar Ruby 1.9.3 usando rvm. Sin embargo, cuando me escriba:Error al instalar ruby ​​1.9.3

rvm install 1.9.3 

me sale el siguiente error:

ERROR: Error running 'make ', please read /Users/nick/.rvm/log/ruby-1.9.3-rc1/make.log 
ERROR: There has been an error while running make. Halting the installation. 

estoy corriendo Mac OS X Lion y mi versión actual de rubí es 1.9.2.

Editar: make.log:

make[1]: Entering directory `/Users/nick/.rvm/src/ruby-1.9.3/ext/readline' 
/usr/bin/gcc-4.2 -I. -I../../.ext/include/x86_64-darwin11.0.0 -I../.././include -I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -I/Users/nick/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -o readline.o -c readline.c 
readline.c: In function ‘username_completion_proc_call’: 
readline.c:1386: error: ‘username_completion_function’ undeclared (first use in this function) 
readline.c:1386: error: (Each undeclared identifier is reported only once 
readline.c:1386: error: for each function it appears in.) 
make[1]: *** [readline.o] Error 1 
make[1]: Leaving directory `/Users/nick/.rvm/src/ruby-1.9.3/ext/readline' 
make: *** [mkmain.sh] Error 1 
+0

¿Qué hay en make.log? – djdy

Respuesta

3

Este es un problema con readline. Tratar de compilar readline a sí mismo de fuente:

curl -O ftp://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz 
tar xzvf readline-6.1.tar.gz 
cd readline-6.1 
./configure --prefix=/usr/local 
make 
sudo make install 

Source

0

He estado corriendo en cuestiones de 1.9.3 en Snow Leopard, también. Mi make.log se ve así:

[2011-11-06 16:22:52] make 
CC = /usr/bin/gcc-4.2 
LD = ld 
LDSHARED = /usr/bin/gcc-4.2 -dynamiclib 
CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration -fno-common -pipe 
XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT 
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I. -I.ext/include/x86_64-darwin10.8.0 -I./include -I. 
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -install_name /Users/strike/.rvm/rubies/ruby-1.9.3-p0/lib/libruby.1.9.1.dylib -current_version 1.9.1 -compatibility_version 1.9.1 -Wl,-unexported_symbol,_Init_* -Wl,-unexported_symbol,*_threadptr_* -Wl,-u,_objc_msgSend 
SOLIBS = 
compiling dmyencoding.c 
compiling array.c 
compiling bignum.c 
compiling dir.c 
compiling enum.c 
compiling load.c 
compiling file.c 
compiling gc.c 
gc.c: In function ‘initial_expand_heap’: 
gc.c:1112: warning: implicit conversion shortens 64-bit value into a 32-bit value 
compiling hash.c 
compiling io.c 
compiling marshal.c 
compiling numeric.c 
compiling object.c 
compiling parse.c 
compiling process.c 
compiling re.c 
compiling ruby.c 
compiling util.c 
compiling variable.c 
compiling debug.c 
linking miniruby 
rbconfig.rb unchanged 
generating enc.mk 
compiling encoding.c 
generating prelude.c 
compiling prelude.c 
linking static-library libruby.1.9.1-static.a 
linking shared-library libruby.1.9.1.dylib 
generating encdb.h 
encdb.h unchanged 
making enc 
make[1]: Nothing to be done for `enc'. 
making srcs under enc 
make[1]: Nothing to be done for `srcs'. 
generating transdb.h 
transdb.h unchanged 
making trans 
make[1]: Nothing to be done for `./enc/trans'. 
making encs 
file2lastrev.rb: does not seem to be under a vcs: . 
make: [.revision.time] Error 1 (ignored) 
./revision.h unchanged 
/bin/sh: line 0: cd: ext/-test-/add_suffix: No such file or directory 
make[1]: *** [ext/-test-/add_suffix/all] Error 1 
make: *** [build-ext] Error 2 
12

La solución más simple, más general es instalar explícitamente el paquete problemático y volver a instalar con ese paquete. En mi caso, se abortando en openssl_missing, por lo que:

rvm pkg install openssl 
rvm install 1.9.3 -C "--with-openssl-dir=$HOME/.rvm/usr" 

Para su caso, es probable que sea:

rvm pkg install readline 
rvm install 1.9.3 -C "--with-readline-dir=$HOME/.rvm/usr" 

Por supuesto, esto supone que ha instalado RVM como a ti mismo. Cambie en consecuencia ...

0

¿Qué versión de Xcode está usando - 4.1 o 4.2? Hay algunos problemas con 4.2 y Ruby porque 4.2 usa LLVM en lugar de GCC como el compilador principal. Parte de la información here puede ayudarlo si tiene 4.2. Si tienes 4.2 pero no te importa volver a 4.1, es posible descargar 4.1 de Apple todavía en la página de sus desarrolladores, pero está bastante enterrado.