【Ruby】bundle installのエラー対処法:Gem::Ext::BuildError: ERROR: Failed to build gem native extension (mimemagic)

rails-prograshi(プロぐらし)-kv Rails
記事内に広告が含まれていることがあります。
[PR]

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とは何か?

shared-mime-infoとは、MIME DBを含み、アプリケーションのMIMEのアップデートを統括して行うパッケージです。

shared-mime-info-2.4


実例

#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の最新動向 この文書は(
タイトルとURLをコピーしました