在Mac OS Lion上安装Ruby 1.9.2时出现问题
我正在运行Lion,利用Xcode 4,安装了RVM和自制软件,但只能运行Ruby 1.8.7
spurvis:~ rogue$ ruby -v ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0] spurvis:~ rogue$
我已阅读了几个与此主题相关的主题,但似乎没有任何工作可以解决我的问题:
spurvis:~ rogue$ rvm install 1.9.2 Installing Ruby from source to: /Users/rogue/.rvm/rubies/ruby-1.9.2-p290, this may take a while depending on your cpu(s)... ruby-1.9.2-p290 - #fetching ruby-1.9.2-p290 - #extracted to /Users/rogue/.rvm/src/ruby-1.9.2-p290 (already extracted) Fetching yaml-0.1.4.tar.gz to /Users/rogue/.rvm/archives Extracting yaml-0.1.4.tar.gz to /Users/rogue/.rvm/src Configuring yaml in /Users/rogue/.rvm/src/yaml-0.1.4. Compiling yaml in /Users/rogue/.rvm/src/yaml-0.1.4. Installing yaml to /Users/rogue/.rvm/usr ruby-1.9.2-p290 - #configuring ruby-1.9.2-p290 - #compiling ERROR: Error running 'make ', please read /Users/rogue/.rvm/log/ruby-1.9.2-p290/make.log ERROR: There has been an error while running make. Halting the installation.
make.log给我以下信息:
[2011-08-08 11:50:52] make /usr/bin/gcc-4.2 -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initial rbconfig.rb unchanged ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./enc/make_encmake.rb -- builtin-encs="ascii.o us_ascii.o unicode.o utf_8. ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude /usr/bin/gcc-4.2 -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initial ar rcu libruby.1.9.1-static.a dln.o encoding.o version.o array.o bignum.o class.o compar.o complex.o dir.o dln_find.o enum.o enumera /usr/bin/gcc-4.2 -dynamiclib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -install_name /Users/r : -w -L 'Init_*' -L '*_threadptr_*' libruby.1.9.1.dylib ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc encdb.h unchanged make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r make[1]: Nothing to be done for `enc'. make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r make[1]: Nothing to be done for `srcs'. ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/generic_erb.rb -c -o transdb.h ./template/transdb.h.tmpl ./enc/tra transdb.h unchanged make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r make[1]: Nothing to be done for `./enc/trans'. make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r mkdir -p .ext/x86_64-darwin11.0.0/enc .ext/x86_64-darwin11.0.0/enc/trans enc enc/trans compiling -test-/bug-3662 make[1]: Nothing to be done for `all'. compiling -test-/string make[1]: Nothing to be done for `all'. compiling bigdecimal make[1]: Nothing to be done for `all'. compiling continuation make[1]: Nothing to be done for `all'. compiling coverage make[1]: Nothing to be done for `all'. compiling curses compiling openssl /usr/bin/gcc-4.2 -I. -I../../.ext/include/x86_64-darwin11.0.0 -I../.././include - I../.././ext/openssl -DRUBY_EXTCONF_H="extconf.h" ossl_bio.c: In function ‘ossl_obj2bio’: ossl_bio.c:26: error: called object ‘".rnd"’ is not a function ossl_bio.c:42: warning: implicit conversion shortens 64-bit value into a 32-bit value make[1]: *** [ossl_bio.o] Error 1 make: *** [mkmain.sh] Error 1
根据其他建议,我尝试将CC = / usr / bin / gcc-4.2导出到我的bashrc中,但是这也没有解决问题。
请帮忙!
确保你有最新的xcode可用(如果你正在运行雪豹的副本,你需要更新它)。更新RVM rvm get head
,然后再试一次。
我在编译ree时遇到了问题,但1.9.2工作正常,您可以尝试将此函数添加到主目录中的.profile,它将使用gcc编译(而不是默认的LLVM)
# using_gcc for 64btt compiling on lion (solves compatability issues)
function using_gcc() {
env CC="/usr/bin/gcc-4.2" ARCHFLAGS="-arch x86_64" ARCHS="x86_64" $*
}
然后运行using_gcc rvm install 1.9.2
如果您运行Lion&Xcode 4.2的全新副本,则需要首先安装GCC 4.2开发库 - 它们不包含在全新的Xcode 4.2安装中。
然后在安装rvm时传递CC="/usr/bin/gcc-4.2"
标志。
请务必rvm remove
任何以前的安装尝试。
如果你想用ruby 1.8.7来获得rvm install ree
,那么这为我解决了这个问题:
# using_gcc for 32btt compiling on lion (solves compatability issues)
function using_gcc() {
env CC="/usr/bin/gcc-4.2" ARCHFLAGS="-arch x86_32" ARCHS="x86_32" $*
}
#then
using_gcc rvm install ree
基本上只是在另一个答案中将“64”更改为“32”。
链接地址: http://www.djcxy.com/p/85875.html