🔨

【Ruby】 rbenv 3.0.1 のインストールで"BUILD FAILED"した際の解決方法

2024/05/29に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

今回はRuby 3.0.1のインストール時に発生するエラーとその解決方法について解説します。

エラー内容

Ruby 3.0.1をインストールしようとした際に、以下のエラーが発生しました。

$ rbenv install 3.0.1
ruby-build: using openssl@1.1 from homebrew
==> Downloading ruby-3.0.1.tar.gz...
-> curl -q -fL -o ruby-3.0.1.tar.gz https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18.7M  100 18.7M    0     0  1464k      0  0:00:13  0:00:13 --:--:-- 1513k
==> Installing ruby-3.0.1...

WARNING: ruby-3.0.1 is nearing its end of life.
It only receives critical security updates, no bug fixes.

ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
-> ./configure "--prefix=$HOME/.rbenv/versions/3.0.1" --with-openssl-dir=/opt/homebrew/opt/openssl@1.1 --enable-shared --with-readline-dir=/opt/homebrew/opt/readline --with-libyaml-dir=/opt/homebrew/opt/libyaml --with-ext=openssl,psych,+

BUILD FAILED (macOS 14.5 on arm64 using ruby-build 20240221)

You can inspect the build directory at /var/folders/.../ruby-build.20240528114307.33693.Pmretj
See the full build log at /var/folders/.../ruby-build.20240528114307.33693.log

このエラーは、Ruby 3.0.1のインストール中に発生したもので、特にopenssl@1.1やreadline、libyamlといった依存関係の設定がうまくいっていなさそうです。

具体的には、./configureスクリプトが正しく実行できず、BUILD FAILEDと表示されています。

解決方法

以下の手順に従って問題を解決しました。

1. 必要なライブラリのインストール

brew install openssl@1.1 readline libyaml

OpenSSL、libyaml、readlineをインストールします。

2. 環境変数の設定

nano ~/.zshrc

zshrcを開きます

# OpenSSL (version 1.1)
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"

# Add LDFLAGS, CPPFLAGS, and PKG_CONFIG_PATH for OpenSSL, libyaml, and readline
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib -L/opt/homebrew/opt/libyaml/lib -L/opt/homebrew/opt/readline/lib"

export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include -I/opt/homebrew/opt/libyaml/include -I/opt/homebrew/opt/readline/include"

export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig:/opt/homebrew/opt/libyaml/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig"

~/.zshrcファイルに上記の環境変数を追加します。

3.~/.zshrcの再読み込み

source ~/.zshrc

変更を反映するために、~/.zshrcを再読み込みします。

4.Ruby 3.0.1のインストール

rbenv install 3.0.1

再度、Ruby 3.0.1をインストールします。

$ rbenv install 3.0.1
==> Downloading ruby-3.0.1.tar.gz...
-> curl -q -fL -o ruby-3.0.1.tar.gz https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18.7M  100 18.7M    0     0  2123k      0  0:00:09  0:00:09 --:--:-- 1865k
==> Installing ruby-3.0.1...

WARNING: ruby-3.0.1 is nearing its end of life.
It only receives critical security updates, no bug fixes.

ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
-> ./configure "--prefix=$HOME/.rbenv/versions/3.0.1" --enable-shared --with-readline-dir=/opt/homebrew/opt/readline --with-libyaml-dir=/opt/homebrew/opt/libyaml --with-ext=openssl,psych,+ --with-openssl-dir=/opt/homebrew/opt/openssl@1.1
-> make -j 11
-> make install
==> Installed ruby-3.0.1 to /Users/owner/.rbenv/versions/3.0.1

無事インストールに成功しました!🙌

参考

こちらの記事が大変参考になりました!
https://qiita.com/jnchito/items/c21390aaa87732d24c91

X-Codeのインストールがまだの方はこちら👇
https://github.com/rbenv/ruby-build/wiki#suggested-build-environment

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion