8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rmagick を最近の環境でもインストール出来るようにする方法

Last updated at Posted at 2013-01-26

homebrew の ImageMagick 6.8.0 Q16 とかで、変な symlink で無理矢理回避するのはやめましょうという話です。

2013-02-04 追記

rmagick 2.13.2 がリリースされて、別の方法で対処されたので、普通にインストール出来るようになりました。

使い方

Gemfile
gem 'rmagick', github: 'znz/rmagick', branch: 'pkg_config'

説明

https://github.com/znz/rmagick/commit/27ceb27990ef5d55a3768274a774bba2512bd66b
のように pkg_config を使うようにすれば解決します。
変更内容は以下のように && !pkg_config("MagickWand") を追加しているだけです。

diff --git a/ext/RMagick/extconf.rb b/ext/RMagick/extconf.rb
index 425b560..41ccdaf 100644
--- a/ext/RMagick/extconf.rb
+++ b/ext/RMagick/extconf.rb
@@ -202,7 +202,7 @@ def check_partial_imagemagick_versions()
 
 
 
-if RUBY_PLATFORM !~ /mswin|mingw/
+if RUBY_PLATFORM !~ /mswin|mingw/ && !pkg_config("MagickWand")
 
   unless have_library("MagickCore", "InitializeMagick", headers) || have_library("Magick", "InitializeMagick", headers) || have_library("Magick++","InitializeMagick",headers)
     exit_failure "Can't install RMagick #{RMAGICK_VERS}. " +

まとめとか

  • imagemagick 側は悪くないので、変なシンボリックリンクを作ったりしていると、将来バージョンアップした時とかに変なことになるかもしれないので、やめた方が良いですよ、という話。
  • ちゃんとライブラリのファイル名が変わっても対応出来るように pkg-config という仕組みがあって、 ruby 側でも対応しているのだから使いましょう、という話。
  • rmagick は開発が止まっていて新しい imagemagick の機能が使えないし、拡張ライブラリだからメモリリークとかに弱いので、 mini_magick の方がおすすめらしいという話をどこかでみました。
  • rmagick を使い続けたい人は rmagick プロジェクトに参加して pull request を処理したり改善したりしていくと良いかもしれません。
  • 私は徐々に mini_magick に移行する予定なのでやる気なしです。
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?