⚠️ Este é um site de tradução não oficial, sem relação com a ImageMagick Studio LLC. Para informações oficiais, consulte a página original (https://imagemagick.org/advanced-linux-installation/).

Baixar e Descompactar • Configurar • Compilar • Instalar • Instruções de compilação específicas para Linux • Instruções de compilação específicas para macOS • Instruções de compilação específicas para MinGW • Lidando com problemas inesperados

É possível que você não queira se preocupar com a instalação avançada em Linux ou sistemas Linux. Nesse caso, você também tem a opção de instalar uma versão binária pré-compilada ou, se ainda quiser instalar a partir do código-fonte sem toda a complicação, consulte as instruções simples de Instalar a partir do código-fonte. No entanto, se você quiser personalizar a configuração e a instalação do ImageMagick em Linux ou sistemas Linux, vamos começar.

Baixar e Descompactar

O ImageMagick compila em uma variedade de sistemas operacionais Linux e similares ao Linux, incluindo Linux, Solaris, FreeBSD, macOS e outros. Um compilador é necessário e, felizmente, quase todos os sistemas Linux modernos possuem um. Baixe o ImageMagick-7.1.2-25.7z do GitHub.

Descompacte a distribuição com este comando:

tar xvzf ImageMagick.tar.gz

Agora que você descompactou a distribuição do código-fonte do ImageMagick para Linux/Linux, vamos configurá-la.

Configurar

O script configure examina seu ambiente e decide o que pode reunir para compilar e instalar o ImageMagick no seu sistema. Isso inclui localizar um compilador, onde estão os arquivos de cabeçalho do seu compilador (por exemplo, stdlib.h) e se há bibliotecas delegadas disponíveis para o ImageMagick utilizar (por exemplo, JPEG, PNG, TIFF, etc.). Se você estiver disposto a aceitar as opções padrão do configure e compilar a partir do diretório do código-fonte, basta digitar:

cd ImageMagick-7.1.2-25
./configure

Observe a saída do script configure para verificar se ele encontra tudo o que você acha que deveria. Preste atenção especial às últimas linhas da saída do script. Por exemplo, aqui está um relatório recente do nosso sistema:

ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.

Host system type: x86_64-unknown-linux-gnu
Build system type: x86_64-unknown-linux-gnu

                  Option                     Value
-------------------------------------------------------------------------------
Shared libraries  --enable-shared=yes       yes
Static libraries  --enable-static=yes       yes
Module support    --with-modules=yes        yes
GNU ld            --with-gnu-ld=yes     yes
Quantum depth     --with-quantum-depth=16   16
High Dynamic Range Imagery
                  --enable-hdri=no      no

Delegate Configuration:
BZLIB             --with-bzlib=yes      yes
Autotrace         --with-autotrace=yes  yes
DJVU              --with-djvu=yes       no
DPS               --with-dps=yes        no
FlashPIX          --with-fpx=yes        no
FontConfig        --with-fontconfig=yes yes
FreeType          --with-freetype=yes       yes
GhostPCL          None          pcl6 (unknown)
GhostXPS          None          gxps (unknown)
Ghostscript       None          gs (8.63)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib   --with-gslib=yes      no (failed tests)
Graphviz          --with-gvc=yes        yes
JBIG              --with-jbig=      no
JPEG v1           --with-jpeg=yes       yes
JPEG-2000         --with-jp2=yes        yes
LCMS              --with-lcms=yes       yes
LQR               --with-lqr=yes        no
Magick++          --with-magick-plus-plus=yes   yes
OpenEXR           --with-openexr=yes        yes
PERL              --with-perl=yes       /usr/bin/perl
PNG               --with-png=yes        yes
RSVG              --with-rsvg=yes       yes
TIFF              --with-tiff=yes       yes
result_windows_font_dir='none'
Windows fonts     --with-windows-font-dir=
WMF               --with-wmf=yes        yes
X11               --with-x=         yes
XML               --with-xml=yes        yes
ZLIB              --with-zlib=yes       yes

X11 Configuration:
      X_CFLAGS        =
      X_PRE_LIBS      = -lSM -lICE
      X_LIBS          =
      X_EXTRA_LIBS    =

Options used to compile and link:
  PREFIX          = /usr/local
  EXEC-PREFIX     = /usr/local
  VERSION         = 6.4.8
  CC              = gcc -std=gnu99
  CFLAGS          = -fopenmp -g -O2 -Wall -W -pthread
  MAGICK_CFLAGS   = -fopenmp -g -O2 -Wall -W -pthread
  CPPFLAGS        = -I/usr/local/include/ImageMagick
  PCFLAGS         = -fopenmp
  DEFS            = -DHAVE_CONFIG_H
  LDFLAGS         = -lfreetype
  MAGICK_LDFLAGS  = -L/usr/local/lib -lfreetype
  LIBS            = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext
                    -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl
  CXX             = g++
  CXXFLAGS        = -g -O2 -Wall -W -pthread

Você pode influenciar a escolha do compilador, das flags de compilação ou das bibliotecas do script configure definindo valores iniciais para variáveis na linha de comando do configure. Entre outras, estas incluem:

CC
Nome do compilador C (por exemplo, cc -Xa) a ser usado.
CXX
Nome do compilador C++ a ser usado (por exemplo, CC).
CFLAGS
Flags do compilador (por exemplo, -g -O2) para compilar código C.
CXXFLAGS
Flags do compilador (por exemplo, -g -O2) para compilar código C++.
CPPFLAGS
Caminhos de inclusão (por exemplo, -I/usr/local) para procurar arquivos de cabeçalho.
LDFLAGS
Caminhos de bibliotecas (por exemplo, -L/usr/local) para procurar bibliotecas. Sistemas que suportam a noção de caminho de execução de bibliotecas (run-path) podem exigir um argumento adicional para encontrar bibliotecas compartilhadas em tempo de execução. Por exemplo, o linker do Solaris exige um argumento na forma -R/path. Alguns sistemas Linux funcionam com -rpath /usr/local/lib, enquanto outros sistemas Linux cujo gcc não passa -rpath ao linker exigem um argumento na forma -Wl,-rpath,/usr/local/lib.
LIBS
Bibliotecas extras (por exemplo, -l/usr/local/lib) necessárias para a ligação.

Aqui está um exemplo de definição de variáveis do configure a partir da linha de comando:

configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix

Qualquer variável (por exemplo, CPPFLAGS ou LDFLAGS) que exija um caminho de diretório deve especificar um caminho absoluto em vez de um caminho relativo.

O configure geralmente consegue encontrar os arquivos de inclusão e de bibliotecas do X automaticamente, mas, se não conseguir, você pode usar as opções --x-includes=path e --x-libraries=path para especificar suas localizações.

O script configure fornece várias opções específicas do ImageMagick. Ao desabilitar uma opção, --disable-something é equivalente a especificar --enable-something=no e --without-something é equivalente a --with-something=no. As opções do configure são as seguintes (execute configure --help para ver todas as opções).

As opções do ImageMagick representam recursos a serem habilitados, desabilitados, ou pacotes a serem incluídos na compilação. Quando um recurso é habilitado (via --enable-something), ele habilita o código já presente no ImageMagick. Quando um pacote é habilitado (via --with-something), o script configure o procurará e, se estiver corretamente instalado e pronto para uso (cabeçalhos e bibliotecas compiladas forem encontrados pelo compilador), ele será incluído na compilação. O script configure é entregue com todos os recursos desabilitados e todos os pacotes habilitados. Em geral, o único motivo para desabilitar um pacote é se ele existir mas for inadequado para a compilação (talvez uma versão antiga ou não compilada com as flags de compilação corretas).

Aqui estão os recursos opcionais que você pode configurar:

--enable-shared

compila as bibliotecas compartilhadas e o suporte para carregar módulos de coder e de processo. Bibliotecas compartilhadas são preferíveis porque permitem que os programas compartilhem código comum, tornando os programas individuais muito menores. Além disso, bibliotecas compartilhadas são necessárias para que o PerlMagick seja carregado dinamicamente por um PERL instalado (caso contrário, é preciso instalar um PERL adicional (PerlMagick)).

O ImageMagick compilado com delegados (veja MAGICK PLUG-INS abaixo) pode trazer desafios adicionais. Se o ImageMagick for compilado usando bibliotecas estáticas (o padrão sem --enable-shared), então as bibliotecas delegadas podem ser compiladas como bibliotecas estáticas ou compartilhadas. No entanto, se o ImageMagick for compilado usando bibliotecas compartilhadas, então todas as bibliotecas delegadas também devem ser compiladas como bibliotecas compartilhadas. Bibliotecas estáticas geralmente têm a extensão .a, enquanto bibliotecas compartilhadas normalmente têm extensões como .so, .sa ou .dll. O código em bibliotecas compartilhadas normalmente deve ser compilado usando uma opção especial do compilador para produzir código independente de posição (PIC). A única vez em que isso não é necessário é quando a plataforma compila código como PIC por padrão.

As flags de compilação PIC diferem de fornecedor para fornecedor (a do gcc é -fPIC). No entanto, você deve compilar todo o código-fonte de bibliotecas compartilhadas com a mesma flag (para o gcc, use -fPIC em vez de -fpic). Embora bibliotecas estáticas normalmente sejam criadas usando uma ferramenta de arquivamento como ar, bibliotecas compartilhadas são compiladas usando opções especiais do linker ou do compilador (por exemplo, -shared para o gcc).

Se --enable-shared não for especificado, um novo interpretador PERL (PerlMagick) é compilado e ligado estaticamente à extensão PerlMagick. Esse novo interpretador é instalado no mesmo diretório que os utilitários do ImageMagick. Se --enable-shared for especificado, a extensão PerlMagick é compilada como um objeto carregável dinamicamente que é carregado no seu interpretador PERL atual em tempo de execução. O uso de extensões carregadas dinamicamente é preferível ao de extensões ligadas estaticamente, então use --enable-shared se possível (note que todas as bibliotecas usadas com o ImageMagick devem ser bibliotecas compartilhadas!).
--disable-static

bibliotecas de arquivo estáticas (com extensão .a) não são compiladas. Se você estiver compilando bibliotecas compartilhadas, há pouco valor em compilar bibliotecas estáticas. Motivos para compilar bibliotecas estáticas incluem: 1) elas podem ser mais fáceis de depurar; 2) os clientes não têm dependências externas (ou seja, libMagick.so); 3) compilar versões PIC das bibliotecas delegadas pode exigir conhecimento e esforço adicionais; 4) você não consegue compilar bibliotecas compartilhadas.
--disable-installed

