Closed14

rbenvでruby2.5.8をinstallする際にBUILD FAILEDが起きる

kanekoukanekou

rbenvでruby2.5.8をインストールした際にBUILD FAILDが起きた.

% rbenv install 2.5.8

Downloading openssl-1.1.1k.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
Installing openssl-1.1.1k...

BUILD FAILED (macOS 11.2.3 using ruby-build 20210804)

Inspect or clean up the working tree at /var/folders/gt/sqqp1dc90vd55f2_hzlgqlkr0000gn/T/ruby-build.20210901183956.7884.oen8q2
Results logged to /var/folders/gt/sqqp1dc90vd55f2_hzlgqlkr0000gn/T/ruby-build.20210901183956.7884.log

Last 10 log lines:
      _bio_s_mempacket_test in ssltestlib.o
      _bio_s_always_retry in ssltestlib.o
      _create_ssl_ctx_pair in ssltestlib.o
  "_test_ulong_eq", referenced from:
      _create_ssl_connection in ssltestlib.o
ld: symbol(s) not found for architecture x86_64
make[1]: *** [test/asn1_encode_test] Error 1
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [test/asynciotest] Error 1
make: *** [all] Error 2

enviroment

  • MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)
  • Processer 2.4 GHz Quad-Core Intel Core i5
  • macOS Big Sur Version 11.2.3
  • rbenv version 1.1.2-61-g585ed84
kanekoukanekou

LLVMのversionがだめだと言われたのが気になる.

kanekoukanekou

clang のversionを確認.brewのclangが入っている.
https://formulae.brew.sh/formula/llvm をみると,安定板っぽい
versionは問題なさそう

% clang -v
Homebrew clang version 12.0.1
Target: x86_64-apple-darwin20.3.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
kanekoukanekou

そういえばこの前osを再インストールしてxcodeインストールしてない気がする.

と思ったけどしてたっぽい.

% xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

既にHomebrewが入ってるのでそりゃそうか

kanekoukanekou

mac OS SDKはちゃんと入っている模様

% xcrun --sdk macosx --show-sdk-path
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
kanekoukanekou

https://zenn.dev/link/comments/4ba42a9a1ca6ba
で失敗した時に出ていたld: symbol(s) not found for architecture x86_64が気になる.リンカがうまくヘッダーファイルを繋げられていないという認識.
コンパイラに対して何かしらフラグをつけて実行しないといけない?

kanekoukanekou

binutilsをuninstall

% which ar; which ranlib
/usr/local/opt/binutils/bin/ar
/usr/local/opt/binutils/bin/ranlib
% brew uninstall binutils
Uninstalling /usr/local/Cellar/binutils/2.37... (82 files, 158.8MB)
% which ar; which ranlib
/usr/bin/ar
/usr/bin/ranlib
kanekoukanekou

rbenv installしたら入った❗️❗️❗️❗️

% rbenv install 2.5.8

Downloading openssl-1.1.1k.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
Installing openssl-1.1.1k...
Installed openssl-1.1.1k to /Users/kanekou/.anyenv/envs/rbenv/versions/2.5.8

Downloading ruby-2.5.8.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.bz2
Installing ruby-2.5.8...

WARNING: ruby-2.5.8 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.

ruby-build: using readline from homebrew
Installed ruby-2.5.8 to /Users/kanekou/.anyenv/envs/rbenv/versions/2.5.8

% ruby --version
ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-darwin20]
kanekoukanekou

macでbinutilsをインストールするとarranlibのpathが書き換えられ,リンク時にエラーを吐くことが判明した.勉強になった.

このスクラップは2021/09/01にクローズされました