Kompilowałem ImageMagick na moim CentOS, a RMagick nie chce się zainstalować

16

Zainstalowałem ImageMagick poprzez ((ImageMagick 6.7.3-7)

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

Kiedy próbuję

gem install imagemagick

dostaję

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

Dzieje się tak pomimo faktu, że MagickWand.h jest już w systemie w /usr/include/ImageMagick/wand/MagickWand.h. Pytanie brzmi: w jaki sposób faktycznie mogę tam znaleźć kompilator?

Ken Li
źródło

Odpowiedzi:

26

Miałem ten sam problem na CentOS przy użyciu najnowszej wersji (stan na grudzień 2011 r.) I naprawiłem:

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

w moim pliku .bashrc, aby pobrać MagickCore.pc, a następnie utworzyłem dwa dowiązania symboliczne:

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

I voila, MagickWand.h został znaleziony, MagickCore.pc został pobrany ... klejnot został zainstalowany poprawnie.

Wyobrażam sobie, że innym rozwiązaniem byłoby zmodyfikowanie opcji konfiguracji ustawionych podczas instalacji ImageMagick, ale nie jestem wystarczającym sysadminem, aby wyjaśnić, jaka byłaby właściwa opcja i lokalizacja dla tych plików. Po 45 minutach przeglądania Google nie mogłem domyślić się, gdzie te pliki powinny mieszkać, aby zostać automatycznie odebranym przez system gem install make.

Twoje zdrowie!

EDYCJA: 01.10.2014

Zrobiłem to ponownie dla CentOS 7, a lnpowyższe polecenia nie były potrzebne. Jednak natknąłem się na problem polegający na tym, że „Nie znaleziono pakietu MagickCore w ścieżce wyszukiwania pkg-config”. w biegu sudo gem install rmagick.

Problem polegał na zresetowaniu środowiska w / etc / sudoers. Po uruchomieniu sudo visudoedycji pliku sudoers, dodałem Defaults env_keep += "PKG_CONFIG_PATH"do odpowiedniej sekcji, zaktualizowałem bezpieczną ścieżkę do włączenia / usr / local / bin, a następnie instalacja działała jak urok.

Irongaze.com
źródło
Miałem ten sam problem na RedHat 6 i twoje rozwiązanie zadziałało dla mnie. Wielkie dzięki!
Callmeed,
Wspaniale, działało to nawet jak urok w lwie górskim! Muszę uruchomić całą powyższą instrukcję, aby zainstalować klejnot rmagick.
Hendra Uzia,
Próbowałem tego i dostałem "/ usr / local / bin / Magick-config: linia 41: pkg-config: nie znaleziono polecenia / usr / local / bin / Magick-config: linia 47: pkg-config: nie znaleziono polecenia / usr / local / bin / Magick-config: linia 50: pkg-config: nie znaleziono polecenia / usr / local / bin / Magick-config: linia 53: pkg-config: polecenie nie znaleziono "
Jonny
13

ImageMagick zazwyczaj umieszcza MagickCore tutaj:

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

Jeśli twojego tam nie ma, możesz to znaleźć w następujący sposób:

find / -name MagickCore.pc

Znasz już swoją ścieżkę pkgconfig:

/usr/local/lib/pkgconfig

Ustaw środowisko podczas instalowania klejnotu:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
joelparkerhenderson
źródło
Dzięki! Pracowałem dla mnie na obrazie Bitnami Ubuntu 12.04 ..
JD
Dzięki! podobne tutaj działało: znajdź / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux
7

W przypadku CentOS rozwiązałem ten problem, instalując pakiet „ImageMagick-devel”:

yum install ImageMagick-devel

Munish
źródło
1
to najlepsza odpowiedź :)
kovpack
2

Klucz znajduje się w wyjściu konfiguracyjnym, gdzie jest napisane „sprawdzanie różdżki / MagickWand.h” - najwyraźniej katalog / ImageMagick nie jest oczekiwany w / usr / include, co oznacza, że ​​musisz przenieść zawartość tego katalogu na wyższy poziom lub trzeba zainstalować sam ImageMagick inaczej. Umieszczanie rzeczy bezpośrednio w / usr jest ogólnie złym pomysłem na wszystko, czego nie zapewnia sam system - jeśli posegregujesz wszystkie rzeczy, które dodajesz w / usr / local i pozostawisz / usr w dużej mierze w spokoju, znajdziesz system o wiele łatwiejszy do administrowania, ponieważ będziesz w stanie (długo po tym, jak o tym zapomnisz) dowiedzieć się, co dodałeś a co przyszło z systemem.

