Installing OS11 Big Sur made it so my ruby installation no longer works, so I'm trying to reinstall it. I've installed rbenv
from the instructions here, and the rbenv-doctor
script runs indicating no problems. But when I try to run rbenv install 2.7.2
I get an error related to my compiler setup:
% rbenv install 2.7.2
Downloading ruby-2.7.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.bz2
Installing ruby-2.7.2...
ruby-build: using readline from homebrew
BUILD FAILED (macOS 11.0.1 using ruby-build 20201005)
Inspect or clean up the working tree at /var/folders/yn/wzkl_t8567l9pvwhp0wsm40w0000gn/T/ruby-build.20201121103616.80606.FFBFEn
Results logged to /var/folders/yn/wzkl_t8567l9pvwhp0wsm40w0000gn/T/ruby-build.20201121103616.80606.log
Last 10 log lines:
tool/config.guess already exists
tool/config.sub already exists
checking build system type... x86_64-apple-darwin20.1.0
checking host system type... x86_64-apple-darwin20.1.0
checking target system type... x86_64-apple-darwin20.1.0
checking whether the C compiler works... no
configure: error: in `/var/folders/yn/wzkl_t8567l9pvwhp0wsm40w0000gn/T/ruby-build.20201121103616.80606.FFBFEn/ruby-2.7.2':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found. Stop.
The corresponding config.log
is quite long, of course, but relevant lines are:
configure:3017: checking for ruby
configure:3035: found /usr/bin/ruby
configure:3048: result: /usr/bin/ruby
configure:3121: checking build system type
configure:3135: result: x86_64-apple-darwin20.1.0
configure:3223: checking host system type
configure:3236: result: x86_64-apple-darwin20.1.0
configure:3256: checking target system type
configure:3269: result: x86_64-apple-darwin20.1.0
configure:4016: checking for C compiler version
configure:4025: clang --version >&5
clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /usr/local/clang6/bin
configure:4036: $? = 0
configure:4025: clang -v >&5
clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /usr/local/clang6/bin
configure:4036: $? = 0
configure:4025: clang -V >&5
clang-6.0: error: argument to '-V' is missing (expected 1 value)
clang-6.0: error: no input files
configure:4036: $? = 1
configure:4025: clang -qversion >&5
clang-6.0: error: unknown argument: '-qversion'
clang-6.0: error: no input files
configure:4036: $? = 1
configure:4056: checking whether the C compiler works
configure:4078: clang -I/Users/richard/.rbenv/versions/2.7.2/include -I/usr/local/opt/readline/include -L/Users/richard/.rbenv/versions/2.7.2/lib -L/usr/local/opt/readline/lib conftest.c >&5
ld: library not found for -lSystem
clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)
configure:4082: $? = 1
configure:4120: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:4125: error: in `/var/folders/yn/wzkl_t8567l9pvwhp0wsm40w0000gn/T/ruby-build.20201121101556.78734.11rqwy/ruby-2.7.2':
configure:4127: error: C compiler cannot create executables
See `config.log' for more details
The (main?) problem appears to be the error:
ld: library not found for -lSystem
...but the errors before it seem to imply that the configure script doesn't understand the command line options...?
Here are some relevant details about my setup:
XCode command line tools:
% pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
version: 12.2.0.0.1.1604076827
gcc:
% which gcc
/usr/bin/gcc
% gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.27)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
clang:
% which clang
/usr/local/clang6/bin/clang
% clang -v
clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /usr/local/clang6/bin
I also have the following in my .zprofile
, in order to fix the problem that it wasn't finding the necessary header files before:
export CPATH="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
Thanks in advance for any insight.
The problem appears to be that you're using clang6
(probably from https://cran.r-project.org/bin/macosx/tools/) instead of the version of clang
that ships with the Xcode Command Line Tools. You need Apple's version of clang
.
Verify that you have installed the CLT with sudo xcode-select --install
. Once they're installed verify that /usr/bin/clang -v
returns something like Apple clang version 12
. Now modify your $PATH
and retry:
export PATH=/usr/bin:$PATH
rbenv install 2.7.2
Or use whatever other shell trick you prefer to get the Apple version of clang
to be used by rbenv, then retry the installation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With