##1. 状況
- 開発環境にあったプロジェクトをherokuにpushしようとしたところ、ruby のバージョンが 2.6.3 になっているけど、2.6.6 を使用しろと言われた。
- これは、なんとか解決。その時の戦記はこちら。
- 無事にherokuにpushはできた。
- しかし、そのあと、rails s しようとしたところ、謎のエラーが出た。
環境
% ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-darwin20]
% rbenv versions
system
2.5.1
2.6.3
* 2.6.6 (set by /Users/randytozuka/.rbenv/version)
% gem -v
3.2.15
エラー文
ターミナル
% rails s
/Users/randytozuka/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/lib/bundler/rubygems_integration.rb:200: warning: constant Gem::ConfigMap is deprecated
Traceback (most recent call last):
71: from bin/rails:3:in `<main>'
70: from bin/rails:3:in `load'
69: from /Users/randytozuka/Desktop/deskschedule2-master/bin/spring:15:in `<top (required)>'
(中略)
2: from /Users/randytozuka/Desktop/deskschedule2-master/vendor/bundle/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register'
1: from /Users/randytozuka/Desktop/deskschedule2-master/vendor/bundle/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/randytozuka/Desktop/deskschedule2-master/vendor/bundle/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- etc (LoadError)
##2. 対応
ググってみたところ、先人がこのようなアドバイスを残してくれていた。
・bundle install をしろ
・gem install bundler を試してみろ
・gem を update したら bundler も update せよ
・RubyGemsのバージョンをupdate か downgradeして、bundlerのバージョンと相性のよいバージョンに合わせろ
ターミナル
% gem update --system
Latest version already installed. Done.
% gem update bundler
Updating installed gems
Nothing to update
% gem list rubygems-update
*** LOCAL GEMS ***
rubygems-update (3.2.15)
状況変わらず…(TT)
ここでメンターさんから、これやってみと教えていただいた事をやってみる。
その1
gem uninstall -I -a -x --user-install --force
ERROR: While executing gem ... (Errno::ENOTEMPTY)
Directory not empty @ dir_s_rmdir - /Users/randytozuka/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/rails-6.1.3
エラーか強い心でスルーする。
その2
gem install bundler
Fetching bundler-2.2.15.gem
Successfully installed bundler-2.2.15
1 gem installed
その3、ここでGemfile.lock を削除して,
その4
% bundle install
% rails s
どうじゃ!! お?? エラーがちょっと変わった。
ん〜〜〜となったところで,たまたま見た記事 にあった ↓ を試してみる。
ターミナル
% bundle install --redownload
解決! やった!
#3. まとめ
丸一日彷徨いました。
今回のトラブルは、ruby 及び rails のバージョンを上げたが、gem がそれについてきていなかったので、もう一回最新の gem のライブラリを読み込んだら解決した…ということだったのかなと。安易にrubyのバージョンあげると大変だよということでいい勉強させてもらいました。