気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【Rails/環境構築(M1)】BUILD FAILED (macOS 11.1 using ruby-build 20210119)のエラー解消方法

こんにちは。

最近は運動不足解消のため、一駅前で降りて歩いて帰宅しております。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。
今回rbenvでRuby2.6.4をインストールする際に発生したエラーの対処方法について書いていきます。

環境

やりたいこと

Ruby2.6.4にバージョン変更したい

問題

Ruby2.6.4をインストーするためにrbenv install 2.6.4を実行したが、初めて見たエラーに出くわしました。
▽エラー事例

% rbenv install 2.6.4
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/user_name/.rbenv/versions/2.6.4

Downloading ruby-2.6.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.bz2
Installing ruby-2.6.4...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 11.1 using ruby-build 20210119)

Inspect or clean up the working tree at /var/folders/hq/9_xgdx314vjfbz6wnqc7jx280000gn/T/ruby-build.20210206115130.11119.X89in3
Results logged to /var/folders/hq/9_xgdx314vjfbz6wnqc7jx280000gn/T/ruby-build.20210206115130.11119.log

Last 10 log lines:
compiling ../.././ext/psych/yaml/dumper.c
linking shared-object -test-/string.bundle
compiling ../.././ext/psych/yaml/reader.c
compiling ../.././ext/psych/yaml/emitter.c
compiling ../.././ext/psych/yaml/parser.c
5 warnings generated.
linking shared-object zlib.bundle
1 warning generated.
linking shared-object psych.bundle
make: *** [build-ext] Error 2

解決方法

下記を実行することで無事に解消されました。(原因は正直いまいちわかっておりません。。)

% RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.6.4
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/user_name/.rbenv/versions/2.6.4

Downloading ruby-2.6.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.bz2
Installing ruby-2.6.4...
ruby-build: using readline from homebrew
Installed ruby-2.6.4 to /Users/user_name/.rbenv/versions/2.6.4


% ruby -v          
ruby 2.6.4p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv local 2.6.4
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv rehash
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv local 2.6.4
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % ruby -v          
ruby 2.6.4p104 (2019-08-28 revision 67798) [-darwin20]

その後、Ruby2.6.4に変更すれば完了です。

% ruby -v 
ruby 2.2.4
% rbenv local 2.6.4
% rbenv rehash
% ruby -v          
ruby 2.6.4p104 (2019-08-28 revision 67798) [-darwin20]

参考資料

M1 の MacBook で rbenv + Ruby 2.6.6 をビルドする - Secret Garden(Instrumental)

                                            • -

日々勉強です。
以上、ハチマキでした。