desabilita a compilação de um ImageMagick instalado (padrão habilitado).

Por padrão, a compilação do ImageMagick é configurada para instalar formalmente em uma árvore de diretórios. Essa é a maneira mais segura e confiável de instalar o ImageMagick. Use esta opção para configurar o ImageMagick de modo que ele não use caminhos codificados e localize arquivos de suporte calculando um caminho de deslocamento a partir do executável (ou a partir da localização especificada pela variável de ambiente MAGICK_HOME). A configuração não instalada é ideal para distribuições binárias que se espera que extraiam e executem em qualquer local.
--enable-ccmalloc

habilita o suporte de depuração de memória 'ccmalloc' (padrão desabilitado).
--enable-prof

habilita o suporte de profiling 'prof' (padrão desabilitado).
--enable-gprof

habilita o suporte de profiling 'gprof' (padrão desabilitado).
--enable-gcov

habilita o suporte de profiling 'gcov' (padrão desabilitado).
--disable-openmp

desabilita o OpenMP (padrão habilitado).

Certos algoritmos do ImageMagick, por exemplo a convolução, podem alcançar uma aceleração significativa com o auxílio da API OpenMP ao rodar em processadores modernos dual e quad-core.
--disable-largefile

desabilita o suporte para deslocamentos de arquivo grandes (64 bits).

