Rails и OS X: как установить rmagick?

Я уже совершенно отчаялся - я потратил целый день, пытаясь установить rmagick драгоценный камень для Mac OS X Lion, но буквально это трагедия. Я видел много похожих тем в Google, но ничего не помогло мне.

Я пытался полностью удалить imagemagick с помощью brew и установите его снова (это работает хорошо), а затем установить rmagick, но каждый раз, когда я пытаюсь установить этот драгоценный камень, я получаю эту ошибку:

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

        /Users/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
extconf.rb:128: Use RbConfig instead of obsolete and deprecated Config.
checking for clang... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... yes
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.13.1. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
    --with-MagickCorelib
    --without-MagickCorelib
    --with-Magicklib
    --without-Magicklib
    --with-Magick++lib
    --without-Magick++lib


Gem files will remain installed in /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1 for inspection.
Results logged to /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1/ext/RMagick/gem_make.out

Не имеет значения, буду ли я устанавливать гем через Gemfile или через терминал, в обоих случаях я получаю одинаковую ошибку.

Это версия imagemagick: imagemagick-6.8.0-10.

Не могли бы вы дать мне несколько советов или заранее, где может быть проблема? Спасибо вам большое!

9 ответов

Решение

У rmagick есть проблема при работе с imagemagick (>= 6.8.0-10) из homebrew.

Вы также можете

Обновить rmagick жемчужина

    bundle update rmagick

или вручную связать символом какой-нибудь dylib, чтобы он работал:

    $ cd "`Magick-config --prefix`lib"
    $ ln -s libMagick++-Q16.7.dylib   libMagick++.dylib
    $ ln -s libMagickCore-Q16.7.dylib libMagickCore.dylib
    $ ln -s libMagickWand-Q16.7.dylib libMagickWand.dylib

После этого gem install rmagick должно сработать.

Проверьте обсуждение этого в homebrew / questions / 16625

Обновление: спасибо @faraz за хорошую однострочную команду:

cd "`Magick-config --prefix`/lib"; ln -s libMagick++-Q8.7.dylib libMagick++.dylib; ln -s libMagickCore-Q8.7.dylib libMagickCore.dylib; ln -s libMagickWand-Q8.7.dylib libMagickWand.dylib

Mac OSX Sierra & Rails 5

brew unlink imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

У меня такая же проблема.

Если вы проверите mkmf.log, вы увидите следующее сообщение об ошибке:

ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/* end */\

Вот как я это решил:

  1. Удалите текущую версию ImageMagick:

    brew uninstall imagemagick

  2. Переустановите imagemagick без поддержки openmp (это библиотека, отвечающая за lgomp):

    brew install imagemagick --disable-openmp

  3. Установите rmagick:

    gem install rmagick

Это оно!

Если вы используете homebrew, вам просто нужно установить PKG_CONFIG_PATH

brew install imagemagick
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick//6.8.9-1/lib/pkgconfig/ gem install rmagick

Это сработало для меня в Каталине:

brew uninstall imagemagick
brew install imagemagick@6
export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
brew link --force imagemagick@6
brew install pkg-config
gem install rmagick

По состоянию на 2017 год все предложенные выше решения, похоже, больше не работают, так как когда-либо Homebrew переключался на ImageMagick 7.0.

Некоторые обходные пути предоставлены здесь. https://github.com/rmagick/rmagick/issues/256

Я только что понизил до ImageMagick 6.9.7-3 и gem install rmagick работал нормально.

Попробуйте установить версию 6.7.7-6 для imagemagick, поскольку версия 6.8.x разбивает гем rmagick.

cd /usr/local
git checkout 7d951fb /usr/local/Library/Formula/imagemagick.rb
brew install imagemagick

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

sudo C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/include/ImageMagick-6/ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/lib/pkgconfig/ gem install rmagick

Убедитесь, что версия imagemagick верна, и вы должны быть готовы. Если у вас не установлена ​​программа imagemagick, выполните brew install imagemagick,


Пришлось опубликовать это, потому что у меня продолжают возникать проблемы с установкой этого драгоценного камня, и каждый раз я забываю, как это сделать.

После того, как вы установили imagemagick, вы можете попробовать

> gem pristine rmagick

Получил это из этой темы. Рельсы Rmagick самоцвет. Надеюсь, поможет.

Это исправление для High Sierra, Mojave и Catalina,

brew uninstall imagemagick
brew install imagemagick@6export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
brew link --force imagemagick@6
gem install rmagick

Источник: https://blog.francium.tech/installing-rmagick-on-osx-high-sierra-7ea71f57390d

В качестве альтернативы вы можете вернуться к более старой версии ImageMagick. В этой теме есть инструкции, как это сделать:

Теперь, чтобы попробовать и действительно быть полезным, я рекомендую вам извлечь одну из старых бутылок в ваш подвал, а затем сделать brew link imagemagick, если вы удалили старую версию.

Они доступны здесь: http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.snowleopard.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.lion.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.mountainlion.bottle.3.tar.gz/download

Другие вопросы по тегам