Installazione di RMagick: impossibile trovare MagickWand.h


164

L'aggiornamento di RMagick e Imagemagick è una dolorosa esperienza. Ho aggiornato la versione di Imagemagick sul mio mac (MacOS El Capitan versione 10.11.5) con homebrew per un progetto in Ruby 2.3 a6.9.5-9

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

Ora un vecchio progetto in Ruby 1.8.7 rifiuta di funzionare con il messaggio di errore "questa installazione di RMagick è stata configurata con ImageMagick 6.8.9 ma ImageMagick 6.9.5-9 è in uso". Quindi ho disinstallato "rmagick", ma non è possibile installarlo di nuovo

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

E se non può essere installato, l'intera applicazione non può essere avviata. Ho provato tutte le risposte da qui , e nessuna di esse funziona su MacOS :-( Ho reinstallato imagemagick e pkg-config con homebrew e ho provato varie versioni di RMagick senza successo. 2.16.0 è l'ultima versione di RMagick al momento.

MagicWand sembra essere utilizzato nella versione di ImageMagick> 6.9 e può essere trovato sulla macchina:

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

Non funziona anche se specifico questi percorsi durante l'installazione gem (stesso errore di cui sopra) :-(

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

AGGIORNARE:

L'errore si verifica solo per Ruby 1.8.7, è possibile installare RMagick per Ruby 2.0 e Ruby 2.3. Ruby 1.8.7 e ImageMagick 6.9.5 non sembrano essere compatibili.

  • Rubino 1,8,7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓


Cos'è questo, un gioco di Harry Potter?
Espiazione limitata l'

Risposte:


461

Per risolvere il problema in Mac OSX Sierra, High Sierra, El Capitan, Mojave e Catalina , puoi effettuare le seguenti operazioni:

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

imagemagick@6è keg-only, quindi è necessario forzare il collegamento.


7
Ho dovuto scollegare manualmente brew unlink imagemagickprima del collegamento, ma ha funzionato. Molte grazie.
Haris Krajina,

2
Wow. Super fa schifo che non posso avere l'ultima versione di ImageMagick, ma funziona. Grazie!
Fomentia,

1
Funziona perfettamente con Ubuntu Ubuntu 16.04.3 LTS
violentr

55

Ho avuto lo stesso problema con ImageMagick 7.0.4-4 . La soluzione corretta è installare imagemagick@6. Ho trovato utile https://github.com/Homebrew/homebrew-core/pull/8756 se hai eliminato accidentalmente il tuo imagemagick@6o non l' hai mai installato in primo luogo.


WOW! Grazie mille per quel link. Ho perso quasi metà della mia giornata lavorativa cercando di risolvere questo problema.
kalehv,

14
Si noti che imagemagick @ 6 è solo keg, quindi è necessario forzare il collegamento. brew install imagemagick@6 && brew link imagemagick@6 --forcerisolto per me
Darren Cheng

1
Fantastico, evviva! Questo ha funzionato per me:brew install --force imagemagick@6 && brew link imagemagick@6 --force
Bella,

1
Sì, l'installazione della versione precedente (6x) lo risolverebbe sicuramente. Il problema è che la struttura delle cartelle dei file imagemagick è cambiata nella versione 7x. E durante l'installazione della gemma presuppone la struttura di cartelle che 6x ha
Prakash Raman

Il rollback a imagemagick @ 6 non funziona purtroppo per me. Anche dopo aver reinstallato e ricollegato ho ancora questo messaggio quando provo ad installare 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.
Will Hitchcock

32

macOs Sierra:

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

1
-1 perché forzate il collegamento senza motivo né dicendo a nessuno perché questa è una cattiva idea per cominciare. Vedi la mia risposta per averlo fatto "correttamente" nel senso di Homebrew e non di MacPorts.
mmlac,

21

Prima di tutto scollega il tuo imagemagick installato che non è stato installato correttamente nell'ultima Mac High Sierra usando.

brew unlink imagemagick

quindi installa l'ultima imagemagic6 usando il comando seguente

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

Quindi installare gem rmagick usando il comando seguente

gem install rmagick 

Funzionerà perfettamente.