Por padrão, o ImageMagick é compilado com suporte a arquivos grandes (> 2GB em uma CPU de 32 bits) se o sistema operacional suportar arquivos grandes. Algumas aplicações que usam a biblioteca ImageMagick também podem exigir suporte a arquivos grandes. Ao desabilitar o suporte a arquivos grandes via --disable-largefile, as aplicações dependentes não exigem opções de compilação especiais para arquivos grandes ao usar a biblioteca.

Aqui estão os pacotes opcionais que você pode configurar:

--with-quantum-depth

número de bits em um quantum de pixel (padrão 16).

Use esta opção para especificar o número de bits a usar por quantum de pixel (o tamanho dos componentes de pixel vermelho, verde, azul e alfa). Por exemplo, --with-quantum-depth=8 compila o ImageMagick usando quantums de 8 bits. A maioria dos adaptadores de vídeo de computador usa quantums de 8 bits. Os argumentos atualmente suportados são 8, 16 ou 32. Recomendamos o padrão de 16 porque alguns formatos de imagem suportam 16 bits por pixel. No entanto, esta opção é importante na determinação do desempenho geral em tempo de execução do ImageMagick.

O número de bits em um quantum determina quantos valores ele pode conter. Cada nível de quantum suporta 256 vezes mais valores do que o nível anterior. A tabela a seguir mostra a faixa disponível para vários tamanhos de quantum.

