Ruby on Railsでbundle install
した時にmimemagic関連のエラーが発生し、bundle installが途中で止まってしまうことがあります。
ここでは、その場合の対処法についてまとめています。
エラーの内容
bundle install
した時に発生するエラーは以下のような内容です。
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
An error occurred while installing mimemagic (0.3.9), and
Bundler cannot continue.
Make sure that `gem install mimemagic -v '0.3.9' --source
'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
rails was resolved to 5.2.4.5, which depends on
activestorage was resolved to 5.2.4.5, which depends on
marcel was resolved to 0.3.3, which depends on
mimemagic
mimemagic(0.3.9)のインストール中にエラーが発生し、 Bundlerは続行できません。という内容です。
エラーの原因
エラーの原因は「mimemagic」という gemが、ライセンス関連の問題でrubygems.orgから取り下げられたためです。
これにより、mimemagic <= 0.3.5に依存しているRailsアプリがbundle installに失敗するようになりました。
対処法
まず、「shared-mime-info」というgemをインストールします。
$ brew install shared-mime-info
続いて、gemの依存関係を含めてアップデートとインストールを行います。
$ bundle install
実例
#shared-mime-infoのインストール(※時間かかる)
brew install shared-mime-info
#mimemagicを最新版に上げる。
bundle install
Bundle complete! 1 Gemfile dependency, 41 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
インストールが無事成功します。
補足
下記サイトにはbundle update mimemagic
でmimemagicをアップデートするとあったが、実行したところ存在しないと言われてしまいました、、
$ bundle update mimemagic
Could not find gem 'mimemagic'.
mimemagicの最新動向 - HackMD
# mimemagicの最新動向 この文書は(