かんろぐ Written by kan

【Ruby/Shopify】rbenv install 3.1.3のインストールがうまくいかない時

Shopify Web制作

PR ※当サイトではアフィリエイト広告を利用しています

備忘録的なまとめです。

本記事では、「rbenv install 3.1.3」のインストールうまくいかない方向けの記事です。
Rubyの最新版へアップデートする必要があったのですが、そう簡単にいかなかったので、その理由や解決策を記載します。

参考記事

rbenv install 3.1.3のインストールがうまくいかない時

まずは、下記のコマンドを入力しましょう。

rbenv install 3.1.3

もしくはこちら。

brew update && brew upgrade ruby-build && brew upgrade readline && rbenv install 3.1.3

これで無事にインストールができればOKです。

しかし下記のように表示されて、失敗することがあります。


MacBook-Air:~ ここはユーザー名$ brew update && brew upgrade ruby-build && brew upgrade readline && rbenv install 3.1.3→こちらを入力
Updated 1 tap (homebrew/core).
==> New Formulae
feishu2md                                                                                                ollama
==> Outdated Formulae
nodebrew

You have 1 outdated formula installed.
You can upgrade it with brew upgrade
or list it with brew outdated.
Warning: ruby-build 20230717 already installed
Warning: readline 8.2.1 already installed
To follow progress, use 'tail -f /var/folders/jf/6ksywhpd3832qgcjbf_9x7hw0000gp/T/ruby-build.20230805091348.84319.log' or pass --verbose
Downloading openssl-3.1.1.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/b3aa61334233b852b63ddb048df181177c2c659eb9d4376008118f9c08d07674
Installing openssl-3.1.1...
Installed openssl-3.1.1 to /Users/ここはユーザー名/.rbenv/versions/3.1.3

Downloading ruby-3.1.3.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.gz
Installing ruby-3.1.3...
ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew

BUILD FAILED (macOS 13.5 using ruby-build 20230717)

Inspect or clean up the working tree at /var/folders/jf/6ksywhpd3832qgcjbf_9x7hw0000gp/T/ruby-build.20230805091348.84319.5A8xnC
Results logged to /var/folders/jf/6ksywhpd3832qgcjbf_9x7hw0000gp/T/ruby-build.20230805091348.84319.log

Last 10 log lines:
compiling ossl_x509req.c
linking shared-object psych.bundle
4 warnings generated.
compiling ossl_x509revoked.c
compiling ossl_x509store.c
installing default openssl libraries
linking shared-object openssl.bundle
1 warning generated.
linking shared-object ripper.bundle
make: *** [build-ext] Error 2

ざっくりですが、上記のコード解説はこんな感じ。
あなたはTerminalやコマンドライン上でいくつかの操作を行っています。以下に各コマンドの説明をします:

  • brew update → Homebrew(MacOSのパッケージマネージャー)を更新するコマンド。これにより、Homebrew自体とHomebrewが管理するパッケージ(ソフトウェア)の最新情報が取得される
  • brew upgrade ruby-build → ruby-buildというパッケージを最新バージョンに更新するコマンド。ruby-buildはRubyのバージョンを管理するツールの一部
  • brew upgrade readline → readlineというパッケージを最新バージョンに更新。readlineはコマンドラインインターフェースでの入力を容易にするライブラリ
  • rbenv install 3.1.3 → rbenvを使用してRubyのバージョン3.1.3をインストール。rbenvはRubyのバージョンを管理するツールで、異なるプロジェクトで異なるRubyのバージョンを使用する際に便利
  • ログ出力部分 → これは各コマンドの実行結果を表示しています。
  • rbenv global 3.1 → これはデフォルトのRubyバージョンを3.1に設定するコマンド。ただし、このコマンドを実行する前にRuby 3.1.3のインストールが失敗しているため、恐らくエラーが発生している。

以上が実行したコマンドの基本的な説明。ログを見る限りRubyのインストールが失敗しているって感じですね。

解決策

まずは、下記のコマンドを入力。

 rbenv install --list

そうすると結果は下記のとおり。

3.0.6
3.1.4
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.0.0
truffleruby+graalvm-23.0.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

こちらの表示したリストには、利用可能な最新のRubyのバージョンが示されていますが、Ruby 3.1.3はそのリストには含まれていませんでした。
rbenvとruby-buildを使用して特定のRubyのバージョンをインストールするには、そのバージョンがruby-buildによってサポートされている必要があります。

