맥OS에서 MagickCore나 MagickWand.h 문제로 rmagick이 설치되지 않을 때

루비Ruby와 같은 스크립트 언어는 의존성 관리가 상당히 어려운 편입니다. 특히 ImageMagick에 의존적인 RMagick과 같은 젬을 설치할 때는 여러가지 이유로 설치가 잘 되지 않는 경우가 있습니다. 최신 버전 RMagick(4.x)은 ImageMagick 7을 정상적으로 지원합니다만, 의존성에 따라서 구 버전 RMagick을 사용하는 경우 ImageMagick과 호환성 문제가 있습니다.

맥OS에서 RMagick을 설치할 때 Can't find MagickWand.hNo package 'MagickCore' found 발생하는 경우 ImageMagick 6 버전을 설치해서 문제를 우회할 수 있습니다. 홈브류에서 확인해보면 ImageMagick의 최신 버전은 2020년 8월 현재 7.0.10입니다.

$ brew info imagemagick
imagemagick: stable 7.0.10-28 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/imagemagick.rb
License: ImageMagick
==> Dependencies
Build: pkg-config ✔
Required: freetype ✔, ghostscript ✔, jpeg ✔, libheif ✔, liblqr ✔, libomp ✘, libpng ✔, libtiff ✔, libtool ✔, little-cms2 ✔, openexr ✘, openjpeg ✔, webp ✔, xz ✔
==> Options
--HEAD
        Install HEAD version
==> Analytics
install: 155,385 (30 days), 445,368 (90 days), 1,437,606 (365 days)
install-on-request: 120,813 (30 days), 331,903 (90 days), 1,053,953 (365 days)
build-error: 0 (30 days)

홈브류에서는 간혹 구 메이저 버전을 지원하곤 하는데, ImageMagick도 6 버전을 지원하고 있습니다. imagemagick 패키지가 이미 설치되어있는 경우 다음 명령어들로 imagemagick@6을 설치하고 셋업해줍니다.

$ brew uninstall imagemagick
$ brew install imagemagick@6
$ brew unlink imagemagick && brew link --force imagemagick@6

구 버전 RMagick 젬 설치를 하기 위해 pkg-config를 설치하고 PKG_CONFIG_PATH 환경변수를 지정합니다.

$ brew install pkg-config
$ export PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig
$ gem install rmagick # bundle install

테스트 환경은 맥OS 카탈리나 루비 2.6.3, rmagick 2.16.0이며, 정상적으로 설치되는 것을 확인했습니다.