LoginSignup
10
9

More than 1 year has passed since last update.

ただMacのターミナルでRubyとRailsを最新バージョンにしたかっただけなのに。。

Last updated at Posted at 2022-09-18

はじめに

久々に簡単なアプリを作成しようとして、(作成前ついでにRubyをRailsのバージョンを最新にしておくか)と軽い気持ちでバージョンアップを試みたら思いのほか詰まったので備忘録として残しておこうと思います。

バージョンアップの流れとしては
1.Homebrewとrbenvのアップデート
2.Rubyのアップデート
3.Railsのアップデート
という感じです。早速やっていきましょう。

1.Homebrewとrbenvのアップデート

アップデートするコマンドの流れはこちら

$ brew update  # Homebrewをアップデートする
$ brew upgrade rbenv && brew upgrade ruby-build

まずターミナルにてbrew updateを実行します。すると早速エラーが
スクリーンショット 2022-09-17 11.18.16.png
下記を実行すれば良いみたいなので実行

$ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

これでbrew updateを実行してもまだ同じエラーが出たのでもう一回同じコマンドを実行

$ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

この後に通常通り最初に記述したコマンドを実行したら正常にアップデートされました。

$ brew update  # Homebrewをアップデートする
$ brew upgrade rbenv && brew upgrade ruby-build

2.Rubyのアップデート

続いてRubyのアップデートについて。ここでも軽く詰まりました笑
まずはRubyのバージョン確認から

$ ruby -v
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]

バージョンは2.6.8?みたい。続いてどのバージョンにアップデートできるのか確認するために下記コマンドで確認します。

$ rbenv install --list
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.7.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.2.0
truffleruby+graalvm-22.2.0

今回は最新バージョンの3.1.2に上げたいと思います。
Rubyバージョンアップのため下記コマンドを実行

$ rbenv install 3.1.2

正常にインストールできているか確認のためrbenv versionsを実行して確認してみます。

$ rbenv versions  # インストール済のRubyのバージョン一覧
* system
  3.1.2

どうやらインストールはできているが、システム全体として使用する為にバージョンの指定をしてsetする必要があるみたいです。よって以下のコマンドを実行します。

$ rbenv global 3.1.2
$ rbenv versions
system
* 3.1.2 (set by /Users/(ユーザー名)/.rbenv/version)

これで正常にインストールされ、最新バージョンをセットできていたと思っていたのですが、これが上手くできていないのが後々発覚します笑

3.Railsのアップデート

この後またエラーが発覚することになるのですが、取り敢えずRailsのインストールを進めました。
Railsをアップデートするコマンドの流れはこちら

$ gem install bundler  # Bundlerのインストール
$ gem install rails  # Railsのインストール
$ rails -v  # Railsのバージョン確認

この流れでRailsをアップデートしようとしたらgem install railsを実行した際に以下のエラーが。。

スクリーンショット 2022-09-18 8.32.46.png

ERROR:  Error installing rails:
	There are no versions of activesupport (= 7.0.4) compatible with your Ruby & RubyGems. Maybe try installing an older version of the gem you're looking for?
	activesupport requires Ruby version >= 2.7.0. The current ruby version is 2.6.8.205.

(ん?Rubyのバージョンが2.6.8のまま変わってないだと?)
一旦バージョンを確認してみます。

$ rbenv versions
system
* 3.1.2 (set by /Users/(ユーザー名)/.rbenv/version)

(うん、問題なさそう。)ruby -vでも確認してみよう。

$ ruby -v
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]

(ん?変わってないだと!?なんで??)
バージョンが異なる問題が発生しました笑

しょうがないから公式読もう

これらによるとrbenv初期化コマンド rbenv initをbash_profileに追加し、bash_profileを再読み込み。そしてまたrbenv globalでシステム全体で使用できるようセットするとruby -vで更新できたバージョンになるみたい。

なので以下の一覧のコマンドを実行。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile #rbenv initを仕込む
$ source ~/.bash_profile #bash_profileを再読み込み
$ rbenv global 3.1.2 #今回は3.1.2

よし、準備は整った。よろしくお願いします!!(Enterキー叩く)

$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

無事にバージョン更新ができているみたいです!

やっとRailsのアップデートに戻って来れました。再度以下コマンドを実行します。

$ gem install rails  # Railsのインストール

Successfully installed rails-7.0.4
Parsing documentation for rails-7.0.4
Done installing documentation for rails after 0 seconds
1 gem installed

$ rails -v  # Railsのバージョン確認
Rails 5.2.6

(ん?正常にインストールできているのにバージョンが更新されていない。。なぜ!?)
またもや問題が。。

調べてみるとなんかRails本体がある?ディレクトリにいなかったみたいです which railsで場所を確認し移動します。

$ which rails
/Users/(ユーザー名)/.rbenv/shims/rails #ここで表示されているのをそのままコピー
$ cd /Users/(ユーザー名)/.rbenv/shims/rails #Rails本体があるディレクトリに移動
$ rails -v  # Railsのバージョン確認
Rails 7.0.4

無事更新できているみたいです!!

最後にRails newで確認してみます。

$ rails new sample_app

Rails newで作成されたappのGemfaileを確認します。

Gemfile
ruby "3.1.2"

# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem "rails", "~> 7.0.4"

無事Ruby、Rails共に最新バージョンで作成できてそうですね!

参考

あとがき

いかがだったでしょうか?ついでにバージョンアップしとくかくらいの軽いノリで始めたのに意外と詰まりましたね笑 同じことをされる方の少しでも参考になれば幸いです。

最後までご覧いただき本当にありがとうございました!!

Twitterでも日頃の業務で思ったことを呟いていくのでご覧いただけると幸いです。
@mokio_50

10
9
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
10
9