jkh
źródło
Dobra rada, chociaż nadal nie odpowiedziałeś na pytanie, w jaki sposób możesz zmusić kompilator do wyszukiwania w niektórych katalogach pliku nagłówka.
Ken Li
3
Cóż, wszystkie wywołania kompilatora odbywają się za pomocą polecenia gem (wymuszasz na kompilatorze wyszukiwanie w alternatywnych lokalizacjach za pomocą flagi -I, ale ten użytkownik nie używa bezpośrednio kompilatora) i najlepiej jest skonfigurować ustawienia za pomocą polecenia configure, takiego jak ta dobroć występuje bez konieczności zmiany czegokolwiek innego. Używanie zmiennej env PKG_CONFIG_PATH, która się konfiguruje, wciąż piszczy, może załatwić sprawę, jeśli jest dostępny plik MagickCore.pc. „find / usr -name MagickCore.pc”, a następnie sprawdź, czy istnieje, a następnie dodaj katalog, w którym się znajduje, za pomocą „setenv PKG_CONFIG_PATH / path / to / where / find / found / it”
jkh
Zaktualizowałem PKG_CONFIG_PATH do /Dir/to/where/found/MagickCore.pc i nadal otrzymuję komunikat „Nie mogę zainstalować RMagick 2.13.1. Nie mogę znaleźć MagickWand.h” .. Wszelkie sugestie, dlaczego nie można go pobrać i co jeszcze mogę spróbować .. Nie wiesz, jak użyć opcji -l?
p101
Hmmmm! To powinno było zadziałać. Pytanie: Jeśli wpiszesz ./configure --help, czy wyświetli się lista opcji konfiguracji dla ImageMagick? Jeśli tak, możesz wskazać bezpośrednio katalog ImageMagick w katalogu / usr / local ze skryptu konfiguracyjnego.
jkh
Thnx jkh .. Co ciekawe nie znalazłem konfiguracji w rmagick, więc prawdopodobnie masz na myśli imagemagick. Utworzyłem nowe pytanie tutaj stackoverflow.com/questions/9561386/rmagick-installation . Byłbym wdzięczny, jeśli możesz rzucić okiem. Dzięki!
p101
1

Być może instalujesz ImageMagick w wersji 7.xx, która wygeneruje różne nazwy folderów w twoim usr/lib/local/include/ImageMagick7.x.xfolderze. Na przykład

W wersji ImageMagick6.xx mamy magick, wandnazwane foldery, gdzie w wersji ImageMagick7.xx zostały nazwane to MagickCore, MagickWand. Ta aktualizacja powoduje problem w niektórych instalacjach klejnotów, takich jak tutaj. Który używa magick/some_header.hlub wand/some_header.h(oznacza, że ​​nie są aktualizowane o nową wersję 7.xx ImageMagick). Dlatego otrzymujemy ten błąd:

``

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

``

oraz w pliku dziennika coś takiego:

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

Rozwiązanie

Zainstaluj wersję ImageMagick6.xx w swoim systemie z oficjalnej strony: https://www.imagemagick.org/download/ i zainstaluj ją za pomocą tych poleceń (po rozpakowaniu zip / tar):

./configure
make 
make install

Więc zrób

gem install rmagick

To będzie działać.

Shekhar Prasad Rajak
źródło
Musiałem uruchomić sudo ldconfig /usr/local/libaftersudo make install
sequielo
0
        1) install by installer

http://cactuslab.com/imagemagick/

2) spróbuj zainstalować gem rmagick

jeśli sprawdzanie różdżki / MagickWand.h ... bez
typu

mdfind MagickWand.h

znaleźć coś takiego

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

i wpisz terminal

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

jeśli po tym wystąpił błąd (ponieważ miał go) „Pakiet MagickCore nie został znaleziony w ścieżce wyszukiwania pkg-config”.

rodzaj

mdfind MagickCore.pc

znaleźć coś takiego jak /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

i wreszcie w typie terminala:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick
Andrzej
źródło
1
Ta komenda mdfindjest tylko komendą MacOSX, nie istnieje w wersjach Linuksa.
slm
jak powiedział @slm, proszę ponownie napisać odpowiedź, aby pomóc w kontroli jakości.
Lorenzo Von Matterhorn
0

Instalowałem Redmine pod lwem górskim Mac OS X ...

Instalator nie działa na rmagick ...

Po wielu problemach działało, instalując „homebrew”, ale NIE instalując rmagick przez homebrew. Zamiast tego zainstalowałem „pkg-config” przez homebrew, ponieważ rmagick narzekał na to.

Polecenia:

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

Następnie Redmine kontynuowało instalację bez żadnych problemów.

Jonny
źródło
0

Przed zainstalowaniem rmagic powinieneś zainstalować imagic w swoim systemie, instalacja imagick różni się w zależności od systemu operacyjnego. Następnie musisz zainstalować biblioteki, które wewnętrznie obsługują ruby ​​do łączenia bibliotek przetwarzania obrazu w twoim systemie. Aby zainstalować te biblioteki, użyj następującego polecenia dla systemu Linux: sudo apt-get install libmagickwand-dev imagemagick Dla Centos: yum zainstaluj libmagickwand-dev imagemagick

następnie musisz zainstalować gem rmagick za pomocą następującego polecenia: gem install rmagick To działa dla mnie i zainstalowałem rmagick z powodzeniem ...

Amardeep Jadhav
źródło
0

Odpowiedź najbliższa @ Irongaze.com! W moim Arch Linux stworzyłem te dwa dowiązania symboliczne:

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

Następnie uruchamia się bundleponownie i rmagickzostał zainstalowany poprawnie.

Fernando Kosh
źródło