Установка RMagick: не удается найти MagickWand.ч


обновление RMagick и Imagemagick - это болезненный опыт. Я обновил версию Imagemagick на моем mac (MacOS El Capitan версии 10.11.5) с homebrew для одного проекта в Ruby 2.3 до 6.9.5-9

$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09

теперь более старый проект в Ruby 1.8.7 отказывается работать с сообщением об ошибке"эта установка RMagick была настроена с ImageMagick 6.8.9, но ImageMagick 6.9.5-9 используется". Таким образом, я удалил "rmagick", но это не может быть установлен снова

$ gem install rmagick -v 2.16.0
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no

Can't install RMagick 2.16.0. Can't find MagickWand.h. 

и если он не может быть установлен, все приложение не может быть запущен. Я попробовал все ответы отсюда, и ни один из них не работает на MacOS :-( я переустановил imagemagick и pkg-config с homebrew и попробовал различные версии RMagick без успеха. 2.16.0-это последняя версия RMagick.

MagicWand, похоже, используется в версии ImageMagick > 6.9, и его можно найти на машине:

find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h

find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc

Он не работает, даже если я указываю эти пути во время установки gem (та же ошибка, что и выше) : - (

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

обновление:

ошибка возникает только для Ruby 1.8.7, можно установить RMagick для Ruby 2.0 и Ruby 2.3. Руби 1.8.7 и ImageMagick 6.9.5, кажется, не быть совместимы.

  • Рубин 1.8.7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓
17 121

17 ответов:

В Mac OSX Sierra (и High Sierra), чтобы решить эту проблему, мне пришлось сделать следующее:

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

imagemagick@6 и keg-only, поэтому вам нужно будет принудительно связать.

у меня была такая же проблема с ImageMagick 7.0.4-4. Правильное исправление-установить imagemagick@6. Я нашел https://github.com/Homebrew/homebrew-core/pull/8756 полезно, если вы случайно удалили свой imagemagick@6 или никогда не было установлено на первом месте.

macOs Sierra:

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

многие вещи изменились в ImageMagick 7, как этот путь:include/.../wand и wand/MagickWand.h в данный момент встроен в rmagic gem. В моем случае не удалось обновить драгоценный камень, так как проект довольно старый. Поэтому я закончил установку более старой версии ImageMagic.

вы можете установить последнюю версию 6.х.х:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

вы также можете закрепить его для последующего применения: brew pin imagemagick

прежде всего разблокируйте установленный imagemagick, который не был правильно установлен в последней версии mac high sierra с помощью.

brew unlink imagemagick

затем установите последнюю версию imagemagic6, используя следующую команду

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

затем установите gem rmagick, используя следующую команду

gem install rmagick 

Он будет работать прекрасно.

что-то изменилось с ImageMagick 7.0.4-4 для меня. wand/MagickWand.h больше не удалось найти:

% brew unlink imagemagick && brew link imagemagick
Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed
Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created
% gem install rmagick
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

    /Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.rb extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.16.0. Can't find MagickWand.h.

у меня все еще был ImageMagick 6.9.7-3 в моей системе и изменился обратно с

% brew switch imagemagick 6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/6.9.6-6
Cleaning /usr/local/Cellar/imagemagick/6.9.7-0
Cleaning /usr/local/Cellar/imagemagick/6.9.7-1
Cleaning /usr/local/Cellar/imagemagick/6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/7.0.4-4
75 links created for /usr/local/Cellar/imagemagick/6.9.7-3

после этого я мог бы установить rmagick без проблем:

% gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed

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

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'

yah это решает мою проблему:

MacOS X Sierra:

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

$ brew uninstall pkg-config && brew install pkg-config
$ brew unlink pkg-config && brew link pkg-config

$ gem install rmagick

у меня еще нет репутации, чтобы оставить это как комментарий, улучшающий другой ответ, но ответ @Evgeniy28 работал для меня на Sierra только после установки pkg-config, который не устанавливается по умолчанию на новой машине Sierra.

Так:

brew install pkg-config
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

успех:

$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
Parsing documentation for rmagick-2.16.0
Installing ri documentation for rmagick-2.16.0
Done installing documentation for rmagick after 4 seconds
1 gem installed

вот как я решил (после многих попыток и неудач) на macOS High Sierra 10.13.3 с доморощенного:

  1. похоже, что RMagick 2.16.0 не совместим с новейшей версией ImageMagick (версия 7):http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Я удалил imagemagick:brew uninstall imagemagick
  3. затем я установил Imagemagick с этой формулой: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Если вы уже установили старую версию Imagemagick, это должно работать:https://stackoverflow.com/a/41674363

в версии 7.0.7-1 Вы можете создать символическую ссылку, но ее компиляция завершится неудачей.

cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagicCore/ magick

что-то было сильно неправильно в моей системе, так плохо, что это было полностью f*d вверх, но я был, наконец, в состоянии установить RMagick для Ruby 1.8.7 снова после установки

установка новой версии Ruby с RVM rvm install 1.8.7 также установлен новый компилятор GCC: он удалил старую версию GCC 4.6 и установлен GCC версии 4.9. По-видимому, GCC не смог найти правильные заголовки, несмотря на pkg-config.

Я полностью объясняю процесс установки в ImageMagick установить в centos .

в любом случае...
после установки установите Imagick & ImageMagick-devel & ImageMagick PHP library, как показано ниже:

# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick

перейти к /usr / include

cd /usr/include

важно: копировать папку с файлами из "в/usr/включать" на "/usr/местные/включать" для ImageMagick найти "отправки.h"

Я проверил это изменение на imagick-3.4.3(ImageMagick-7) и centos 6.5 и php56 и работает отлично ...

если вы уже установили " ImageMagick "несколько раз, сначала удалите их все и найдите папки" ImageMagick "и" imagick", очистите их и продолжите процесс установки с этим изменением.

используйте следующую команду, чтобы найти файл или папку:

find / -name 'ImageMagick*'
find / -name 'imagick*'

и продолжить установку
прежде чем ниже строк не забудьте: перейдите в раздел " php.ini "найти" disable_functions " и очистить "proc_open, popen, proc_close" потому что сделать imagick нуждается в этих функциях, после завершения установки вы можете добавить эти функции в свой "disable_functions" на " php.ini-файл.

# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config 
...

удачи...

для версии Ubuntu > 12 и не используя homebrew,

wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz

Если вы получаете файлы ' 7z 'вместо' tar.GZ ' файлы в ссылке wget, затем

7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib

затем вы можете возобновить свой пакет для RMagick.

нет необходимости связывать или отсоединять что-либо, следуя инструкциям из сценария установки brew:

brew install imagemagick@6
LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick

во-первых, вам не нужно удалять imagemagick, если он имеет 6.X установлен, как показано ниже. Вы можете видеть, что текущий "main" является 7.0.7-8 но 6.9.1-10 до сих пор нет.

$ brew info imagemagick                                                            
imagemagick: stable 7.0.7-8 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
/usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB)
  Poured from bottle on 2015-07-26 at 09:10:58
/usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB)
  Poured from bottle on 2017-08-21 at 14:44:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula

если у вас нет старого 6.x версия,затем установить imagemagick@6.

второе, не заставляйте ссылке imagemagick, особенно не 6. изменить: см. 1
Вам нужно установить PKG_CONFIG_PATH в дополнение к --with-opt-* флаги.

это работает для меня на High Sierra с вышеупомянутой настройкой brew на Ruby 1.9.3-p551:

PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig  \
  gem install rmagick -v '2.16.0' -- \
  --with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ \
  --with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/

построение ri docs терпит неудачу, но это несущественно.

1: строительные работы, путь dylib rmagick ищет неправильно, хотя. Поднял выпуск #278 уточнить, если это может быть исправлено. В противном случае ручного ссылка на libMagickWand и т. д. Необходимо. По-прежнему может быть безопаснее вручную связать определенные библиотеки, чем brew link --force хотя.