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.