Ошибка при установке rmagick в Mac OS X (проблема с MagickCore.pc)

Думал что только один из серваков на CentOS глючит, но после недавних доработок приложения одним из программистов я не смог выполнить привычный bundle в директории с проектом, на что получил ошибку о необходимости ручной установки гема rmagick.

Попытка выполнить gem install rmagick тоже не привела к успеху, ругалось то на одно, то на другое. И тут меня осенило! Может вообще ImageMagick не установлен с нужными библиотеками? Сам я его не ставил это точно, в каких-то смежных проектах не использовался, вероятнее всего не хватает заголовочных файлов.

Первое что делаю, это ставлю сам ImageMagick:

brew install imagemagick --disable-openmp --build-from-source

После успешной компиляции пробуем установить гем:

gem install rmagick

Но не всё так просто, как кажется. Одна ошибка сменяется на другую:

gruz0:rails-otp gruz0$ gem install rmagick -v '2.13.4'
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
	ERROR: Failed to build gem native extension.

    /Users/gruz0/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for /usr/bin/clang... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found

И ещё с пару десятков таких строк, но нас интересует только то, что не может найти файл «MagickCore.pc». Эта проблема довольно часто обсуждается в интернете, поэтому решение найти было не так сложно, как казалось на первый взгляд.

Решение

Нам необходимо найти путь к pkgconfig-директории в только что установленном ImageMagick и, вероятнее всего, он будет таким:

/usr/local/Cellar/imagemagick/ВЕРСИЯ/lib/pkgconfig/

, где вместо «ВЕРСИЯ» будет набор цифр, у каждого свой.

Теперь нам остаётся лишь добавить этот путь до директории к переменной PKG_CONFIG_PATH:

export PKG_CONFIG_PATH="/usr/local/Cellar/imagemagick/ВЕРСИЯ/lib/pkgconfig/:$PKG_CONFIG_PATH"

, не забудьте заменить «ВЕРСИЯ» в этой строке на версию используемой библиотеки ImageMagick, иначе ничего не получится.

После этого устанавливаем гем rmagick и радуемся:

gruz0:rails-otp gruz0$ gem install rmagick
Building native extensions.  This could take a while...
Please report any bugs. See https://github.com/gemhome/rmagick/compare/RMagick_2-13-2...master and https://github.com/rmagick/rmagick/issues/18
Successfully installed rmagick-2.13.4
1 gem installed

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *