Встановлення RMagick: Не вдається знайти MagickWand.h


164

Оновлення RMagick і Imagemagick - це болісний досвід. Я оновив версію Imagemagick на своєму mac (MacOS El Capitan Version 10.11.5) з домашньою мовою для одного проекту в 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 з домашньою мовою, і без успіху спробував різні версії 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

Це не працює, навіть якщо я вказую ці шляхи під час встановлення дорогоцінного каменю (така ж помилка, як і вище) :-(

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. Ruby 1.8.7 та ImageMagick 6.9.5 не здаються сумісними.

  • Рубін 1,8,7 х
  • Ruby 2.0.0 ✓
  • Рубін 2.3.1 ✓


Що це, гра про Гаррі Поттера?
Обмежене спокутування

@LimitedAtonement, мабуть, так :-)
0x4a6f4672

Відповіді:


461

Щоб вирішити проблему в Mac OSX Sierra, High Sierra, El Capitan, Mojave і Catalina , ви можете зробити наступне:

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

imagemagick@6є keg-only, тому вам потрібно буде примусово зв’язати.


7
Довелося від’єднати вручну brew unlink imagemagickперед посиланням - але воно працювало. Дуже дякую.
Haris Krajina

2
Ого. Супер гарно, що я не можу мати останню версію ImageMagick, але це працює. Дякую!
Fomentia

1
Чудово працює з Ubuntu Ubuntu 16.04.3 LTS
насильниця

55

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


ОЦЕ ТАК! Дякую вам за це посилання. Я витрачав майже на половину свого робочого дня, намагаючись це виправити.
kalehv

14
Зауважте, що imagemagick @ 6 - це лише кег, тому вам потрібно буде примусово зв’язувати. brew install imagemagick@6 && brew link imagemagick@6 --forceвирішив це для мене
Даррен Ченг

1
Дивовижно, ура! Це працювало для мене:brew install --force imagemagick@6 && brew link imagemagick@6 --force
Белла,

1
Так, встановлення попередньої версії (6x) напевно це виправить. Проблема полягає в тому, що структура папок файлів imagemagick змінилася у 7x версії. І під час встановлення дорогоцінного каміння передбачається, що структура папки 6x має
Пракаш Раман,

Відкат до Imagemagick @ 6, на жаль, не працює для мене. Навіть після перевстановлення та повторного посилання я все одно отримую це повідомлення при спробі встановити rmagick: Using 6.9.8 Q16 from /usr/local/Cellar/imagemagick@6/6.9.8-3. checking for outdated ImageMagick version (<= 6.4.9)... yes 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.15.0. Can't find MagickWand.h.
Чи буде Хічкок

32

macOs Сьєрра:

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

1
-1 тому що ви змушуєте посилатися без причини і нікому не повідомляєте, чому це погана ідея для початку. Дивіться мою відповідь про те, щоб зробити це "належним чином" у значенні Homebrew, а не MacPorts.
mmlac

21

Перш за все, відключіть встановлений Imagemagick, який не був належним чином встановлений в останній mac high sierra, використовуючи.

brew unlink imagemagick

потім встановіть найновіший imagemagic6 за допомогою команди нижче

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

Потім встановіть gem rmagick за допомогою команди нижче

gem install rmagick 

Це буде прекрасно працювати.


16

Так, це вирішує мою проблему:

MacOS X Sierra:

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

14

У ImageMagick 7 багато речей змінилися, як цей шлях:, include/.../wand іwand/MagickWand.h замонолічно в rmagic дорогоцінного каменю в даний момент. У моєму випадку не вдалося оновити дорогоцінний камінь, оскільки проект досить старий. Тож я закінчив встановити старішу версію ImageMagic.

Ви можете встановити останню версію з 6.xx:

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

Ви також можете закріпити його для подальшого використання: brew pin imagemagick


1
Для мене працювали: Mac OS 10.12.X. Я встановив ImageMagick 7 першим і виникли проблеми з установкою рейки gem rmagick.
Саймон Францен

11

Щось змінилося з 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

Чи можете ви знайти якісь рішення? У мене виникають ті ж проблеми з вами.
Кемаль Аккоюн

як я сказав. перемикання назад на imagemagick 6.9 виправляє це для мене.
Хольгер Фрохлофф

1
Дякую, я це зрозумів і виправив, згідно з вашою пропозицією. Але що я намагався запитати, чи вирішили ви це за допомогою останньої версії ImageMagick? Тоді я знайшов відповідну проблему github.com/rmagick/rmagick/isissue/256, яка також пропонує зменшити ImageMagick, як і раніше. Тож ще раз дякую.
Кемаль Аккоюн

Ласкаво просимо. Я ще не вирішив проблему, використовуючи версію 7.x. Я думаю, що це буде виправлення досить скоро. Побачимо. :)
Holger Frohloff

6

RMagick залежить від застарілої версії imagemagick, версія 6. (див. Нижче). Homebrew пропонує це як пакет, доступний лише для кег, який ви можете встановити за допомогою:

brew install imagemagick@6

