はじめに
payjpをGemfileに記述しbundle installs後rails sをすると大量に文字が羅列され
cannot load such file -- mime/types/data (LoadError)
とういうエラーが出た時の解決したプロセスを記事にしました。
環境やエラーへの辿り着き方で、それぞれ違う解決方法が存在する思いますので、参考程度にしてください〜
環境
macOS Catalina バージョン 10.15.7
Homebrew 2.7.1
rbenv 1.1.2
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
gem 3.2.4
Bundler version 2.1.4
エラー
エラー文
cannot load such file -- mime/types/data (LoadError)
大量に文字が羅列されたエラー分をよく確認するとMIME: :Types
が既に定義されてるという文がありました。
確認と考察
gem list
でローカルのgemがどうなってるか確認しました。
mime-types-data
が2バージョン入っていいデフォルトに設定されてる。
むーーこれが悪いのか??
いろいろ調べてると、default
が設定されるには、gem update --default
らいし。
そんなんことした事ないが、このコマンドを打つと、gemの最新バージョンが一度にインストールされ、かつ最新バージョンがデフォルトに設定されてしまうらしい。
対応
ひとまず、アンインストールしデフォルトを解除することにしました。
まずはデフォルト解除
cd #ホームディレクトリへ移動
cd /Users/[ユーザー名]/.rbenv/versions/[バージョン]/lib/ruby/gems/[バージョン]
#上記で確認したパスに移動します
ls #中を確認します
build_info doc gems
cache extensions specifications ←この中にdefault設定が記述されています
rm -rf specifications/default/
#specificationsのなかのdefaultディレクトリ削除します(これでdefaultが解除されます)
mime-types-data
のアンインストール
gem uninstall mime-types-data
bundle install
確認します。
gem list
payjpをGemfileに記述しbundle install
、rails sをするとサーバーが立ち上がりました!
まとめ
今回のエラーはmime-types-dataが原因でした。
本文では記述しておりませんが、調べた事を何も考えずに実行しニ次災害、三次災害が発生し、結果解決までに3日かかってしまいました。
ターミナルでのコマンドはなんの為のもので、どう動くかを理解した上で進める事をおすすめします。