Compilei o ImageMagick no meu CentOS e o RMagick não instala


16

Instalei o ImageMagick através de (Usando o ImageMagick 6.7.3-7)

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

Quando tento

gem install imagemagick

eu recebo

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

Isso apesar do MagickWand.h já estar no sistema /usr/include/ImageMagick/wand/MagickWand.h. Portanto, a questão é: como faço para que o compilador procure lá?

Respostas:


26

Teve o mesmo problema no CentOS usando tudo mais recente (em dezembro de 2011) e corrigiu-o com:

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

no meu arquivo .bashrc para pegar o MagickCore.pc, criei dois links simbólicos:

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

E pronto, o MagickWand.h foi encontrado, o MagickCore.pc foi adquirido ... gem instalado com sucesso.

Imagino que outra solução seria modificar as opções de configuração definidas durante a instalação do ImageMagick, mas não sou administrador de sistemas suficiente para esclarecer qual seria a opção e o local corretos para esses arquivos. Após 45 minutos pesquisando, eu não conseguia descobrir onde esses arquivos deveriam estar, para serem automaticamente selecionados pelo sistema make install da gem.

Felicidades!

EDIT: 2014-10-01

Acabei de fazer isso novamente no CentOS 7, e os lncomandos acima não eram necessários. No entanto, encontrei um problema em que obtive "O pacote MagickCore não foi encontrado no caminho de pesquisa do pkg-config". em execução sudo gem install rmagick.

O problema foi a redefinição do ambiente em / etc / sudoers. Depois de executar sudo visudoa edição do arquivo sudoers, adicionei Defaults env_keep += "PKG_CONFIG_PATH"à seção apropriada, atualizei o caminho seguro para incluir / usr / local / bin e a instalação funcionou como um encanto.


Eu estava tendo o mesmo problema no RedHat 6 e sua solução funcionou para mim. Muitíssimo obrigado!
precisa saber é o seguinte

Incrível, isso até funcionou como um encanto no leão da montanha! Preciso executar toda a instrução acima para que o rmagick gem seja instalado.
Hendra Uzia

Tentei isso e obtive "/ usr / local / bin / Magick-config: linha 41: pkg-config: comando não encontrado / usr / local / bin / Magick-config: linha 47: pkg-config: comando não encontrado / usr / local / bin / Magick-config: linha 50: pkg-config: comando não encontrado / usr / local / bin / Magick-config: linha 53: pkg-config: comando não encontrado "
Jonny

13

O ImageMagick normalmente colocará o MagickCore aqui:

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

Se o seu não estiver lá, você pode encontrá-lo assim:

find / -name MagickCore.pc

Agora você conhece o caminho do seu pkgconfig:

/usr/local/lib/pkgconfig

Defina o ambiente ao instalar a gema:

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

Obrigado! Trabalhou para mim em uma BitNami Ubuntu 12.04 ..
JD

Obrigado! O similar funcionou aqui: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux

7

Para o CentOS, resolvi esse problema instalando o pacote "ImageMagick-devel":

yum install ImageMagick-devel


11
esta é a melhor resposta :)
kovpack

2

A chave está na saída de configuração, onde diz "verificando varinha / MagickWand.h" - claramente o diretório ImageMagick não é esperado em / usr / include, o que significa que você precisa mover o conteúdo desse diretório para um nível superior ou você precisa instalar o ImageMagick de forma diferente. Colocar coisas diretamente em / usr geralmente é uma má idéia para qualquer coisa que não seja fornecida pelo próprio sistema - se você separar todas as coisas que adicionar em / usr / local e deixar / usr em grande parte sozinho, você achará o sistema muito mais fácil administrar também, já que você será capaz de (muito depois de se esquecer disso) descobrir o que adicionou ou o que veio com o sistema.


Um bom conselho, embora você ainda não tenha respondido à pergunta, como forçar o compilador a procurar em determinados diretórios o arquivo de cabeçalho.
Ken Li

