Ho compilato ImageMagick sul mio CentOS e RMagick non si installa


16

Ho installato ImageMagick tramite (utilizzando ImageMagick 6.7.3-7)

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

Quando provo a farlo

gem install imagemagick

ottengo

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

Questo nonostante il fatto che MagickWand.h sia già nel sistema /usr/include/ImageMagick/wand/MagickWand.h. Quindi la domanda è: come posso effettivamente ottenere il compilatore per guardare lì?

Risposte:


26

Ha avuto lo stesso problema su CentOS utilizzando tutto più recente (a partire da dicembre 2011) e risolto con:

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

nel mio file .bashrc per prelevare MagickCore.pc, quindi ho creato due symlink:

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

E voilà, è stata trovata la MagickWand.h, è stata prelevata la MagickCore.pc ... gemma installata con successo.

Immagino che un'altra soluzione sarebbe quella di modificare le opzioni di configurazione impostate durante l'installazione di ImageMagick, ma non sono abbastanza un amministratore di sistema per essere chiaro quale sia la giusta opzione e posizione per questi file. Dopo 45 minuti di googling in giro, non riuscivo a capire dove questi file sono suppone di vivere, di essere raccolti automaticamente dalla gemma installare il sistema make.

Saluti!

EDIT: 2014-10-01

L'ho fatto di nuovo per CentOS 7 e i lncomandi precedenti non erano necessari. Tuttavia, ho riscontrato un problema a causa del quale "Il pacchetto MagickCore non è stato trovato nel percorso di ricerca di pkg-config". sulla corsa sudo gem install rmagick.

Il problema era il ripristino dell'ambiente in / etc / sudoers. Dopo l'esecuzione sudo visudoper modificare il file sudoers, ho aggiunto Defaults env_keep += "PKG_CONFIG_PATH"l'apposita sezione, aggiornato il percorso sicuro per includere / usr / local / bin e quindi l'installazione ha funzionato come un incantesimo.


Avevo lo stesso problema su RedHat 6 e la tua soluzione ha funzionato per me. Grazie mille!
Callmeed

Fantastico, ha funzionato persino come un fascino nel leone di montagna! Devo eseguire tutte le istruzioni sopra riportate per installare rmagick gem.
Hendra Uzia,

Ho provato questo e ho ottenuto "/ usr / local / bin / Magick-config: linea 41: pkg-config: comando non trovato / usr / local / bin / Magick-config: linea 47: pkg-config: comando non trovato / usr / local / bin / Magick-config: linea 50: pkg-config: comando non trovato / usr / local / bin / Magick-config: linea 53: pkg-config: comando non trovato "
Jonny,

13

ImageMagick inserisce generalmente MagickCore qui:

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

Se il tuo non è lì, puoi trovarlo in questo modo:

find / -name MagickCore.pc

Ora conosci il tuo percorso pkgconfig:

/usr/local/lib/pkgconfig

Imposta l'ambiente quando installi la gemma:

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

Grazie! Ha funzionato per me su un'immagine Bitnami Ubuntu 12.04 ..
JD

Grazie! simile qui ha funzionato: trova / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux

7

Per CentOS, ho risolto questo problema installando il pacchetto "ImageMagick-devel":

yum install ImageMagick-devel


1
questa è la risposta migliore :)
kovpack

2

La chiave si trova nell'output di configurazione in cui si dice "controllo per bacchetta / MagickWand.h" - chiaramente la directory ImageMagick non è prevista in / usr / include, il che significa che è necessario spostare il contenuto di quella directory di livello superiore o è necessario installare ImageMagick stesso in modo diverso. Inserire cose direttamente in / usr è generalmente una cattiva idea per tutto ciò che non è fornito dal sistema stesso - se segreghi tutte le cose che aggiungi in / usr / local e lasci / usr in gran parte da solo, troverai il sistema molto più semplice anche da amministrare poiché sarai in grado (molto tempo dopo aver dimenticato questo) di capire cosa hai aggiunto e cosa è venuto con il sistema.


Un buon consiglio, anche se non hai ancora risposto alla domanda su come forzare il compilatore a cercare in alcune directory il file di intestazione.
Ken Li,