Вихід збірки буде включати розділ Caveats (також доступний, brew info imagemagick@6якщо ви очистили вихід):

==> Caveats
imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have imagemagick@6 first in your PATH run:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc

For compilers to find imagemagick@6 you may need to set:
  export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
  export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"

For pkg-config to find imagemagick@6 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"

Замість того, щоб прив'язувати форсифікацію, яка може створювати проблеми з іншим програмним забезпеченням, яке підтримує новіші версії Imagemagick, ви можете використовувати запропоновані exports, щоб змусити RMagick дорогоцінний камінь забрати стару версію під час її створення:

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

  1. Ідіть, допоможіть зробити внесок у оновлення, якщо ви знаєте Ruby та C!

5
$ 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

дякую за поради та пропозиції, на жаль, це не допомогло :-(
0x4a6f4672

1
Ця відповідь була єдиною згаданою, pkg-configі вона спрацювала.
Джейсон Кім

pkg-config - запорука успіху. Дуже дякую.
Майкл Йоганн

5

У мене ще немає репутації залишати це як коментар, покращуючи іншу відповідь, але @ 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

Працював для мене, Сьєрра 10.12.6
Іван Данчі

5

Дотримуйтесь нижче та змініть частину відповідно до ваших потреб.

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'

4

Встановіть Imagemagick версії 6, оскільки версія 7 не сумісна:

$ brew install imagemagick@6

Не слід посилатись - примушуйте старішу версію, тому що це змінить бінарні файли на вашому шляху і добро brew doctorбуде скаржитися.

Зверніться до заголовків і бібліотек з версії 6, встановленої під час створення нативного розширення дорогоцінного каменю:

$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'

Примітка. Для мене працювали без вказівки lib та включаючи папку, оскільки pkgconfig відповідає за це.

Примітка: 6.9.10-14 - це остання версія Imagemagick @ 6, але сміливо міняйте її, якщо вам потрібно використовувати іншу версію


3

Ось як я вирішив (після безлічі спроб і помилок ) на macOS High Sierra 10.13.3 за допомогою Homebrew:

  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


2

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

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

2

Не потрібно нічого зв’язувати чи від’єднувати, дотримуючись інструкцій із сценарію встановлення заварки, це допомагає:

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

1

Отримала таку ж помилку для альпійської збірки 3.9. Він поставляється з ImageMagick 7.0.8.38-r0

Щоб вирішити, що ви використовуєте alpine 3.5 з ImageMagick 6.9.6.8-r1 :

FROM alpine:3.5

Або встановіть ImageMagick 6.9.6.8-r1 з сховищем пакетів для 3.5:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/

У rmagick repo відкрито питання щодо невдалих збірок для ImageMagick 7.0.x. тому, сподіваємось, це скоро буде виправлено.


0

Щось було сильно не так у моїй системі, так погано, що це було повністю f * d вгору, але я, нарешті, змогла знову встановити RMagick для Ruby 1.8.7 після встановлення

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


0

Я повністю пояснюю процес інсталяції в ImageMagick, встановленому в центсах .

все одно ...
після встановлення Install Imagick & ImageMagick-devel & ImageMagick PHP-бібліотеки, як показано нижче:

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

перейти до / usr / включити

cd /usr/include

Важливо: скопіюйте папку ImageMagick з "/ usr / include" в "/ usr / local / include", щоб ImageMagick знайшов "MagickWand.h"

Я перевірив цю зміну на imagick-3.4.3 (ImageMagick-7) та centos 6.5 та php56 і прекрасно працює ...

Якщо ви вже встановили "ImageMagick" кілька разів, спочатку видаліть їх і знайдіть папки "ImageMagick" та "imagick" та очистіть їх і продовжуйте процес встановлення з цією зміною.

Використовуйте таку команду, щоб знайти файл або папку:

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

і продовжуйте установку,
перш ніж рядки не забудьте: перейдіть до "php.ini", знайдіть "відключити_функції" та очистіть "proc_open, popen, proc_close", тому що Imagick потребує цих функцій, після завершення установки ви можете додати ці функції до своїх " відключити функції "у файлі" php.ini ".

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

Удачі...


0

У версії Ubuntu> 12 та не використовується домашня мова,

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.


-1

По-перше, вам не потрібно видаляти Imagemagick, якщо на ньому встановлено 6.x, як показано нижче. Ви можете бачити, що поточний "головний" є, 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.

По-друге, не змушуйте зображати посилання на зв'язок , особливо не 6. EDIT: Див. ¹
зображати малюнок Вам потрібно встановити PKG_CONFIG_PATH на додаток до прапорців --w-opt-*.

Це працює для мене на High Sierra із вищезазначеною установкою заварки на 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/

Побудувати рі документи не вдасться, але вони не мають наслідків.

¹: Будівельні роботи, але шлях дилібу, який RMagick шукає, невірний. Піднято випуск № 278, щоб уточнити, чи можна це виправити. В іншому випадку необхідно вручну позначити libMagickWand тощо. Все ж може бути безпечніше зв’язувати певні бібліотеки вручну, ніж brew link --forceвсе-таки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.