Quantum Depth     Valid Range (Decimal)   Valid Range (Hex)
    8             0-255                   00-FF
   16             0-65535                 0000-FFFF
   32             0-4294967295            00000000-FFFFFFFF

Quantums de pixel maiores podem fazer o ImageMagick rodar mais lentamente e exigir mais memória. Por exemplo, usar quantums de pixel de dezesseis bits pode fazer o ImageMagick rodar de 15% a 50% mais lento (e consumir o dobro de memória) do que quando é compilado para suportar quantums de pixel de oito bits.

A quantidade de memória virtual consumida por uma imagem pode ser calculada pela equação (5 * Quantum Depth * Rows * Columns) / 8. Esta é uma consideração importante quando os recursos são limitados, particularmente porque o processamento de uma imagem pode exigir que várias imagens estejam na memória ao mesmo tempo. A tabela a seguir mostra os valores de consumo de memória para uma imagem 1024x768:

Quantum Depth   Virtual Memory
     8               3MB
    16               8MB
    32              15MB

--enable-hdri

representa com precisão a ampla faixa de níveis de intensidade.
--enable-osx-universal-binary

compila um binário universal no OS X.
--without-modules

desabilita o suporte para módulos carregáveis dinamicamente.

Os coders de imagem e os módulos de processo são compilados como módulos carregáveis que são instalados no diretório [prefix]/lib/ImageMagick-X.X.X/modules-QN (onde 'N' equivale a 8, 16 ou 32 dependendo da profundidade de quantum) nos subdiretórios coders e filters, respectivamente. A opção de compilação de módulos só está disponível em conjunto com --enable-shared. Se --enable-shared também não for especificado, o suporte para compilar módulos é desabilitado. Note que, se --enable-shared e --disable-modules forem especificados, o carregador de módulos fica ativo (permitindo estender um ImageMagick instalado simplesmente copiando um módulo para o local), mas o próprio ImageMagick não é compilado usando módulos.
--with-cache

define o limiar do cache de pixels (padrão é a memória disponível).

Especifique um limiar diferente para o cache de pixels da imagem com esta opção. Isso define a quantidade máxima de memória heap que o ImageMagick pode consumir antes de passar a usar arquivos temporários mapeados em memória para armazenar os dados brutos de pixel.
--without-threads

desabilita o suporte a threads.

Por padrão, a biblioteca ImageMagick é compilada com suporte a múltiplas threads. Se isso for indesejável, especifique --without-threads.
--with-frozenpaths

habilita caminhos de delegados congelados.

Normalmente, os nomes de programas externos são substituídos no arquivo de configuração delegates.xml sem caminhos completos. Especifique esta opção para habilitar o salvamento de caminhos completos para os programas usando localizações determinadas pelo configure. Isso é útil para ambientes onde os programas estão armazenados sob vários caminhos e os usuários podem usar configurações de PATH diferentes das da pessoa que compila o ImageMagick.
--without-magick-plus-plus

desabilita a compilação/instalação do Magick++.

Desabilita a compilação do Magick++, a interface de programação de aplicações C++ do ImageMagick. Um compilador C++ adequado é necessário para compilar o Magick++. Especifique a variável de configure CXX para selecionar o compilador C++ a usar (padrão g++) e CXXFLAGS para selecionar as flags desejadas de otimização e depuração do compilador (padrão -g -O2). Compiladores C++ antigos normalmente serão rejeitados pelos testes do configure, então especificar esta opção só deve ser necessário se o Magick++ não compilar.
--without-perl

desabilita a compilação/instalação do PerlMagick, ou

Por padrão, o PerlMagick é convenientemente compilado e instalado como parte do processo normal de configure, make, sudo make install do ImageMagick. Quando --without-perl é especificado, você deve primeiro instalar o ImageMagick, baixar a distribuição do código-fonte do PerlMagick, compilar e, por fim, instalar o PerlMagick. Note que o PerlMagick é configurado mesmo se --without-perl for especificado. Se o argumento --with-perl=/path/to/perl for fornecido, /../path/to/perl será tomado como o interpretador PERL a usar. Isso é importante caso o executável perl no seu PATH não seja PERL5, ou não seja o PERL que você deseja usar.
--with-perl=PERL

