Я склав ImageMagick на своєму CentOS, і RMagick не встановлюватиметься


16

Я встановив ImageMagick через, (використовуючи ImageMagick 6.7.3-7)

./configure --prefix=/usr && make && make install

Коли я намагаюся

gem install imagemagick

я отримав

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

/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... 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
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
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
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
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** 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
    --without-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=/usr/bin/ruby

Це незважаючи на те, що MagickWand.h вже є в системі /usr/include/ImageMagick/wand/MagickWand.h. Отже, питання полягає в тому, як мені насправді змусити компілятор заглянути там?

Відповіді:


26

Була така ж проблема у CentOS, використовуючи найновіше все (станом на грудень 2011 року), і виправляв це за допомогою:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

у моєму .bashrc-файлі, щоб забрати MagickCore.pc, потім створили два посилання:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick

І вуаля, знайдено MagickWand.h, MagickCore.pc було підібрано ... дорогоцінний камінь встановлений успішно.

Я думаю, що іншим рішенням буде змінити параметри налаштування, встановлені під час встановлення ImageMagick, але мені недостатньо системного адміністратора, щоб зрозуміти, який правильний варіант та місце розташування для цих файлів. Через 45 хвилин навколо, вдаючись до допомоги я не міг зрозуміти , де ці файли передбачаються жити, автоматично підібраний каменем установки системи гриму.

Ура!

РЕДАКТ: 2014-10-01

Щойно робив це знову для CentOS 7, і lnкоманди вище не потрібні. Однак я зіткнувся з проблемою, де я отримав "Пакет MagickCore не знайдено в шляху пошуку pkg-config". на біг sudo gem install rmagick.

Проблемою було скидання середовища в / etc / sudoers. Після запуску sudo visudoдля редагування файлу sudoers я додав Defaults env_keep += "PKG_CONFIG_PATH"у відповідний розділ, оновив захищений шлях до включення / usr / local / bin, а потім встановлення працювало як шарм.


У мене була та сама проблема з RedHat 6, і ваше рішення працювало на мене. Дякую купу!
Callmeed

Дивовижно, це навіть спрацювало як шарм у гірського лева! Мені потрібно запустити всі твердження вище, щоб встановити gmagick gem.
Хендра Узія

Спробував це і отримав "/ usr / local / bin / Magick-config: рядок 41: pkg-config: команда не знайдена / usr / local / bin / Magick-config: рядок 47: pkg-config: команда не знайдена / usr / local / bin / Magick-config: рядок 50: pkg-config: команда не знайдена / usr / local / bin / Magick-config: рядок 53: pkg-config: команда не знайдена "
Jonny

13

ImageMagick зазвичай ставить MagickCore тут:

/usr/local/lib/pkgconfig/MagickCore.pc

Якщо вашої немає, ви можете знайти її так:

find / -name MagickCore.pc

Тепер ви знаєте свій pkgconfig шлях:

/usr/local/lib/pkgconfig

Встановіть середовище, коли встановлюєте дорогоцінний камінь:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

Спасибі! Працював для мене на зображенні Bitnami Ubuntu 12.04 ..
JD

Спасибі! подібне працювало тут: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux

7

Для CentOS я вирішив цю проблему, встановивши пакет "ImageMagick-devel":

yum install ImageMagick-devel


1
це найкраща відповідь :)
kovpack

2

Ключ знаходиться у вихідному конфігурації, де написано "перевірка wand / MagickWand.h" - очевидно, що каталог ImageMagick не очікується в / usr / include, а це означає, що вам потрібно або перемістити вміст цього каталогу на рівень, або ви потрібно інсталювати ImageMagick по-іншому. Введення матеріалів безпосередньо в / usr, як правило, погана ідея для нічого, що не передбачено самою системою - якщо ви розділите всі речі, які ви додали в / usr / local, а залишите / usr значною мірою в спокої, ви знайдете систему набагато простіше для адміністрування, оскільки ви зможете (довго після того, як ви забули про це) з'ясувати, що ви додали проти того, що поставлено із системою.


Гарна порада, хоча ви досі не відповіли на питання, як можна змусити компілятор шукати в певних каталогах файлу заголовка.
Кен Лі

3
Ну а виклики компілятора відбуваються за допомогою команди gem (ви змушуєте компілятора шукати в альтернативних місцях із прапорцем -I, але цей користувач не використовує компілятор безпосередньо) і найкраще налаштовувати речі за допомогою команди configure що добро відбувається, не змінюючи нічого іншого. Використання змінної PKG_CONFIG_PATH env, яка конфігурує, постійно проглядає, може зробити трюк, якщо є файл MagickCore.pc. "find / usr -name MagickCore.pc", а потім подивіться, чи існує, а потім додайте dir it in "setenv PKG_CONFIG_PATH / path / to / where / find / found / it"
jkh

