1
1

More than 3 years have passed since last update.

bundle installするときに "can't find gem bundler (>= 0.a) with executable bundler (Gem::GemNotFoundException)" とErrorが出る

Posted at

問題が起きたらググれって偉い人が言ってた

対象のディレクトリ下でbundle installするときに起った現象のメモ
※初学者なので細かめに記載

git cloneしたアプリのgemを入れようとしたら以下のエラーが出た。

console
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チェック

ルートディレクトリで以下のコマンドを叩く

bundlercheck
$ bundle -v
Gemfile.lockにある 'BUNDLED WITH' をbunderのversionに対応させるの方法
bundler
$ cd ~/[対象のディレクトリ]
bundler
$ vim Gemfile.lock

ファイルの中身が見れるようになるので、
G(Shift+g)で最終行へ
x.x.xを対応のversionに書き換えます。

Gemfile.lock
BUNDLED WITH
   x.x.x

書き換え方
i → インサートモードへ(書き換えができるようになる)
esc → インサートモードの終了
:wq!を入力 → 保存して強制終了

これでbundle -v したり bundle install して、
問題なければヨシッ!

まとめ

いろんな記事を読んで模索した結果なので、これが最善の解説策かはわかりません。
なのでこれだけでなくいろんな記事を読んで、
ここは一つの参考にしていただければと思います。

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