2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

2021年8月にRuby on Rails チュートリアルの環境構築

Last updated at Posted at 2021-08-05

2021年8月にRuby on Rails チュートリアルの環境構築

Ruby on Rails チュートリアルを2021年8月に始めようとした。
いろいろとつまずいたので私の解決までの思考回路をメモする。

要約

最新のRubyを使ってbundle updateをやろうとしたら無理だった。
いい感じに低いバージョンのRubyを使えばうまくいった。

注意

  • 私は、情報系の大学院生なので、現場のことなど知らないです。
  • 私はOracle VM VirtualBox上にインストールしたUbuntuで作業しています。つまり、うまくいかなかったらOSのインストールからやり直せばいいと思ってます。本番環境でマネをしないようにしてください

新しいRubyでやろうとした話

Rubyの最新版をインストールした。

$ rvm install 3.0.2

Railsチュートリアルの言うとおりにコマンドをポチポチした。
yarnのインストールは自分で調べろって書いてあったから、公式の言うとおりにインストールした。

$ gem install rails -v 6.0.3
$ sudo apt install npm
$ sudo npm install -g yarn
$ yarn set version latest
$ mkdir environment
$ cd environment/
$ rails _6.0.3_ new hello_app

Gemfileを編集してbundle install

$ bundle install
Fetching gem metadata from https://rubygems.org/............
You have requested:
  listen = 3.1.5

The bundle currently has listen locked at 3.6.0.
Try running `bundle update listen`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`

失敗!

チュートリアルによると、エラーメッセージを見て解決するよう書いてある。
エラーメッセージにはTry running bundle update listenと書いてある。

やってみるか

$ bundle update listen
Fetching gem metadata from https://rubygems.org/............
You have requested:
  spring = 2.1.0

The bundle currently has spring locked at 2.1.1.
Try running `bundle update spring`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`

次のTry runningはbundle update spring

$ bundle update spring
Fetching gem metadata from https://rubygems.org/............
You have requested:
  listen = 3.1.5

The bundle currently has listen locked at 3.6.0.
Try running `bundle update listen`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`

これ、さっき見た!無限ループじゃん!!

でいろいろQiitaの記事を覗いたけど、無理だった。(バージョンの指定を~>に変えたら良いとか書いてあった。マイナーバージョン程度ではどうにもならないのだった。

考察と解決

仮説を立てた

  • もしかして、Rails 6.0.3にとってRuby 3って知らない子なんじゃ??
  • つまり、Rails 6.0.3はRuby 3と相性が悪いんじゃないか?

そこで、Rails6.0.3ができたとき、Rubyの最新版っていくつだったのか調べた。

以下のURLからRails 6.0.3は2020年5月6日にリリースされたことがわかった。

2020年5月ってRubyのバージョンはいくつなのか以下のURLで調べた

2.7.1が最新だったことがわかった。
2.7系だと今は2.7.3が最新なので、2.7.3でも行けるんじゃね?
だめだったら、やりなおせばいいや!

というわけで、Hello_appをぶっ壊し、Rubyを入れ直す(rvmでバージョンを変えるだけ)

うまく行った話

rm -r *
$ rvm install 2.7.3
$ gem install rails -v 6.0.3
$ rails _6.0.3_ new hello_app
$ cd hello_app
$ bundle install
$ bundle update
$ bundle install

bundle updateしたあとならbundle installうまくいきました

まとめ

他のソフトウェアに依存するようなソフトウェアを使うときは、そのソフトウェアがリリースされた頃のバージョンにそろえてあげないといけない

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?