问题
I am running Lion, utilizing Xcode 4, have RVM and homebrew installed but am only able to run 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:
[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.
Please help!
回答1:
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.
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)
# 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
回答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.
Then pass the CC="/usr/bin/gcc-4.2" flag when installing your rvm.
Be sure to rvm remove any previous installation attempts first.
回答3:
If you want to get rvm install ree with ruby 1.8.7 to work, this solved the problem for me:
# 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.
来源:https://stackoverflow.com/questions/6985690/problem-installing-ruby-1-9-2-on-mac-os-lion