通常はruby-buildが新しいRubyのリリースを追従するため、最新のバージョンをインストールすることが可能です。
しかし、特定の古いバージョン(この場合Ruby 3.1.3)をインストールするためには、そのバージョンがまだruby-buildによってサポートされているか、または別の方法でそのバージョンのRubyを手に入れる必要があります。
この時は2023年7月だったため

なので、rbenvとruby-buildを更新してから再度インストールをしてみます。

rbenvとruby-buildの更新

brew update
brew upgrade rbenv ruby-build

こちらを入力。
もしくは、

brew upgrade rbenv ruby-build

こちらのみでOKです。

Warning: rbenv 1.2.0 already installed
Warning: ruby-build 20230717 already installed

こういった表示が出た場合は、すでに最新済みですよーってことです。

これでもう一度下記のコマンドを実施します。

rbenv install 3.1.3

これで成功すればOK。失敗した方は下まで見てください。

brew install opensslをインストール

おそらくですが、エラーが出た方は、
make: *** [build-ext] Error 2
というエラーが出たはずです。Rubyのビルド中に何らかの問題が起きたことを示しており、ログファイルを詳しく確認する必要がありそうです。

cat /var/folders/jf/6ksywhpd3832qgcjbf_9x7hw0000gp/T/ruby-build.20230805092903.

こちらを入力するとめちゃくちゃ長いメッセージが表示されます。

原因としては、OpenSSLの古いAPIが非推奨になっているために警告が発生しているとのこと。
その後、「make: *** [build-ext] Error 2」エラーが発生してしているので、ビルドが完全に成功しなかったことが書いてあります。インストールしようとしているRubyのバージョンが、インストールされているOpenSSLのバージョンと完全に互換性がないためです。

そのため、OpenSSLをアップデートかインストールします。

インストールされている方

brew update
brew upgrade openssl

インストールされていない方

brew install openssl

これでopensslがインストールされるので、

rbenv uninstall 3.1.3
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl)" rbenv install 3.1.3

こちらを入力。

これで問題なくできればOK.
失敗したら、下記を入力。

RUBY_CONFIGURE_OPTS=--with-readline-dir="$(abrew --prefix readline)" \rbenv install 3.1.3

結果


MacBook-Air:~ ここはユーザー名$ RUBY_CONFIGURE_OPTS=--with-readline-dir="$(abrew --prefix readline)" \rbenv install 3.1.3
-bash: abrew: command not found
To follow progress, use 'tail -f /var/folders/jf/6ksywhpd3832qgcjbf_9x7hw0000gp/T/ruby-build.20230805103134.64999.log' or pass --verbose
Downloading openssl-3.1.1.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/b3aa61334233b852b63ddb048df181177c2c659eb9d4376008118f9c08d07674
Installing openssl-3.1.1...
Installed openssl-3.1.1 to /Users/takahashikansei/.rbenv/versions/3.1.3

Downloading ruby-3.1.3.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.gz
Installing ruby-3.1.3...
ruby-build: using libyaml from homebrew
Installed ruby-3.1.3 to /Users/takahashikansei/.rbenv/versions/3.1.3

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

無事に解決しました。

そして最後にこちらを入力。

$ rbenv global 3.1.3

そしてバージョンを確認します。

rbenv versions

system
* 3.1.3 (set by /Users/~~~~~/.rbenv/version)

無事インストールされてることが確認できました。

まとめ

今回の原因はM2に変えたことが原因でざっくりと環境構築が必要だったみたいです。
それぞれHomebrewがインストールされていたのですが、バージョンが合わなかったりなど。
なので、

  • ①:必要なライブラリやパッケージがインストールされているか確認
  • ②:バージョンを確認
  • ③:とにかくエラーが出たらググりまくる
  • ④:ググって出たコードをひたすら試し打ちする

こんな感じで無事解決までいけると思います。

エラーをよく見ると「〜〜がインストールされていません」だったり「このコマンド打つんやで」って教えてくれてました。
なので闇雲にやるより指示通りに動いたほうが結果的には早かったです。

参考記事

Shopify参考記事一覧

この記事を書いた人
かんろぐ/プロフィールアイコン
かん
未経験からWeb制作会社へ転職 | Webの楽しさや転職のあれこれを発信 | 転職サポート「CodeChange」主催 / 転職成功15名超 | WordPress・Shopify | CodeBegin転職講師 | マナブさん弟子 | カオマンガイとサウナ | ブロガー | ●かんろぐ運営/月間7,600PV達成 |

合わせて読みたい記事