Install any version of ruby with RVM on mavericks

2019-01-21 23:53发布

问题:

I've just upgraded to osx mavericks, and I want to install ruby 2.0, but I'm getting configure: error: cannot run C compiled programs. errors.

I update rvm with rvm get stable and then type rvm install 2.0.0 and get an error directing me to a log file. The log file contains:

configure: WARNING: unrecognized options: --without-tcl, --without-tk
checking build system type... x86_64-apple-darwin13.0.0
checking host system type... x86_64-apple-darwin13.0.0
checking target system type... x86_64-apple-darwin13.0.0
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/Users/mattroberts/.rvm/src/ruby-2.0.0-p247':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

So, I tried listing the versions I do have. It tells me i have 1.9.3-p392 so I uninstall that one and re-install to see if that works - same error.

Do I need to re-install / update xcode, or is there another solution?

Thanks!

回答1:

If you haven't upgraded Xcode after upgrading to Mavericks you should do so After that, open a command prompt and type:
xcode-select --install

This will install xcode command tools that have been deleted by OSX update. After that it should work okay.



回答2:

The suggested solutions did not solve my issue (XCode at newest version, command line tools installed). I used rvm install ruby-1.9.3 --with-gcc=clang and that worked.

I thought rvm used to use clang for OSX by default. Not sure if I remember that wrong or something changed / this is no longer the best thing to do. Nevertheless it made the install work for me.

After Edu's comment, the github rvm issues page he referenced warns:

@marksands please be sure you know what you are duing, ruby 1.9.3 compiled with clang is not "safe", it can segfault, thread related issues to be expected, consider reinstalling ruby --with-gcc=gcc42 or just let rvm install gcc 4.6, only ruby 2.0.0 is fully compatible with clang

This issue points out issue with gcc46 on Mavericks:

The gem in question uses different language - not C/C++, it uses Objective-C - so it's not the compiler fault, you can build gcc-4.6 with support for Objective-C - it's just not done by default.

You have two options now, both start with uninstallig gcc-4.6 and then:

• Install apple-gcc42

• Install gcc-4.6 with --enable-objc



回答3:

this is supposed to be fixed, run:

rvm get head
rvm remove 1.9.3
rvm install 1.9.3

do not use extra flags



回答4:

What ended up working for me was installing XCode then RUNNING Xcode then trying to reinstall.



回答5:

Running

rvm_configure_env=('LDFLAGS=-L/opt/sm/pkg/active/lib' 'CFLAGS=-I/opt/sm/pkg/active/include' 'CPATH=/opt/sm/pkg/active/include')

Corrected my compiler issue in Mavericks



回答6:

Ran into the very same issue (on 10.8.5, all up to date). Ruby 2.0.0 installed fine, but not 1.9.3. This solution worked for me.

cd into the ruby path (found in config.log), then issue .configure (with all options, as found in config.log)

make
make install

Then:

rvm use 1.9.3 --create


回答7:

Solution:

unset SDKROOT

This worked for me. I hope it would for you too.

I tried to reinstall xcode along with xcode developer tools. Didn’t work. The same error.

Try to run with env -i bash —noprofile —norc to see whether your env vars are causing the issue to further investigate.