3
Bene, le invocazioni del compilatore stanno avvenendo attraverso il comando gem (forzate il compilatore a guardare in posizioni alternative con il flag -I, ma questo utente non sta usando il compilatore direttamente) ed è meglio impostare le cose con il comando configure tale quella bontà si verifica senza dover alterare nient'altro. L'utilizzo della variabile env PKG_CONFIG_PATH che configura continua a scricchiolare può fare il trucco se è disponibile un file MagickCore.pc. "find / usr -name MagickCore.pc" e poi vedi se esiste, quindi aggiungi la directory in cui si trova con "setenv PKG_CONFIG_PATH / path / to / where / find / found / it"
jkh

Ho aggiornato PKG_CONFIG_PATH a /Dir/to/where/found/MagickCore.pc e alla fine continuo con "Impossibile installare RMagick 2.13.1. Impossibile trovare MagickWand.h" .. eventuali suggerimenti sul perché potrebbe non essere raccolto e cos'altro posso provare .. Non sei sicuro di come utilizzare l'opzione -l?
p101,

Hmmmm! Avrebbe dovuto funzionare. Domanda: se si digita ./configure --help, vengono elencate le opzioni di configurazione specifiche per ImageMagick? In tal caso, potresti essere in grado di puntare direttamente alla directory ImageMagick in / usr / local dallo script di configurazione.
jkh

Thnx jkh .. È interessante notare che non ho trovato configurazione in rmagick, quindi probabilmente intendi imagemagick. Ho creato una nuova domanda qui stackoverflow.com/questions/9561386/rmagick-installation . Gradirei se puoi dare un'occhiata. Grazie!
p101,


1

Forse stai installando ImageMagick versione 7.xx che genererà nomi di cartelle diversi nella tua usr/lib/local/include/ImageMagick7.x.xcartella. Per esempio

Nella versione ImageMagick6.xx abbiamo magick, wandcartelle, in cui nella versione ImageMagick7.xx chiamato questo nome MagickCore, MagickWand. Quindi questo aggiornamento sta causando il problema in alcune installazioni gemme come qui. Che sta usando magick/some_header.ho wand/some_header.h(Significa che non sono aggiornati con la nuova versione 7.xx ImageMagick). Ecco perché stiamo ottenendo questo errore:

`` `

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

`` `

e nel file di registro qualcosa del genere:

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

Soluzione

Installa la versione di ImageMagick6.xx sul tuo sistema dal sito ufficiale: https://www.imagemagick.org/download/ e installala usando questi comandi (dopo aver estratto zip / tar):

./configure
make 
make install

Quindi fa

gem install rmagick

Funzionerà.


Ho dovuto eseguire un sudo ldconfig /usr/local/libdoposudo make install
sequielo il

0
        1) install by installer

http://cactuslab.com/imagemagick/

2) prova gem install rmagick

se verifica la bacchetta / MagickWand.h ... nessun
tipo

mdfind MagickWand.h

trova qualcosa del genere

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

e digitare il terminale

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

se, in seguito, si verifica questo errore (a causa del problema) "Pacchetto MagickCore non trovato nel percorso di ricerca pkg-config."

genere

mdfind MagickCore.pc

trova qualcosa come /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

e infine nel tipo di terminale:

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

1
Il comando mdfindè un comando solo per MacOSX, non esiste sulle varianti di Linux.
slm,

come ha detto @slm, si prega di riscrivere la risposta in modo da aiutare il QA.
Lorenzo Von Matterhorn,

0

Stavo installando Redmine su Mac OS X Mountain Lion ...

Il programma di installazione non è riuscito su rmagick ...

Dopo molti problemi, ha funzionato installando "homebrew", ma NON installando rmagick tramite homebrew. Invece ho installato "pkg-config" tramite homebrew, perché rmagick se ne stava lamentando.

I comandi:

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

Quindi Redmine ha continuato l'installazione senza problemi.



0

Prima di installare rmagic dovresti installare imagic sul tuo sistema, l'installazione di imagick varia in base al tuo sistema operativo, quindi devi installare alcune librerie che supportano internamente ruby ​​per unire le librerie di elaborazione delle immagini sul tuo sistema. Per installare quelle librerie usare il seguente comando Per Linux: sudo apt-get install libmagickwand-dev imagemagick Per Centos: yum install libmagickwand-dev imagemagick

quindi devi installare gem rmagick con il seguente comando: gem install rmagick Funziona per me e ho installato rmagick con successo ...


0

Più vicino alla risposta @ Irongaze.com! Nel mio Arch Linux ho creato questi due collegamenti simbolici:

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

Quindi viene eseguito bundlenuovamente ed è rmagickstato corretto installato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.