【Ruby/Shopify】rbenv install 3.1.3のインストールがうまくいかない時
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参考記事一覧
- Shopifyの構築から運用まで担当いたします【お気軽に無料相談から】
- 【Ruby/Shopify】rbenv install 3.1.3のインストールがうまくいかない時
- 【Mac】brew install rbenvでインストールがうまくいかない時【Shopify】
- 【Shopify/liquid】商品タグを自由に好きなページに出力する方法を解説
- 【shopify】アプリ無しでギフトラッピングの実装をする方法【コピペOK】
- 【Shopify/コピペで完了】明細書(納品書)のテンプレートを日本対応に変更するコード
- 【Shopify / コピペOK】アカウントの住所登録をカスタマイズする方法
合わせて読みたい記事