0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacにRuby3.0.7インストールでエラーになってしまう際の対応方法

Posted at

MacにRuby3.0.7を入れようとした時、エラーになってしまった。

❯ rbenv install 3.0.7
/opt/homebrew/bin/ruby-build: line 1158: versions: bad array subscript
==> Downloading openssl-1.1.1w.tar.gz...
-> curl -q -fL -o openssl-1.1.1w.tar.gz https://dqw8nmjcqpjn7.cloudfront.net/cf3098950cb4d853ad95c0841f1f9c6d3dc102dccfcacd521d93925208b76ac8
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9661k  100 9661k    0     0  34.2M      0 --:--:-- --:--:-- --:--:-- 34.1M
==> Installing openssl-1.1.1w...
-> ./config "--prefix=$HOME/.rbenv/versions/3.0.7/openssl" "--openssldir=$HOME/.rbenv/versions/3.0.7/openssl/ssl" --libdir=lib zlib-dynamic no-ssl3 shared
-> make -j 8
-> make install_sw install_ssldirs
==> Installed openssl-1.1.1w to /Users/k_tetsuhiro/.rbenv/versions/3.0.7
==> Downloading ruby-3.0.7.tar.gz...
-> curl -q -fL -o ruby-3.0.7.tar.gz https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.7.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20.2M  100 20.2M    0     0  11.3M      0  0:00:01  0:00:01 --:--:-- 11.3M
==> Installing ruby-3.0.7...

WARNING: ruby-3.0.7 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.

ruby-build: using libyaml from homebrew
-> ./configure "--prefix=$HOME/.rbenv/versions/3.0.7" "--with-openssl-dir=$HOME/.rbenv/versions/3.0.7/openssl" --enable-shared --with-libyaml-dir=/opt/homebrew/opt/libyaml --with-ext=openssl,psych,+
-> make -j 8

BUILD FAILED (macOS 15.1 on arm64 using ruby-build 20241105)

どうやらbuildにopenssl1.1系が必要らしい。
また、さらにpatchを当てるなどひと工夫しないとbuildができなかった。
そこでこの記事ではどのように解決したかを記載していきます。

openssl 1.1のインストール

brew install openssl@1.1 で本来ならインストールできるのだが、2024/10/24をもってEOLされてしまった。openssl1.1系が入ってない場合はこの記事を参考にインストールする

Ruby 3.0.7をpatchを当てながらインストールする

■ patchを当てるために、まずは下記内容をそのままコピーして、ruby-3.0.x.patchという名前でファイルを作って保存する

ruby-3.0.x.patch
--- ext/bigdecimal/bigdecimal.c.orig	2024-09-25 16:24:50
+++ ext/bigdecimal/bigdecimal.c	2024-09-25 16:25:15
@@ -65,7 +65,7 @@
 static ID id_half;
 
 /* MACRO's to guard objects from GC by keeping them in stack */
-#define ENTER(n) volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0
+#define ENTER(n) volatile VALUE vStack[n];int iStack=0
 #define PUSH(x)  (vStack[iStack++] = (VALUE)(x))
 #define SAVE(p)  PUSH((p)->obj)
 #define GUARD_OBJ(p,y) ((p)=(y), SAVE(p))


■ patchを当てながらインストールする、またLDFLAGSとCPPFLAGSをhomebrewで入れたopenssl@1.1のものを使うように指定する

cat /path/to/ruby-3.0.x.patch | LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib" CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include" rbenv install --patch 3.0.7

/path/to/ruby-3.0.x.patchはあなたが保存したMacのファイルパスを指定する

これでbuildが通りruby3.0.7がインストールされる

参考サイト

https://github.com/rbenv/ruby-build/discussions/2185
を参考にpatchを当てました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?