usa o binário Perl especificado para configurar o PerlMagick.
--with-perl-options=OPTIONS

opções a passar na linha de comando ao gerar o Makefile do PerlMagick a partir do Makefile.PL.

O módulo PerlMagick normalmente é instalado usando o PREFIX de instalação do interpretador Perl, em vez do do ImageMagick. Se o prefixo de instalação do ImageMagick não for o mesmo que o PREFIX do PERL, então você pode descobrir que a etapa sudo make install do PerlMagick tenta instalar em uma árvore de diretórios na qual você não tem permissões de escrita. Isso é comum quando o PERL é entregue com o sistema operacional ou em servidores web de provedores de serviços de Internet (ISP). Se você quiser que o PerlMagick instale em outro lugar, então forneça uma opção PREFIX à etapa de configuração do PERL via "--with-perl-options=PREFIX=/some/place". Outras opções aceitas pelo MakeMaker são 'LIB', 'LIBPERL_A', 'LINKTYPE' e 'OPTIMIZE'. Consulte a página de manual ExtUtils::MakeMaker(3) para mais informações sobre a configuração de extensões PERL.
--without-bzlib

desabilita o suporte a BZLIB.
--without-dps

desabilita o suporte a Display Postscript.
--with-fpx

habilita o suporte a FlashPIX.
--without-freetype

desabilita o suporte a TrueType.
--with-gslib

habilita o suporte à biblioteca Ghostscript.
--without-jbig

desabilita o suporte a JBIG.
--without-jpeg

desabilita o suporte a JPEG.
--without-jp2

desabilita o suporte a JPEG v2.
--without-lcms

desabilita o suporte a LCMS.
--without-lzma

desabilita o suporte a LZMA.
--without-png

desabilita o suporte a PNG.
--without-tiff

desabilita o suporte a TIFF.
--without-wmf

desabilita o suporte a WMF.
--with-fontpath

adiciona ao início do caminho de busca de fontes padrão.
--with-gs-font-dir

diretório contendo as fontes do Ghostscript.

Especifique o diretório contendo os arquivos de fonte Ghostscript Postscript Type 1 (por exemplo, n022003l.pfb) para que possam ser renderizados usando a biblioteca FreeType. Se os arquivos de fonte estiverem instalados usando os caminhos de instalação padrão do Ghostscript (${prefix}/share/ghostscript/fonts), eles devem ser descobertos automaticamente pelo configure e especificar esta opção não é necessário. Especifique esta opção se as fontes do Ghostscript não forem localizadas automaticamente, ou se a localização precisar ser sobrescrita.
--with-windows-font-dir

diretório contendo as fontes do MS-Windows.

Especifique o diretório contendo fontes compatíveis com MS-Windows. Isso não é necessário quando o ImageMagick está rodando no MS-Windows.
--without-xml

desabilita o suporte a XML.
--without-zlib

desabilita o suporte a ZLIB.
--without-x

não usa o X Window System.

Por padrão, o ImageMagick usa as bibliotecas delegadas do X11 se estiverem disponíveis. Quando --without-x é especificado, o uso do X11 é desabilitado. Os subcomandos display, animate e import não são incluídos. Os subcomandos restantes têm funcionalidade reduzida, como nenhum acesso às fontes do X11 (considere usar fontes Postscript ou TrueType em vez disso).
--with-share-path=DIR

caminho alternativo para o diretório share (padrão share/ImageMagick).
--with-libstdc=DIR

usa libstdc++ em DIR (para GNU C++).

Embora o configure seja projetado para facilitar a instalação do ImageMagick, ele frequentemente descobre problemas que de outra forma seriam encontrados mais tarde ao compilar o ImageMagick. O script configure testa cabeçalhos e bibliotecas executando o compilador (CC) com as flags de compilação especificadas (CFLAGS), as flags do pré-processador (CPPFLAGS) e as flags do linker (LDFLAGS). Quaisquer erros são registrados no arquivo config.log. Se o configure não conseguir descobrir um cabeçalho ou biblioteca, revise este arquivo de log para determinar o porquê; no entanto, esteja ciente de que erros no config.log são normais porque o configure funciona tentando algo e vendo se falha. Um erro no config.log só é um problema se o teste deveria ter passado no seu sistema.

