問題が起きたらググれって偉い人が言ってた
対象のディレクトリ下でbundle installするときに起った現象のメモ
※初学者なので細かめに記載
git cloneしたアプリのgemを入れようとしたら以下のエラーが出た。
Traceback (most recent call last):
2: from /Users/mac/.rbenv/versions/2.5.3/bin/bundler:23:in `<main>'
1: from /Users/mac/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/Users/mac/.rbenv/versions/2.5.3/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)
結局原因ってなんなの?
どうやらbundlerとGemfile.lockのversionが異なっていたので、
『bundlerのgemが見つからないよ!!!!!』って怒られていたらしい。
version違うだけで見つからないのは、当たり前とはいえ
ぶち当たるとちょっとテンション落ちる。
ドジっ子と思えばそうでもないかもしれない。
どうやって解決したの?
方法は2つ
・bundlerのダウングレードをする
・Gemfile.lockにある 'BUNDLED WITH' をbunderのversionに対応させる
bunderのダウングレードはいっぱい記事があるので、
検索してみてください。
そもそものbundlerのversionチェック
ルートディレクトリで以下のコマンドを叩く
$ bundle -v
Gemfile.lockにある 'BUNDLED WITH' をbunderのversionに対応させるの方法
$ cd ~/[対象のディレクトリ]
$ vim Gemfile.lock
ファイルの中身が見れるようになるので、
G(Shift+g)で最終行へ
x.x.xを対応のversionに書き換えます。
BUNDLED WITH
x.x.x
書き換え方
i → インサートモードへ(書き換えができるようになる)
esc → インサートモードの終了
:wq!を入力 → 保存して強制終了
これでbundle -v したり bundle install して、
問題なければヨシッ!
まとめ
いろんな記事を読んで模索した結果なので、これが最善の解説策かはわかりません。
なのでこれだけでなくいろんな記事を読んで、
ここは一つの参考にしていただければと思います。