こんばんは。Miyayanと申します。今回初めてQiitaにて記事をあげます。
ゆえに拙い部分もあるかと存じますが、どうぞよろしくお願いいたします。
目次
- 環境
- 参考記事
- 概要
- 仮説
- 試したこと
- 解決方法
- まとめ
環境
OS : macOS Big Sur ver.11.1
Ruby : 2.6.5p114
Rails : 6.0.0
bundler : 2.1.4, default: 1.17.2
gem : 3.0.3
参考記事
・【Rails6】rails new で bundler: failed to load command: spring が出た。問題はbundler2.1.4かRuby2.7にあるようだが.....
・bundler: failed to load command: spring が出た。。
・「gem update --system」と「gem update」の違い
概要
railsにてnewコマンドを用い、アプリケーションの作成を試みました。
rails _6.0.0_ new アプリ名 -d mysql
すると、下記文面が赤色で表示されるではないですか!
bundler: failed to load command: spring (/Users/ユーザー名/アプリを作成したいディレクトリ/アプリ名/vendor/bundle/ruby/2.6.0/bin/spring)
どうもエラーのようでエラーっぽくないと言いますか、正直プログラミング初学者の私からしたらイマイチ何が起きているのかもパッとしない状況・・・。
しかし赤文字ってだけで何かムズムズしてしまう。
どうにかしてこの警告のような文面が出ることなくアプリケーションを作成できないものだろうか・・・。
仮説
文面から見るにSpringというものがうまくいってないように感じます。
しかしながら、インストールされているGemを見ると、
Installing spring 2.1.1
と緑色で表示があり、Springは入っている。正直この警告は無視しても良さそうな感じがします。
参考記事を見てみると、バージョンが2.1.4となっているbundlerが悪さをしているのかと書かれております。
では、bundlerをいじってみましょうか。
試したこと
まずbundlerのバージョンを確かめてみます。
% gem list bundler
*** LOCAL GEMS ***
bundler (2.1.4, default: 1.17.2)
参考記事の方々と同じ2.1.4です。
これをアンインストールし、バージョンを再度確認。
% gem uninstall bundler
Successfully uninstalled bundler-2.1.4
% gem list bundler
*** LOCAL GEMS ***
bundler (default: 1.17.2)
そしてさらに、最新バージョンのbundlerを入れてみます。
% gem install bundler
ここで再度bundlerのバージョンを確かめてみましょう。
% gem list bundler
*** LOCAL GEMS ***
bundler (2.2.3, default: 1.17.2)
bundlerが2.2.3にアップグレードされました。
これでnewコマンドでアプリを作成してみましょう!!!
bundler: failed to load command: spring (/Users/ユーザー名/アプリを作成したいディレクトリ/アプリ名/vendor/bundle/ruby/2.6.0/bin/spring)
出るんかい!!!
どうもbundlerではなさそう。あるいは2.2.3でもSpringの警告文は出るのかもしれない。
gemそのもののバージョン・・・?
解決方法
こちらは私の場合、解決した方法です。あくまでご参考程度にしていただけると幸いです。
gemのバージョンを確認してみる。
% gem -v
3.0.3
gemのアップデートを試みる。
% gem update --system
再度gemのバージョンを確認する。
% gem -v
3.2.3
アップデートが完了したようです。
流石にこれで解決するのかなーと半信半疑でしたが、ここで一旦bundlerのバージョンも確認してみます。
% gem list bundler
*** LOCAL GEMS ***
bundler (default: 2.2.3)
ん?ちょいと表記が違いますね。
先程は
bundler (2.2.3, default: 1.17.2)
こういう表示だったのが、gem自体のアップデートを行なったことによりbundlerのdefaultがカチッと最新バージョンになったようです。
ここでrails newコマンドで再度アプリを作成すると、
無事警告が出ることなく作成完了しました!!!
まとめ
結論、なぜ解決したのかパッとしませんが、
①bundlerのdefaultバージョンが1.17.2より現行最新である2.2.3へと切り替わったことで解決した。
②gemのバージョンが3.0.3から3.2.3になったことで解決した。
以上2パターンかなぁと感じております。
あくまで私の環境下での解決方法ではありましたが、同様に
bundler: failed to load command: spring
が出た方のご参考になれば幸いです。
ご覧いただきありがとうございました!