起きていた事象
- インストールしたいgemをGemfileに記載しても、bundle installでインストールできない
原因
- 何らかの操作で、環境変数BUNDLE_GEMFILEが設定されており、特定のディレクトリにあるGemfileしか読み込まない設定になっていた
解決策
- bundle configを実行し、環境変数BUNDLE_GEMFILEが設定されているか確認する
- 設定されていたら、unset BUNDLE_GEMFILEで設定を削除する
- source ~/.bashrcで設定を反映させる
解決に至った経緯
- Gemfileにgemを記載して、bundle installを実行しても、以下が表示され、インストールできない
The Gemfile specifies no dependencies
- Bundlerのバージョンや依存関係が原因かと思い、調べたが、特に解決できず
- bundlerについて調べていくうちに、bundle configで設定を確認できることが判明
- 実行すると、特定のディレクトリからGemfileが読み込まれていることを確認
- そのGemfileを削除し、bundle installを再度実行すると、新たなエラーメッセージが出現
No such file or directory @ rb_sysopen - (指定されたパス)
- 指定されたパスにGemfileがないのでエラーになっている
- プロジェクトごとのGemfileを使うようにするためにはどうすればいいかを調べると、環境変数が関係していることが判明
- 環境変数の設定を削除する方法を調べ、削除し、再度bundle installを実行すると、無事に解決
感想
- 検索しても同じような症状の方が見つからず、解決までにかなり時間がかかってしまった
- 一度諦め、gem installで個別にインストールしていたが、納得できず、再度解決を試みた
- bundle installの仕組みを理解することで、無事に解決することができた