memo.xight.org

日々のメモ

Apple Silicon + anyenv + rbenv + ruby2.7.2

Summary

rbenv + ruby-build で ruby をインストールすると arm64-apple が認識できない。

checking for ruby... $HOME/.anyenv/envs/rbenv/shims/ruby
tool/config.guess already exists
tool/config.sub already exists
checking build system type... Invalid configuration `arm64-apple-darwin20.2.0': machine `arm64-apple' not recognized
configure: error: /bin/sh tool/config.sub arm64-apple-darwin20.2.0 failed


config.sub を入れ替えて configure

$ cd /var/folders/PATH/TO/ruby-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/ruby-2.7.2/tool
$ mv config.sub config.sub.bak
$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub
$ cd ..
$ ./configure --prefix=$(rbenv root)/versions/2.7.2-arm64
$ make
$ make install


確認

$ rbenv global 2.7.2-arm64
$ ruby --version
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]
$ lipo -archs $(rbenv prefix)/bin/ruby
arm64


問題

x86_64 版を利用すると、
$GEM_HOME/*/*.bundleで x86 と arm64 で競合が起こる。

$GEM_HOME/gems/psych-3.2.1/lib/psych.bundle: mach-o, but wrong architecture


x86版の .bundle ファイル を退避してアップデート
$ mv $GEM_HOME/gem $GEM_HOME/gem-x86_64
$ gem update