Ruby 3.1.1をインストールするだけどエラーが、、、
はじめに
久しぶりにRubyをおさらいしようと思って、以前インストールしたRuby2.5.3からRuby 3.1.1 の安定版があったのでそれをインストールしようとbrew update をしたところ、エラーが出現した。
Dockerを利用してもよかったのだが、直ぐに立ち上げて実行できるiTerm2で使用したかったので今回のようになった。
Error:
homebrew-core is a shallow clone.
homebrew-cask is a shallow clone.
To `brew update`, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
These commands may take a few minutes to run due to the large size of the repositories.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!
Error: rbenv: undefined method `cellar' for #<BottleSpecification:0x00007fd7001cc828>
原因
どうやら、アップデートの方法と手法に変更があったようだ。リポジトリのサイズが大きく、時間がかかるようでそれにともない変更があったみたい。
解決策
エラー文で指定されているコマンドを実行することで無事解決できた。
To `brew update`, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow
実行の後に普通にbrew updateを実行して、少し時間がかかるが終了したらbrew outdatedを実行して最新版でないものを確認した後、brew upgradeを実行するとダウンロードが始まる。
終わったら、再度brew outdatedを実行しても何も表示されなければ問題なさそうだ。
brew -v でバージョンを確認して現時点の最新版であることが確認できた。
Homebrew 3.4.3-56-g8485a7c
Homebrew/homebrew-core (git revision 93646f73b04; last commit 2022-03-27)
Homebrew/homebrew-cask (git revision 60208d8c20; last commit 2022-03-26)
brew install rbenv をインストールしてから、
rbenv initを実行すると以下のようにeval "$(rbenv init - zsh)"が表示されるので、
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init - zsh)"
それを.bash_profileに追記する。
Userディレクトリに移動して vim でファイルを開いて、eval "$(rbenv init - zsh)" を末尾に記述して保存して終了する。
再度、iTerm2を立ち上げる。
rbenvのセットアップの確認
以下を実行してチェックする。
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
今回、私の場合は以下の部分でエラーが出た、パスの設定がうまくできてない。
Checking for rbenv shims in PATH: not found
解決策
原因としては、私はシェルをbashではなく、zshを使用していることが原因のようだ。
なので、.bash_profileと.zshrcの設定を少し変更する必要がある。
# .bash_profile
# .zshrc
# 2つのファイルに以下のコードを追記
export RBENV_ROOT="$HOME/.rbenv"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
fi
再度、iTerm2を再起動してもう一度実行すると
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
全て問題なし
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /Users/hirotakamaki/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20220324)
Counting installed Ruby versions: 5 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
Ruby 3.1.1 のインストール
rbenv install -l を実行してインストール可能なRubyのバージョンを確認する。
# rbenv install -l
2.6.9
2.7.5
3.0.3
3.1.1
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.0.0.2
truffleruby+graalvm-22.0.0.2
インストールしたい、3.1.1 が確認できるので、それをインストールする。
rbenv install 3.1.1 を実行
rbenv install 3.1.1
特に問題なくインストールできたので、rbenv rehashを実行してから、
rbenv versions を実行して現在指定しているRubyのバージョンを確認する。
system
2.5.0
2.5.3
2.5.8
2.6.6
* 3.1.1 (set by /Users/hirotakamaki/.rbenv/version)
Ruby 3.1.1 が指定されているのが確認できた。
もし、バージョンを2.5.3に切り替えたい場合は
rbenv global 2.5.3 を実行する、問題なく変更できている。
また、3.1.1に戻しておく。
system
2.5.0
* 2.5.3 (set by /Users/hirotakamaki/.rbenv/version)
2.5.8
2.6.6
3.1.1
最後にRubyのバージョンの確認をする
ruby -v でバージョンを確認
ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [x86_64-darwin21]
問題なさそうだ。
irbを起動してみる
irb と記述して実行するとirbが立ち上がる。
'Hello ワールド'と出力されるか確認する
irb(main):001:0> puts 'Hello ワールド'
Hello ワールド
=> nil
irb(main):002:0>
問題なく実行できた、文字化けもしていない。
exit で終了!