2011-11-01 33 views
5

Tôi đang cố gắng cài đặt Ruby 1.9.3 bằng rvm. Tuy nhiên, khi tôi gõ:Lỗi khi cài đặt ruby ​​1.9.3

rvm install 1.9.3 

tôi nhận được lỗi sau:

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. 

Tôi đang chạy Mac OS X Lion và phiên bản hiện tại của tôi của Ruby là 1.9.2.

Edit: 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

Vì vậy, những gì trong make.log? – djdy

Trả lời

3

Đây là một vấn đề với readline. Cố gắng biên soạn readline mình khỏi nguồn:

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

Tôi đã chạy vào các vấn đề về 1.9.3 trên Snow Leopard, quá. Make.log của tôi trông giống như sau:

[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

Giải pháp đơn giản hơn, tổng quát hơn là cài đặt gói vi phạm một cách rõ ràng và sau đó cài đặt lại gói đó. Trong trường hợp của tôi, nó đã hủy trên openssl_missing, vì vậy:

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

Đối với trường hợp của bạn, nó có thể là:

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

Điều này tất nhiên giả định rằng bạn đã cài đặt RVM như chính mình. Thay đổi tương ứng ...

0

Bạn đang sử dụng phiên bản Xcode nào - 4.1 hoặc 4.2? Có một số vấn đề với 4.2 và Ruby vì 4.2 sử dụng LLVM thay vì GCC làm trình biên dịch chính. Một số thông tin here có thể giúp bạn nếu bạn có 4.2. Nếu bạn có 4,2 nhưng không nhớ quay trở lại 4.1 nó có thể tải xuống 4,1 từ Apple vẫn còn trên trang của nhà phát triển của họ nhưng nó khá chôn cất.

Các vấn đề liên quan