去年も書いていたけど、最近はRubyを勉強している。なにか面白そうなプロダクトをつくったみたいからだ。去年はRubyを頑張ってやって、クラスのあたりがなんとなく理解できるようになった。よし、「いよいよRailsだ!」と思ってやってみたら上記のエラーが出た。解決策をググっても情報が散逸していたのでメモ代わりにまとめようと思う。
環境設定が終了したのち、はじめて `rails s` コマンドをつかってWEBサーバーを立ち上げようとしたら以下のエラーが出てきた。
(前略) in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
なんぞこれ、と思って調べてみると...わからん。いまいち説明がわからん。bundlerというのが指定されていたバージョンとは異なるもので、それでエラーが起きている...らしい。
https://odenden.com/you-must-use-bundler-2-or-greater-with-this-lockfile/
上記の記事を参考に
$ gem list bundler
をターミナルに入力した。すると、
*** LOCAL GEMS *** bundler (2.1.2, default: 1.17.2)
と出た。たぶんこの2.1.2とdefaultの1.17.2が合えば問題ないのだと思う。
やったこと
上記の記事を参考にいろいろやった。私の場合は、ターミナルで
$ gem update --system
$ bundle update --bundler
を打ったら上記のエラーは直った。railsのバージョンは
$ rails -v
としたら 「Rails 6.0.2.1」と表示された。
まだエラーが出る。
「これでいいだろう」と思ったがまだエラーが出る。
(略) No such file or directory @ rb_sysopen - (略) hello_world_sample/config/webpacker.yml (Errno::ENOENT) ~~ Webpacker configuration file not found (略) hello_world_sample/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - (略) hello_world_sample/config/webpacker.yml (RuntimeError)
二種類のエラーが出た。Errno::ENOENTとRuntimeErrorだ。調べるとどちらも同じ現象から起きるらしい。
webpackerというのがPCにインストールされてないよ、ということらしい。
vviilloovv.hatenablog.com
qiita.com
上記の2つの記事を参考にターミナルに打っていく。私の場合はyarnというのがインストールされていなかったらしいので、さきにそれをインストールする。
$ brew install yarn
そして、
$ bundle exec rails webpacker:install
OK。これで rails sを実行した。
やったー!確認できた!
おわりに
これからもRailsをいろいろ勉強していくぞ。
Photo by Nicolas J Leclercq on Unsplash