16

yah questo risolve il mio problema:

MacOS X Sierra:

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

14

Molte cose sono cambiate in ImageMagick 7 come questo percorso:, include/.../wand ewand/MagickWand.h :, è cablato nella gemma rmagic al momento. Nel mio caso non è stato possibile aggiornare la gemma poiché il progetto è piuttosto vecchio. Così ho finito per installare una versione precedente di ImageMagic.

Puoi installare l'ultima versione da 6.xx:

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

Puoi anche appuntarlo per un utilizzo successivo: brew pin imagemagick


1
Ha funzionato per me: Mac OS 10.12.X. Ho installato prima ImageMagick 7 e ho avuto problemi con l'installazione delle rotaie gem rmagick.
Simon Franzen,

11

Qualcosa è cambiato con ImageMagick 7.0.4-4 per me. wand/MagickWand.hnon è più possibile trovarlo:

% 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.

Avevo ancora ImageMagick 6.9.7-3 sul mio sistema e sono tornato con

% 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

Successivamente ho potuto installare rmagicksenza problemi:

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

Potresti trovare delle soluzioni? Sto riscontrando gli stessi problemi con te.
Kemal Akkoyun,

come ho detto. tornare a imagemagick 6.9 lo risolve per me.
Holger Frohloff il

1
Grazie, l'ho capito e risolto, secondo il tuo suggerimento. Ma cosa stavo cercando di chiedere se l'hai risolto utilizzando l'ultima versione di ImageMagick? Poi ho trovato il relativo problema github.com/rmagick/rmagick/issues/256 che suggerisce anche di eseguire il downgrade di ImageMagick come hai fatto tu. Quindi grazie ancora.
Kemal Akkoyun,

Di niente. Non ho ancora risolto il problema utilizzando la versione 7.x. Immagino che ci sarà una soluzione piuttosto presto. Vedremo. :)
Holger Frohloff il

6

RMagick dipende da una versione obsoleta di imagemagick, versione 6. (vedi sotto) Homebrew offre questo come un pacchetto solo keg, che puoi installare con:

brew install imagemagick@6

L'output di compilazione includerà una sezione Avvertenze (disponibile anche brew info imagemagick@6se si è cancellato l'output):

==> 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"

Piuttosto che la forza-linking, che ha il potenziale di causare problemi con altri software che non supporta le versioni più recenti di ImageMagick, è possibile utilizzare il suggerito exports per rendere la gemma RMagick prendere la vecchia versione, mentre si costruisce:

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. Vai a contribuire a contribuire allo sforzo di aggiornamento se conosci Ruby e 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