Causas comuns de falhas do configure são: 1) um cabeçalho de delegado não está no caminho de inclusão de cabeçalhos (opção -I de CPPFLAGS); 2) uma biblioteca delegada não está no caminho de busca/execução do linker (opção -L/-R de LDFLAGS); 3) uma biblioteca delegada está sem uma função (versão antiga?); ou 4) o ambiente de compilação está defeituoso.

Se todas as ações corretivas razoáveis tiverem sido tentadas e o problema parecer dever-se a uma falha no script configure, envie um relatório de bug ao ImageMagick Defect Support Forum. Todos os relatórios de bug devem conter o tipo do sistema operacional (como relatado por uname -a) e o compilador/versão do compilador. Uma cópia da saída do script configure e/ou da parte relevante do arquivo config.log pode ser valiosa para encontrar o problema. Se você postar partes do config.log, envie também um registro (script) da saída do configure e uma descrição do que esperava ver (e por quê), para que a falha que você está observando possa ser identificada e resolvida.

O ImageMagick agora está configurado e pronto para ser compilado

Compilar

Uma vez que o ImageMagick esteja configurado, estes alvos de compilação padrão estão disponíveis a partir dos arquivos make gerados:

make
Compila o ImageMagick.
sudo make install
Instala o ImageMagick.
make check
Executa os testes usando o ImageMagick instalado (sudo make install deve ser feito primeiro). Ghostscript e Freetype são pré-requisitos, caso contrário, certos testes unitários que renderizam texto e os formatos EPS, PS e PDF provavelmente falharão. Esses testes unitários exigem a política de segurança open para passar.
make clean
Remove tudo no diretório de compilação criado pelo make.
make distclean
remove tudo no diretório de compilação criado pelo configure e pelo make. Isso é útil se você quiser começar do zero.
make uninstall
Remove do sistema todos os arquivos que são (ou seriam) instalados pelo sudo make install usando a configuração atual. Note que este alvo é imperfeito para o PerlMagick, já que o Perl não suporta mais um alvo de uninstall.

Na maioria dos casos, você simplesmente vai querer compilar o ImageMagick com este comando:

make

Uma vez compilado, você pode opcionalmente instalar o ImageMagick no seu sistema conforme discutido abaixo.

Instalar

Agora que o ImageMagick está configurado e compilado, digite:

make install

para instalá-lo.

Por padrão, o ImageMagick instala os binários em /../usr/local/bin, as bibliotecas em /../usr/local/lib, os arquivos de cabeçalho em /../usr/local/include e a documentação em /../usr/local/share. Você pode especificar um prefixo de instalação alternativo diferente de /../usr/local fornecendo ao configure a opção --prefix=PATH. Isso é valioso caso você não tenha privilégios para instalar nos caminhos padrão ou se quiser instalar nos diretórios do sistema.

Para confirmar que a instalação da distribuição do ImageMagick foi bem-sucedida, certifique-se de que o diretório de instalação está no seu caminho de busca de executáveis e digite:

magick logo: logo.gif
identify logo.gif

O logotipo do ImageMagick é exibido no seu display X11.

Para verificar a configuração de compilação do ImageMagick, digite:

magick identify -list configure

Para listar quais formatos de imagem são suportados, digite:

magick identify -list format

Para um teste mais abrangente, você pode executar a suíte de testes do ImageMagick digitando:

make check

O Ghostscript é um pré-requisito, caso contrário os testes de EPS, PS e PDF falharão. Note que, devido a diferenças entre o ambiente do desenvolvedor e o seu, é possível que alguns testes falhem mesmo que os resultados estejam corretos. As diferenças entre o ambiente do desenvolvedor e o seu podem incluir o compilador, o tipo de CPU e as versões das bibliotecas usadas. Os desenvolvedores do ImageMagick usam a versão atual de todas as bibliotecas dependentes.

Instruções de compilação específicas para Linux

Baixe o ImageMagick.src.rpm do imagemagick.org ou de seus espelhos.

Compile o ImageMagick com este comando:

rpmbuild --rebuild ImageMagick.src.rpm

Após a compilação, localize a pasta RPMS e instale a distribuição RPM binária do ImageMagick:

