環境
問題
rails s
でサーバーを起動しようとすると次の警告やエラーが出て実行されない。
Warning: the running version of Bundler (2.1.2) is older than the version that created the lockfile (2.1.4). We suggest you to upgrade to the version that created the lockfile by running `gem install bundler:2.1.4`.
To update to the latest version installed on your system, run `bundle update --bundler`. To install the missing version, run `gem install bundler:2.1.4`
「あなたが今使ってるBundlerは2.1.2で、Gemfile.lockに書かれてるのは2.1.4だよ。バージョンをGemfile.lockに合わせて2.1.4にしてよ。アップデートするなら、gem install bundler:2.1.4
やbundle update --bundler
を試してみたら。」
と言われているのだが、インストールしたbundlerはすでに
bundle -v Bundler version 2.1.4
と、2.1.4と同じバージョンを使っている。
もちろん、gem install bundler:2.1.4
やbundle update --bundler
を試しても解決しない。
解決
rails s
ではなく、
bin/rails s もしくは bundle exec rails s
にしたら解決した。
bin/rails
コマンドは、アプリケーションのルートディレクトリ直下のbinディレクトリにあるrailsというスクリプトを実行している。これはbundle exec
と同じ意味になる。
これで、Gemfileどおりのgemを利用できる環境上で、railsコマンドを実行できる。