M2 Mac で rbenv install 3.2.1 にて configure: error: something wrong with LDFLAGS エラーが出たときの対処方法の一つ

前提

macOS

  • 13.2.1(22D68)

uname

$ uname -a
Darwin FOOBAR.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:38:43 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8112 arm64

Xcode

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
version: 14.2.0.0.1.1668646533

rbenv

rbenv のインストール方法は、リポジトリから直接 git clone してくる方法である。

$ rbenv --version
rbenv 1.2.0-59-g0704e65

rbenv-build

rbenv-build のインストール方法は、リポジトリから直接 git clone してくる方法である。

$ cd ~/.rbenv/plugins/ruby-build
$ git log --oneline | head --line 1
f3c1ccc Remove AWS access key ID from version control (#2163)

結論

まず Homebrew で以下をインストールする。

$ brew install openssl@3 readline libyaml gmp

そして以下のようなオプション(環境変数定義)を付けて rbenv を実行するとうまくいった。

  • RUBY_CFLAGS="-w"
  • LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"
  • RUBY_CONFIGURE_OPTS="--disable-shared --with-openssl-dir=$(brew --prefix openssl@3)"
$ RUBY_CFLAGS="-w" LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib" RUBY_CONFIGURE_OPTS="--disable-shared --with-openssl-dir=$(brew --prefix openssl@3)" rbenv install 3.2.1
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz

Installing ruby-3.2.1...
ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
ruby-build: using gmp from homebrew
Installed ruby-3.2.1 to /Users/FOOBAR/.rbenv/versions/3.2.1

NOTE: to activate this Ruby version as the new default, run: rbenv global 3.2.1

エラー時のログ(最終10行)

インストールに失敗してエラーが出たときのログは次のとおり。

Installing ruby-3.2.1...
ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
ruby-build: using gmp from homebrew

Last 10 log lines:
checking for dtrace... dtrace
checking for dot... no
checking for doxygen... no
checking for pkg-config... no
checking whether it is Android... no
checking for cd using physical directory... cd -P
checking whether CFLAGS is valid... yes
checking whether LDFLAGS is valid... no
configure: error: something wrong with LDFLAGS="-L/Users/FOOBAR/.rbenv/versions/3.2.1/lib "
make: *** No targets specified and no makefile found.  Stop.

感想

環境がやや特殊なので、Mac に直接環境構築してハマるとつらいものがある*1

ビルドや環境は、CI や コンテナ や Codespaces みたいなところでやるのが好ましいのかもしれません。

関連ページ

github.com

github.com

*1:解決知識も汎用的なものではないし、可搬性も低い

Powered by はてなブログ