rpm -ivh ImageMagick-7.1.2.-?.*.rpm

Instruções de compilação específicas para macOS

Execute estas etapas como administrador ou com o comando sudo:

Instale o MacPorts. Baixe e instale o MacPorts e digite os seguintes comandos:

sudo port -v install freetype +bytecode
sudo port -v install librsvg
sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms

Isso instala muitas das bibliotecas delegadas que o ImageMagick utilizará, como JPEG e FreeType.

Instale o Xcode mais recente da Apple.

Use o comando port para instalar quaisquer bibliotecas delegadas que você precise, por exemplo:

sudo port install jpeg

Agora vamos compilar o ImageMagick:

Baixe a distribuição do código-fonte do ImageMagick e verifique a distribuição contra sua proveniência.

Descompacte e entre no diretório de nível superior do ImageMagick:

tar xvzf ImageMagick-7.1.2-25.tar.gz
cd ImageMagick-7.1.2-25

Configure o ImageMagick:

./configure --prefix=/opt --with-quantum-depth=16 \
  --disable-dependency-tracking --with-x=yes \
  --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
  --without-perl"

Compile o ImageMagick:

make

Instale o ImageMagick:

sudo make install

Para verificar sua instalação, digite

/opt/local/bin/identify -list font

para listar todas as fontes que o ImageMagick conhece.

Para testar a GUI do ImageMagick, em um novo shell, digite:

display -display :0

Instruções de compilação específicas para MinGW

Embora você possa baixar e instalar as bibliotecas delegadas você mesmo, muitas já estão disponíveis na distribuição GnuWin32. Baixe e instale quaisquer bibliotecas delegadas que você precise, como JPEG, PNG, TIFF, etc. Certifique-se de especificar os cabeçalhos de desenvolvimento ao instalar um pacote. Em seguida, digite,

tar jxvf ImageMagick-7.1.2-?.tar.bz2
cd ImageMagick-7.1.2-25
export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
./configure --without-perl
make
sudo make install

Lidando com problemas inesperados

É provável que o download, a configuração, a compilação e a instalação do ImageMagick tenham transcorrido perfeitamente como pretendido; no entanto, certos sistemas e ambientes podem fazer com que uma ou mais etapas falhem. Discutimos alguns problemas com os quais nos deparamos e como tomar medidas corretivas para garantir que você tenha uma versão funcional do ImageMagick

Problemas de compilação

Se a compilação reclamar de dependências ausentes (por exemplo, .deps/source.PLO), adicione --disable-dependency-tracking à sua linha de comando do configure.

Alguns sistemas podem falhar na ligação no momento da compilação devido a símbolos não resolvidos. Tente adicionar as LDFLAGS à linha de comando do configure:

configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'

Vínculos em tempo de execução do linker dinâmico

Em alguns sistemas, o ImageMagick pode não encontrar sua biblioteca compartilhada, libMagick.so. Tente executar o ldconfig com o caminho da biblioteca:

/sbin/ldconfig /usr/local/lib

Os sistemas Solaris e Linux têm o comando ldd, que é útil para rastrear quais bibliotecas o ImageMagick depende:

ldd `which convert`

Bibliotecas delegadas

Ocasionalmente, você pode receber estes avisos:

no decode delegate for this image format
no encode delegate for this image format

Esta exceção indica que uma biblioteca delegada externa ou seus cabeçalhos não estavam disponíveis quando o ImageMagick foi compilado. Para adicionar suporte ao formato de imagem, baixe e instale a biblioteca delegada necessária e seus arquivos de cabeçalho e reconfigure, recompile e reinstale o ImageMagick. Como exemplo, vamos adicionar suporte ao formato de imagem JPEG. Primeiro, instalamos os RPMS do JPEG:

yum install libjpeg libjpeg-devel

Agora reconfigure, recompile e reinstale o ImageMagick. Para verificar se o JPEG agora é devidamente suportado no ImageMagick, use este comando:

magick identify -list format

Você deverá ver um modo rw- associado à tag JPEG. Esse modo significa que a imagem pode ser lida ou escrita e só pode suportar uma imagem por arquivo de imagem.

PerlMagick

Se o PerlMagick falhar na ligação com uma mensagem semelhante a libperl.a is not found, execute novamente o configure com as opções --enable-shared ou --enable-shared --with-modules.