grazie per i suggerimenti e i suggerimenti, purtroppo non ha aiutato :-(
0x4a6f4672

1
Questa risposta è stata l'unica che ha menzionato pkg-confige ha funzionato.
Jason Kim,

pkg-config è la chiave del successo. Grazie mille.
Michael Johann,

5

Non ho ancora la reputazione di lasciare questo come commento per migliorare un'altra risposta, ma la risposta di @ Evgeniy28 ha funzionato per me su Sierra solo dopo aver installato anche pkg-config, che non viene installato di default su una nuova macchina Sierra.

Così:

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

Successo:

$ 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

Ha funzionato per me, Sierra 10.12.6
Ivan Danci,

5

Segui di seguito e cambia alcune parti in base alle tue esigenze.

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

Installa imagemagick versione 6 perché la versione 7 non è compatibile:

$ brew install imagemagick@6

Non dovrebbe essere collegato - forza la versione precedente perché questo cambierà i binari nel tuo percorso e il bene brew doctorsi lamenterà.

Fai riferimento alle intestazioni e alle librerie dalla versione 6 installata durante la creazione dell'estensione nativa della gemma:

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

Nota: ha funzionato per me senza indicare la cartella lib e include perché pkgconfig è responsabile per questo.

Nota: 6.9.10-14 è l'ultima versione di imagemagick @ 6, ma puoi cambiarla se devi utilizzare una versione diversa


3

Ecco come ho risolto (dopo molti tentativi falliti) su macOS High Sierra 10.13.3 con Homebrew:

  1. sembra che RMagick 2.16.0 non sia compatibile con la versione più recente di ImageMagick (Versione 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Ho disinstallato imagemagick: brew uninstall imagemagick
  3. Quindi ho installato Imagemagick con questa formula: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Se hai già installato una vecchia versione di Imagemagick, dovrebbe funzionare: https://stackoverflow.com/a/41674363


2

alla versione 7.0.7-1 è possibile creare un collegamento simbolico, ma quest'ultima non riuscirà.

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

2

Non è necessario collegare o scollegare nulla, seguendo le istruzioni dello script di installazione brew aiuta:

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

Si è verificato lo stesso errore per la creazione dell'immagine Alpine 3.9. Viene fornito con ImageMagick 7.0.8.38-r0

Per correggere l'uso di alpine 3.5 con ImageMagick 6.9.6.8-r1 :

FROM alpine:3.5

Oppure installa ImageMagick 6.9.6.8-r1 con repository di pacchetti per 3.5:

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

Esiste un problema aperto nel repository rmagick per quanto riguarda build non riuscite per ImageMagick 7.0.x. quindi spero che sarà risolto presto.


0

Qualcosa era gravemente sbagliato nel mio sistema, così gravemente che era completamente funzionante, ma alla fine sono stato in grado di installare nuovamente RMagick per Ruby 1.8.7 dopo l'installazione

L'installazione di una nuova versione di Ruby con RVM ha rvm install 1.8.7anche installato un nuovo compilatore GCC: ha rimosso una versione precedente di GCC 4.6 e installato GCC versione 4.9. Apparentemente GCC non è stato in grado di trovare le intestazioni giuste nonostante pkg-config.


0

Spiego a fondo il processo di installazione nell'installazione di ImageMagick in centos .

comunque ...
dopo l'installazione Installa la libreria PHP di Imagick & ImageMagick-devel e ImageMagick come di seguito:

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

vai a / usr / include

cd /usr/include

Importante: copia la cartella ImageMagick da "/ usr / include" in "/ usr / local / include" per ImageMagick trova "MagickWand.h"

Ho testato questa modifica su imagick-3.4.3 (ImageMagick-7) e centos 6.5 e php56 e funziona perfettamente ...

Se hai già installato più volte "ImageMagick", rimuovili prima e trova le cartelle "ImageMagick" e "imagick", puliscili tutti e continua il processo di installazione con questa modifica.

Utilizzare il comando seguente per trovare un file o una cartella:

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

e continua l'installazione
prima delle righe seguenti non dimenticare: vai su "php.ini" trova "disable_functions" e pulisci "proc_open, popen, proc_close" perché fai che imagick abbia bisogno di queste funzioni, dopo l'installazione completa puoi aggiungere queste funzioni al tuo " disable_functions "sul file" php.ini ".

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

In bocca al lupo...


0

Per la versione Ubuntu> 12 e non usando l'homebrew,

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

Se stai ricevendo file '7z' invece di 'tar.gz' nel link wget, allora

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

Quindi puoi riprendere il tuo bundler per RMagick.


-1

Innanzitutto, non è necessario disinstallare imagemagick se è installato un 6.x, come mostrato di seguito. Puoi vedere che l'attuale "principale" è 7.0.7-8ma 6.9.1-10è ancora lì.

$ 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

Se non si dispone di una vecchia versione 6.x, quindi installare ImageMagick @ 6.

In secondo luogo, non forzare il collegamento di imagemagick, in particolare non 6. EDIT: vedi ¹
È necessario impostare PKG_CONFIG_PATH in aggiunta ai flag --with-opt- *.

Questo funziona per me su High Sierra con la configurazione della birra sopra menzionata su 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/

La costruzione di documenti ri fallisce, ma quelli sono insignificanti.

¹: Lavori di costruzione, il percorso dylib che RMagick sta cercando è sbagliato. Problema n. 278 sollevato per chiarire se ciò può essere risolto. Altrimenti è necessario il collegamento manuale di libMagickWand ecc. Potrebbe essere ancora più sicuro collegare manualmente le librerie specifiche di un brew link --forcepensiero.

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.