Я оновив PKG_CONFIG_PATH до /Dir/to/where/found/MagickCore.pc і досі закінчується "Не можу встановити RMagick 2.13.1. Не можу знайти MagickWand.h". і що ще я можу спробувати .. Не знаєте, як використовувати параметр -l?
p101

Хмммм! Це мало би спрацювати. Питання: Якщо ви вводите ./configure --help, чи перераховано параметри налаштування для ImageMagick конкретно? Якщо так, то, можливо, ви зможете вказати безпосередньо на каталог ImageMagick в / usr / local з скрипту налаштування.
jkh

Thnx jkh .. Цікаво, що я не знайшов конфігурацію в rmagick, тому, напевно, ви маєте на увазі imagemagick. Я створив тут нове запитання stackoverflow.com/questions/9561386/rmagick-installation . Будемо вдячні, якщо можете поглянути. Спасибі!
p101


1

Можливо, ви встановлюєте ImageMagick версії 7.xx, яка генеруватиме різні назви папок у вашій usr/lib/local/include/ImageMagick7.x.xпапці. Напр

У ImageMagick6.xx версії ми magick, по wandімені папки, де в ImageMagick7.xx версії назвала це MagickCore, MagickWand. Таким чином, це оновлення спричиняє проблеми в деяких установках дорогоцінних каменів, як тут. Що використовує magick/some_header.hабо wand/some_header.h(Означає, що вони не оновлюються новою версією 7.xx ImageMagick). Ось чому ми отримуємо цю помилку:

`` `

checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
 .... 
checking for wand/MagickWand.h... no

`` `

і у файлі журналу щось подібне:

error: 'MagickCore/method-attribute.h' file not found
#include "MagickCore/method-attribute.h"
         ^

Рішення

Встановіть версію ImageMagick6.xx у вашу систему з офіційного сайту: https://www.imagemagick.org/download/ та встановіть її за допомогою цих команд (після витягу zip / tar):

./configure
make 
make install

Тоді робіть

gem install rmagick

Це спрацює.


Мені довелося запустити sudo ldconfig /usr/local/libпісляsudo make install
сек'єло

0
        1) install by installer

http://cactuslab.com/imagemagick/

2) спробуйте встановити gem rmagick

якщо перевірка палички / MagickWand.h ... немає
типу

mdfind MagickWand.h

знайти щось подібне

/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/wand/MagickWand.h

і введіть термінал

C_INCLUDE_PATH=/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/ gem install rmagick

якщо після цього у вас є ця помилка (тому що вона мала) "Пакет MagickCore не знайдено в шляху пошуку pkg-config".

тип

mdfind MagickCore.pc

знайти щось таке, як /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

і нарешті в термінальному типі:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick

1
Команда mdfind- це лише команда MacOSX, вона не існує в версіях Linux.
slm

як сказав @slm, будь ласка, перепишіть свою відповідь, щоб це допомогло QA.
Лоренцо Фон Маттерхорн

0

Я встановлював Redmine під гірським левом Mac OS X ...

Не вдалося встановити програму rmagick ...

Після безлічі проблем він працював, встановлюючи "homebrew", але НЕ встановлюючи rmagick через homebrew. Натомість я встановив "pkg-config" через домашню мову, тому що rmagick скаржився на це.

Команди:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew install pkg-config
sudo gem install rmagick

Потім Redmine продовжив установку без проблем.



0

Перш ніж встановлювати rmagic, слід встановити образ у вашій системі, установка imagick залежить від вашої операційної системи, тоді вам доведеться встановити деякі бібліотеки, які внутрішньо підтримують рубін для об'єднання бібліотек обробки зображень у вашій системі. Для встановлення цих бібліотек використовуйте таку команду Для Linux: sudo apt-get install libmagickwand-dev imagemagick For Centos: yum install libmagickwand-dev imagemagick

тоді вам доведеться встановити gem rmagick з наступною командою: gem install rmagick Це працює для мене, і я встановив rmagick успішно ...


0

Найближчий до відповіді на @ Irongaze.com! У своєму Arch Linux я створив ці два символічні посилання:

$ sudo ln -s /usr/include/ImageMagick-6/wand /usr/include/wand
$ sudo ln -s /usr/include/ImageMagick-6/magick /usr/include/magick

Потім запускається bundleзнову і rmagickбув виправлений встановлений.

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