今後、 Ruby を使うことになりそうなので、ローカルPCに Ruby を rbenv でインストールしようとしたら
BUILD FAILED (macOS 12.5.1 using ruby-build 20221124)
でつまづいた。
対応策ふくめてインストール方法をメモしておく。
環境
- MacOS 12.5.1
- anyenv 1.1.5
インストール手順
1. anyenv で rbenv をインストールする
anyenv でコマンドを叩いていく。
# rbenv があるのを確認
$ anyenv install -l
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
jlenv
kubectlenv
luaenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
tfenv
# インストール
$ anyenv install rbenv
# とくに問題なく、完了のログが出た
Install rbenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
# 指示通り実行しておく
$ exec $SHELL -l
anyenv で管理対象になっていることも確認。
$ anyenv versions
rbenv:
* system
rbenv コマンドも特に問題なく利用可能。
$ rbenv --version
rbenv 1.2.0-48-g6717c62
2. rbenv で Ruby 3.1.3 をインストールする
まずはインストール可能な Ruby のバージョンを確認。
# 2022/11末時点ではこんな感じ
$ rbenv install -l
2.7.7
3.0.5
3.1.3
jruby-9.4.0.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.3.0
truffleruby+graalvm-22.3.0
Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
Ruby の公式サイトによると、現在の安定版が 3.1.3 とのこと。
rbenv にもある 3.1.3 をインストールする。
$ rbenv install 3.1.3
To follow progress, use 'tail -f /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.log' or pass --verbose
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 gmp from homebrew
BUILD FAILED (macOS 12.5.1 using ruby-build 20221124)
Inspect or clean up the working tree at /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF
Results logged to /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.log
Last 10 log lines:
from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:219:in `block in mkdir_p'
from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:211:in `each'
from /private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:211:in `mkdir_p'
from ./tool/rbinstall.rb:218:in `makedirs'
from ./tool/rbinstall.rb:331:in `prepare'
from ./tool/rbinstall.rb:432:in `block in <main>'
from ./tool/rbinstall.rb:1116:in `block in <main>'
from ./tool/rbinstall.rb:1113:in `each'
from ./tool/rbinstall.rb:1113:in `<main>'
make: *** [do-install-all] Error 1
$
失敗した。
ログを末尾から遡って確認すると、以下のエラー行にたどり着いた。
/private/var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128145329.16916.liTHzF/ruby-3.1.3/lib/fileutils.rb:240:in `mkdir': Permission denied @ dir_s_mkdir - /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Users (Errno::EACCES)
Permission denied @ dir_s_mkdir - /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Users (Errno::EACCES)
ということは、権限の問題と思われる。
検索してみると、同じところでつまづいている方がいて、権限付与するとうまくいくとあった。
見習って、以下のコマンドを実行。
$ sudo chown $(whoami) /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
権限付与した状態で再実行すると、今度はうまく行った。
$ rbenv install 3.1.3
To follow progress, use 'tail -f /var/folders/6s/0yy4pb1x0rxdr8sx4xpd6z7w0000gn/T/ruby-build.20221128150337.44253.log' or pass --verbose
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 gmp from homebrew
Installed ruby-3.1.3 to /Users/origer/.anyenv/envs/rbenv/versions/3.1.3
NOTE: to activate this Ruby version as the new default, run: rbenv global 3.1.3
3. インストールした Ruby 3.1.3 を利用する
特定のディレクトリだけ、とかではなく、全般的に Ruby 3.1.3 を使う形にしたかったので、以下のコマンドを実行。
$ rbenv global 3.1.3
# 再ログインもしておく
$ exec $SHELL -l
# ruby が 3.1.3 になっていることを確認
$ ruby --version
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-darwin21]
おまけ
インストール手順でつまづいたとき、 以下のサイトも参考にした。(今回のエラーには効果がなかったが)