2011-11-01 146 views
5

我想使用rvm安裝Ruby 1.9.3。然而,當我鍵入:安裝紅寶石錯誤1.9.3

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獅子和我目前的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 
+0

那麼make.log中有什麼? – djdy

回答

3

這是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

我一直在Snow Leopard上運行到問題的1.9.3了。我的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 
12

更簡單,更通用的解決方案是顯式安裝違規包,然後使用該包重新安裝。對我來說,這是中止對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如己。相應地更改...

0

您使用的是哪個版本的Xcode - 4.1或4.2? 4.2和Ruby有一些問題,因爲4.2使用LLVM而不是GCC作爲主編譯器。有些信息here可能會幫助你,如果你有4.2。如果你有4.2,但不介意回到4.1,可以從開發者頁面下載蘋果4.1,但它很隱蔽。