3
Bem, todas as invocações do compilador estão acontecendo através do comando gem (você força o compilador a procurar em locais alternativos com o sinalizador -I, mas esse usuário não está usando o compilador diretamente) e o melhor é configurar o comando configure como essa bondade ocorre sem ter que alterar mais nada. O uso da variável de ambiente PKG_CONFIG_PATH que o configure continua a gritar pode ser útil se houver um arquivo MagickCore.pc disponível. "find / usr -name MagickCore.pc" e veja se ele existe, adicione o diretório em que está com "setenv PKG_CONFIG_PATH / path / to / where / find / found / it"
jkh

Atualizei PKG_CONFIG_PATH para /Dir/to/where/found/MagickCore.pc e ainda termino com "Não é possível instalar o RMagick 2.13.1. Não é possível encontrar o MagickWand.h". e o que mais eu posso tentar .. Não sabe como usar a opção -l?
p101

Hmmmm! Isso deveria ter funcionado. Pergunta: Se você digitar ./configure --help, listará alguma opção de configuração específica para o ImageMagick? Nesse caso, você poderá apontar diretamente para o diretório ImageMagick em / usr / local a partir do script configure.
jkh

Thnx jkh .. Curiosamente, eu não encontrei o configure no rmagick, então provavelmente você quer dizer imagemagick. Eu criei uma nova pergunta aqui stackoverflow.com/questions/9561386/rmagick-installation . Gostaria que você pudesse dar uma olhada. Obrigado!
P101


1

Pode ser que você esteja instalando o ImageMagick versão 7.xx, que irá gerar diferentes nomes de pastas na sua usr/lib/local/include/ImageMagick7.x.xpasta. Por exemplo

Na versão ImageMagick6.xx temos magick, wandpastas, onde na versão ImageMagick7.xx têm chamado este chamado MagickCore, MagickWand. Portanto, essa atualização está causando o problema em algumas instalações de gemas como aqui. O que está usando magick/some_header.hor wand/some_header.h(significa que eles não são atualizados com a nova versão 7.xx ImageMagick). É por isso que estamos recebendo este erro:

`` ``

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 no arquivo de log algo como isto:

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

Solução

Instale a versão do ImageMagick6.xx no seu sistema no site oficial: https://www.imagemagick.org/download/ e instale-a usando estes comandos (após extrair o zip / tar):

./configure
make 
make install

Então faça

gem install rmagick

Vai funcionar.


Eu tive que executar um sudo ldconfig /usr/local/libdepoissudo make install
sequielo 28/06

0
        1) install by installer

http://cactuslab.com/imagemagick/

2) tente gem instalar rmagick

se verificar varinha / MagickWand.h ... nenhum
tipo

mdfind MagickWand.h

encontre algo como

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

e digite o terminal

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

se, depois disso, você tiver esse erro (porque o ocorreu) "O pacote MagickCore não foi encontrado no caminho de pesquisa do pkg-config."

tipo

mdfind MagickCore.pc

encontre algo como /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

e finalmente no tipo de terminal:

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

11
O comando mdfindé apenas um comando do MacOSX, não existe nas variantes do Linux.
Slm 28/03

como disse @slm, reescreva sua resposta para ajudar no controle de qualidade.
Lorenzo Von Matterhorn

0

Eu estava instalando redmine no Mac OS X mountain lion ...

O instalador falhou no rmagick ...

Após muitos problemas, funcionou instalando o "homebrew", mas NÃO instalando o rmagick através do homebrew. Em vez disso, instalei o "pkg-config" através do homebrew, porque o rmagick estava reclamando disso.

Os comandos:

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

Em seguida, o redmine continuou a instalação sem problemas.



0

Antes de instalar o rmagic, você deve instalar o imagic em seu sistema, a instalação do imagick varia de acordo com o sistema operacional. Em seguida, é necessário instalar algumas bibliotecas que suportam internamente o ruby ​​para mesclar bibliotecas de processamento de imagens em seu sistema. Para instalar essas bibliotecas, use o seguinte comando Para linux: sudo apt-get install libmagickwand-dev imagemagick Para Centos: yum instale libmagickwand-dev imagemagick

então você deve instalar o gem rmagick com o seguinte comando: gem install rmagick Funciona para mim e eu instalei o rmagick com sucesso ...


0

Mais próximo de @ Irongaze.com resposta! No meu Arch Linux, criei esses dois links simbólicos:

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

Em seguida, é executado bundlenovamente e rmagickfoi corrigido instalado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.