[英]Problem installing Ruby 1.9.2 on Mac OS Lion
I am running Lion, utilizing Xcode 4, have RVM and homebrew installed but am only able to run ruby 1.8.7 我正在运行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$
I've read through several threads related to this topic but nothing seems to work for my problem: 我已经阅读了与此主题相关的几个主题,但似乎没有任何问题可以解决我的问题:
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.
The make.log gives me the following info: 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
Per other suggestions I tried adding export CC=/usr/bin/gcc-4.2 to my bashrc but that didn't solve the problem either. 根据其他建议,我尝试将导出CC = / usr / bin / gcc-4.2添加到我的bashrc,但这也没有解决问题。
Please help! 请帮忙!
Make sure you have the latest xcode available (you'll need to update it if you're running a copy from snow leopard. Update RVM rvm get head
and then try again. 确保你有最新的xcode(如果你正在运行雪豹的副本,你需要更新它。更新RVM rvm get head
,然后再试一次。
I had problems compiling ree but 1.9.2 worked fine, you can try adding this function to .profile in your home directory, it'll compile with gcc (instead of the default LLVM) 我在编译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" $*
}
Then run using_gcc rvm install 1.9.2
然后运行using_gcc rvm install 1.9.2
If you're running a fresh copy of Lion & Xcode 4.2, you're going to need to install the GCC 4.2 dev libraries first - they aren't included in a fresh Xcode 4.2 install. 如果你正在运行Lion&Xcode 4.2的全新副本,那么你首先需要安装GCC 4.2 dev库 - 它们不包含在新的Xcode 4.2安装中。
Then pass the CC="/usr/bin/gcc-4.2"
flag when installing your rvm. 然后在安装rvm时传递CC="/usr/bin/gcc-4.2"
标志。
Be sure to rvm remove
any previous installation attempts first. 请务必rvm remove
任何先前的安装尝试。
If you want to get rvm install ree
with ruby 1.8.7 to work, this solved the problem for me: 如果你想用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
Basically just changing "64" to "32" in the other answer. 基本上只是在另一个答案中将“64”改为“32”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.