bundle install
の使い方を中心に、発生しやすいトラブルとその対処法を解説します。はまりがち。【パソコン環境はWindows10Pro、データベースはSQLite3、エディターはVisual Studio Codeです。】
「Could not find mimemagic-0.3.10 in any of the sources Run `bundle install` to install missing gems.」というエラーメッセージが出ます。
本記事で、読者の皆さんも理解しやすくなり、具体的な行動に繋がりやすくなると思います!
gem lockの削除
gem、他Fileの書き換え
以下全てのファイルに留意する
➀(app>>asserts>>stylesheets内)application.scss
⓶(config内)databae.yml _
bundle installを繰り返し
依存関係を逐次修正する為に、bundle installを繰り返します。
実際にRails開発では、主に以下のような場合が考えられます。
1. Gemfile を変更しながら試行錯誤する場合
- あるgemを追加したが、インストール時に依存関係エラーが発生。
Gemfile.lock
を削除 →bundle install
で再構築。- 他のgemのバージョンも変更しながら調整。
例:
↓ bundle install
→ エラー発生
↓
Rubyのバージョンを上げる or Nokogiriのバージョンを下げる → 再度 bundle install
2. bundle update で更新後、影響を確認する場合
bundle update
で特定のgemを更新した後に、想定外のエラーが発生することがある。- 依存関係の影響で、他のgemのバージョンも変わってしまい、不具合が出る。
bundle install
を繰り返して、バージョンを調整。
例:
↓
Railsのバージョンが上がった結果、他のgemが動かなくなる。
↓
特定のgemのバージョンを Gemfile
に固定して、bundle install
を試す。
3. Gemfile.lock が破損・競合している場合
- Git で
Gemfile.lock
を共有しているプロジェクトで、開発メンバーの環境によって異なるgemバージョンがロックされている。 Gemfile.lock
を削除してbundle install
を試す。
例:
4. OS・環境の違いによる問題を修正する場合
- Windowsで
bundle install
を実行すると、Linux/Mac とは異なる依存関係が必要になる。 gem install
を個別に試したり、bundle install --path vendor/bundle
でローカルに入れ直したりする。
例:
Windowsで sqlite3
のインストールが失敗する場合
5. bundle exec の実行時にエラーが発生する場合
rails server
やrake
コマンド実行時にCould not find gem 'XXX'
というエラーが出る。bundle install
で修正を試みるが、うまくいかないことも。bundle exec rails s
で動くか試す。
例:
6. まとめ
Gemfile
を変更するたびにbundle install
を試すことが多い。Gemfile.lock
の削除やbundle update
を試すこともある。- Windows環境では、特定のgemが入らない場合があり、手動で
gem install
することも。
もし具体的なエラーがあるなら、それに合わせた解決策を考えるのです。
database.ymlの修正
以下の「app>>database」内でのdatabase.ymlファイルで以下の情報を参考に
adapter ,databaseに注意して書き換えていきましょう。
production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000 username: crawler_app password: <%= ENV['CRAWLER_APP_DATABASE_PASSWORD'] %>
db.migrateの更新
migrateの作業も繰り返します。
また、Windows環境で作業売る場合、次のmimemagicエラーが出る事が多いです。
C:\Users\user\techgym_rails\techgym_rails_course02>bundle exec rake scraping:fetch_crowdworks Could not find gem 'mimemagic (< 0.4.3)' in locally installed gems. Run `bundle install` to install missing gems.
Minmagicの導入にはPacmanが有益ですが、pacman
は、MSYS2やArch Linuxなどのパッケージ管理システムで使用されるコマンドであり、Windows環境では直接使用することはできません。MSYSの導入をお勧めします。
Windows環境でmimemagic
のインストールに必要なshared-mime-info
パッケージを手動でインストールする方法として、以下の手順が考えられます。
shared-mime-info
のソースコードをダウンロード:shared-mime-info
の公式リポジトリからソースコードをダウンロードします。
- ビルドツールのインストール:
- Windows環境でC言語のビルドツールを使用するために、MSYS2をインストールします。
- MSYS2をインストール後、
pacman
を使用して必要なパッケージをインストールします。
shared-mime-info
のビルドとインストール:- MSYS2のシェルを使用して、ダウンロードした
shared-mime-info
のソースコードをビルドし、インストールします。
- MSYS2のシェルを使用して、ダウンロードした
〆最後に〆
以上、間違い・ご意見は
次のアドレスまでお願いします。
最近は全て返信出来てませんが
適時、返信して改定をします。
nowkouji226@gmail.com
【全体の纏め記事へ】
コメント