Ошибка установки ruby ​​1.9.3 - PullRequest
5 голосов
/ 01 ноября 2011

Я пытаюсь установить Ruby 1.9.3 с помощью rvm. Тем не менее, когда я печатаю:

rvm install 1.9.3

Я получаю следующую ошибку:

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.

Я использую Mac OS X Lion, и моя текущая версия Ruby - 1.9.2.

Редактировать: 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

Ответы [ 4 ]

12 голосов
/ 07 декабря 2011

Более простое, более общее решение состоит в том, чтобы явно установить нарушающий пакет пакет, а затем переустановить с этим пакетом. В моем случае это было прерывание на openssl_missing, поэтому:

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

Для вашего случая это, вероятно,:

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

Это, конечно, предполагает, что вы установили rvm от себя. Измените соответственно ...

3 голосов
/ 01 ноября 2011

Это проблема с readline.Попробуйте скомпилировать readline самостоятельно из источника:

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 голосов
/ 09 января 2012

Какую версию Xcode вы используете - 4.1 или 4.2? Есть некоторые проблемы с 4.2 и Ruby, потому что 4.2 использует LLVM вместо GCC в качестве основного компилятора. Некоторая информация здесь может помочь вам, если у вас есть 4.2. Если у вас 4.2, но вы не против вернуться к 4.1, можно загрузить 4.1 от Apple, по-прежнему на странице их разработчика, но она скорее похоронена.

0 голосов
/ 07 ноября 2011

У меня тоже были проблемы с версией 1.9.3 на Snow Leopard.Мой make.log выглядит так:

[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
...