【小ネタ】homebrewでインストールされるimagemagickのバージョンを固定する
丹内です。
よく使われるImageMagickですが、RubyからImageMagickを使うためのRMagickはバージョン不一致によるエラーを起こすことが多いです。
https://github.com/rmagick/rmagick/issues/234
his installation of RMagick was configured with ImageMagick 6.8.9 but ImageMagick 6.9.0-3 is in use. (RuntimeError)
私はbrew update
とbrew upgrade
を叩くのが好きで、ほぼ毎日更新を見て適用しているのですが、ImageMagickの更新が来るとRMagickを使っている実務への影響が出かねないので、すぐには適用せず様子を見ています。
恒久的な対策としては、
- Dockerでプロジェクト毎にImageMagickを使うようにする(MacのImageMagickのバージョンに左右されない)
git checkout
で特定バージョンのformulaにする(参考URL)
などがありますが、本番運用されているプロジェクトを今からDocker化をするのは腰が重い、git checkoutも後から忘れがちということで、もっと簡単に行う方法を探してみたところ、brew pin
を使う方法(URL)が見つかりました。
$ convert | head -n 1 Version: ImageMagick 6.9.2-10 Q16 x86_64 2015-12-21 http://www.imagemagick.org $ brew pin imagemagick $ brew upgrade ==> No packages to upgrade ==> Not upgrading 1 pinned package: imagemagick 6.9.3-0 $ convert | head -n 1 Version: ImageMagick 6.9.2-10 Q16 x86_64 2015-12-21 http://www.imagemagick.org
もちろん時間ができたら最新のRMagickに更新したり場合によってはforkしたり、可能であればDocker化をする必要はありますが、brew pin
を使ってみました。
なお、brew unpin <formula>
で固定を解除できるそうです。