⚠️ Este es un sitio de traducción no oficial, sin relación con ImageMagick Studio LLC. Para información autorizada, consulte la página original (https://imagemagick.org/advanced-linux-installation/).

Instalación avanzada desde el código fuente en Linux

Descarga y descompresión • Configuración • Compilación • Instalación • Instrucciones de compilación específicas de Linux • Instrucciones de compilación específicas de macOS • Instrucciones de compilación específicas de MinGW • Cómo afrontar problemas inesperados

Es posible que no quiera complicarse con la instalación avanzada en Linux o sistemas tipo Linux. En tal caso, también tiene la opción de instalar una versión binaria precompilada o, si aun así prefiere instalar desde el código fuente sin tanto lío, consulte las sencillas instrucciones de instalación desde el código fuente. Sin embargo, si quiere personalizar la configuración e instalación de ImageMagick en Linux o sistemas tipo Linux, comencemos.

Descarga y descompresión

ImageMagick se compila en una variedad de sistemas operativos Linux y similares a Linux, incluidos Linux, Solaris, FreeBSD, macOS y otros. Se requiere un compilador y, afortunadamente, casi todos los sistemas Linux modernos disponen de uno. Descargue ImageMagick-7.1.2-30.7z desde GitHub.

Descomprima la distribución con este comando:

$ tar xvzf ImageMagick.tar.gz

Ahora que tiene descomprimida la distribución del código fuente de ImageMagick para Linux/Linux, vamos a configurarla.

Configuración

El script configure examina su entorno y decide qué puede reunir para conseguir compilar e instalar ImageMagick en su sistema. Esto incluye encontrar un compilador, dónde están situados los archivos de cabecera del compilador (p. ej. stdlib.h) y si hay alguna biblioteca delegada disponible para que ImageMagick la use (p. ej. JPEG, PNG, TIFF, etc.). Si está dispuesto a aceptar las opciones predeterminadas de configure y a compilar desde dentro del directorio del código fuente, basta con escribir:

$ cd ImageMagick-7.1.2-30

./configure

Observe la salida del script configure para verificar que encuentra todo lo que cree que debería. Preste especial atención a las últimas líneas de la salida del script. Por ejemplo, aquí tiene un informe reciente de nuestro 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

Puede influir en la elección del compilador, los indicadores de compilación o las bibliotecas del script configure estableciendo valores iniciales para las variables en la línea de comandos de configure. Estas incluyen, entre otras:

CC
Nombre del compilador de C (p. ej. cc -Xa) a usar.
CXX
Nombre del compilador de C++ a usar (p. ej. CC).
CFLAGS
Indicadores del compilador (p. ej. -g -O2) para compilar código C.
CXXFLAGS
Indicadores del compilador (p. ej. -g -O2) para compilar código C++.
CPPFLAGS
Rutas de inclusión (p. ej. -I/usr/local) donde buscar archivos de cabecera.
LDFLAGS
Rutas de biblioteca (p. ej. -L/usr/local) donde buscar bibliotecas. Los sistemas que admiten la noción de ruta de ejecución de bibliotecas (run-path) pueden requerir un argumento adicional para encontrar bibliotecas compartidas en tiempo de ejecución. Por ejemplo, el enlazador de Solaris requiere un argumento de la forma -R/path. Algunos sistemas Linux funcionarán con -rpath /usr/local/lib, mientras que otros sistemas Linux cuyo gcc no pasa -rpath al enlazador requieren un argumento de la forma -Wl,-rpath,/usr/local/lib. [N. del T.: el original omite el punto tras libraries y escribe who's por whose]
LIBS
Bibliotecas adicionales (p. ej. -l/usr/local/lib) necesarias para enlazar.

Aquí tiene un ejemplo de cómo establecer variables de configure desde la línea de comandos:

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

Cualquier variable (p. ej. CPPFLAGS o LDFLAGS) que requiera una ruta de directorio debe especificar una ruta absoluta en lugar de una ruta relativa.

Configure normalmente puede encontrar los archivos de inclusión y biblioteca de X automágicamente, pero si no lo consigue, puede usar las opciones --x-includes=path y --x-libraries=path para especificar sus ubicaciones.

El script configure proporciona numerosas opciones específicas de ImageMagick. Al deshabilitar una opción, --disable-something equivale a especificar --enable-something=no, y --without-something equivale a --with-something=no. Las opciones de configure son las siguientes (ejecute configure --help para ver todas las opciones).

Las opciones de ImageMagick representan funcionalidades que se habilitan o deshabilitan, o paquetes que se incluyen en la compilación. Cuando una funcionalidad se habilita (mediante --enable-something), activa código ya presente en ImageMagick. Cuando un paquete se habilita (mediante --with-something), el script configure lo buscará y, si está correctamente instalado y listo para usar (el compilador encuentra las cabeceras y las bibliotecas compiladas), se incluirá en la compilación. El script configure se entrega con todas las funcionalidades deshabilitadas y todos los paquetes habilitados. En general, la única razón para deshabilitar un paquete es que el paquete exista pero no sea adecuado para la compilación (quizá una versión antigua o no compilado con los indicadores de compilación correctos).

Estas son las funcionalidades opcionales que puede configurar:

--enable-shared compila las bibliotecas compartidas y el soporte para cargar módulos de codificadores y procesos. Las bibliotecas compartidas son preferibles porque permiten que los programas compartan código común, lo que hace que cada programa sea mucho más pequeño. Además, las bibliotecas compartidas son necesarias para que PerlMagick sea cargado dinámicamente por un PERL instalado (de lo contrario debe instalarse un PERL (PerlMagick) adicional).

ImageMagick compilado con delegados (consulte los COMPLEMENTOS DE MAGICK más abajo) puede plantear desafíos adicionales. Si ImageMagick se compila usando bibliotecas estáticas (lo predeterminado sin --enable-shared), entonces las bibliotecas delegadas pueden compilarse como bibliotecas estáticas o compartidas. Sin embargo, si ImageMagick se compila usando bibliotecas compartidas, entonces todas las bibliotecas delegadas también deben compilarse como bibliotecas compartidas. Las bibliotecas estáticas suelen tener la extensión .a, mientras que las bibliotecas compartidas suelen tener extensiones como .so, .sa o .dll. El código de las bibliotecas compartidas normalmente debe compilarse usando una opción especial del compilador para producir Código Independiente de la Posición (PIC). La única vez que esto no es necesario es si la plataforma compila el código como PIC de forma predeterminada.

Los indicadores de compilación PIC difieren de un proveedor a otro (el de gcc es -fPIC). Sin embargo, debe compilar todo el código fuente de bibliotecas compartidas con el mismo indicador (para gcc use -fPIC en lugar de -fpic). Mientras que las bibliotecas estáticas se crean normalmente con una herramienta de archivo como ar, las bibliotecas compartidas se compilan usando opciones especiales del enlazador o del compilador (p. ej. -shared para gcc).

Si no se especifica --enable-shared, se compila un nuevo intérprete PERL (PerlMagick) que se enlaza estáticamente con la extensión PerlMagick. Este nuevo intérprete se instala en el mismo directorio que las utilidades de ImageMagick. Si se especifica --enable-shared, la extensión PerlMagick se compila como un objeto cargable dinámicamente que se carga en su intérprete PERL actual en tiempo de ejecución. El uso de extensiones cargadas dinámicamente es preferible al de extensiones enlazadas estáticamente, así que use --enable-shared si es posible (tenga en cuenta que ¡todas las bibliotecas usadas con ImageMagick deben ser bibliotecas compartidas!).
--disable-static las bibliotecas de archivo estáticas (con extensión .a) no se compilan. Si está compilando bibliotecas compartidas, tiene poco valor compilar bibliotecas estáticas. Las razones para compilar bibliotecas estáticas incluyen: 1) pueden ser más fáciles de depurar; 2) los clientes no tienen dependencias externas (es decir, libMagick.so); 3) compilar versiones PIC de las bibliotecas delegadas puede requerir experiencia y esfuerzo adicionales; 4) no puede compilar bibliotecas compartidas.
--disable-installed deshabilita la compilación de un ImageMagick instalado (habilitado de forma predeterminada).

De forma predeterminada, la compilación de ImageMagick se configura para instalarse formalmente en un árbol de directorios. Esta es la forma más segura y fiable de instalar ImageMagick. Use esta opción para configurar ImageMagick de modo que no use rutas codificadas de forma fija y localice los archivos de soporte calculando una ruta de desplazamiento desde el ejecutable (o desde la ubicación especificada por la variable de entorno MAGICK_HOME) [N. del T.: en el original falta el paréntesis de cierre]. La configuración no instalada es ideal para distribuciones binarias que se espera que se extraigan y ejecuten en cualquier ubicación.
--enable-ccmalloc habilita el soporte de depuración de memoria 'ccmalloc' (deshabilitado de forma predeterminada).
--enable-prof habilita el soporte de generación de perfiles 'prof' (deshabilitado de forma predeterminada).
--enable-gprof habilita el soporte de generación de perfiles 'gprof' (deshabilitado de forma predeterminada).
--enable-gcov habilita el soporte de generación de perfiles 'gcov' (deshabilitado de forma predeterminada).
--disable-openmp deshabilita OpenMP (habilitado de forma predeterminada).

Ciertos algoritmos de ImageMagick, por ejemplo la convolución, pueden lograr una aceleración significativa con la ayuda de la API OpenMP cuando se ejecutan en procesadores modernos de doble y cuádruple núcleo.
--disable-largefile deshabilita el soporte para desplazamientos de archivo grandes (de 64 bits).

De forma predeterminada, ImageMagick se compila con soporte para archivos grandes (> 2 GB en una CPU de 32 bits) si el sistema operativo admite archivos grandes. Algunas aplicaciones que usan la biblioteca de ImageMagick también pueden requerir soporte para archivos grandes. Al deshabilitar el soporte para archivos grandes mediante --disable-largefile, las aplicaciones dependientes no requieren opciones de compilación especiales para archivos grandes a fin de usar la biblioteca.

Estos son los paquetes opcionales que puede configurar:

--with-quantum-depth número de bits en un cuanto de píxel (predeterminado 16).

Use esta opción para especificar el número de bits a usar por cuanto de píxel (el tamaño de los componentes de píxel rojo, verde, azul y alfa). Por ejemplo, --with-quantum-depth=8 compila ImageMagick usando cuantos de 8 bits. La mayoría de los adaptadores de pantalla de ordenador usan cuantos de 8 bits. Los argumentos admitidos actualmente son 8, 16 o 32. Recomendamos el valor predeterminado de 16 porque algunos formatos de imagen admiten 16 bits por píxel. No obstante, esta opción es importante para determinar el rendimiento global en tiempo de ejecución de ImageMagick.

El número de bits de un cuanto determina cuántos valores puede contener. Cada nivel de cuanto admite 256 veces más valores que el nivel anterior. La siguiente tabla muestra el rango disponible para diversos tamaños de cuanto.

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

Los cuantos de píxel más grandes pueden hacer que ImageMagick se ejecute más lentamente y requiera más memoria. Por ejemplo, usar cuantos de píxel de dieciséis bits puede hacer que ImageMagick se ejecute entre un 15 % y un 50 % más lento (y consuma el doble de memoria) que cuando se compila para admitir cuantos de píxel de ocho bits.

La cantidad de memoria virtual que consume una imagen puede calcularse mediante la ecuación (5 * Quantum Depth * Rows * Columns) / 8. Esto es una consideración importante cuando los recursos son limitados, sobre todo porque el procesamiento de una imagen puede requerir que varias imágenes estén en memoria al mismo tiempo. La siguiente tabla muestra los valores de consumo de memoria para una imagen de 1024x768:

Quantum Depth   Virtual Memory
     8               3MB
    16               8MB
    32              15MB
--enable-hdri representar con precisión el amplio rango de niveles de intensidad.
--enable-osx-universal-binary compila un binario universal en OS X.
--without-modules deshabilita el soporte para módulos cargables dinámicamente.

Los codificadores de imagen y los módulos de proceso se compilan como módulos cargables que se instalan en el directorio [prefix]/lib/ImageMagick-X.X.X/modules-QN (donde 'N' equivale a 8, 16 o 32 según la profundidad de cuanto) en los subdirectorios coders y filters respectivamente. La opción de compilación de módulos solo está disponible junto con --enable-shared. Si no se especifica también --enable-shared, el soporte para compilar módulos queda deshabilitado. Tenga en cuenta que si se especifican --enable-shared y --disable-modules, el cargador de módulos está activo (lo que permite extender un ImageMagick instalado simplemente copiando un módulo en su lugar) pero ImageMagick en sí no se compila usando módulos.
--with-cache establece el umbral de la caché de píxeles (predeterminado a la memoria disponible).

Especifique un umbral de caché de píxeles de imagen distinto con esta opción. Esto establece la cantidad máxima de memoria del montón que ImageMagick puede consumir antes de cambiar al uso de archivos temporales mapeados en memoria para almacenar los datos de píxel en bruto.
--without-threads deshabilita el soporte de hilos.

De forma predeterminada, la biblioteca de ImageMagick se compila con soporte multihilo. Si esto no es deseable, especifique --without-threads.
--with-frozenpaths habilita las rutas de delegados congeladas.

Normalmente, los nombres de programas externos se sustituyen en el archivo de configuración delegates.xml sin rutas completas. Especifique esta opción para habilitar el guardado de rutas completas a los programas usando las ubicaciones determinadas por configure. Esto es útil para entornos donde los programas se almacenan bajo múltiples rutas y los usuarios pueden usar configuraciones de PATH diferentes a las de quien compila ImageMagick.
--without-magick-plus-plus deshabilita la compilación/instalación de Magick++.

Deshabilita la compilación de Magick++, la interfaz de programación de aplicaciones C++ de ImageMagick. Se requiere un compilador de C++ adecuado para compilar Magick++. Especifique la variable de configure CXX para seleccionar el compilador de C++ a usar (predeterminado g++), y CXXFLAGS para seleccionar los indicadores de optimización y depuración deseados del compilador (predeterminado -g -O2). Los compiladores de C++ antiguos normalmente serán rechazados por las pruebas de configure, así que especificar esta opción solo debería ser necesario si Magick++ no se compila.
--without-perl deshabilita la compilación/instalación de PerlMagick, o

De forma predeterminada, PerlMagick se compila e instala cómodamente como parte del proceso normal configure, make, sudo make install de ImageMagick. Cuando se especifica --without-perl, primero debe instalar ImageMagick, descargar la distribución del código fuente de PerlMagick, compilar y, por último, instalar PerlMagick. Tenga en cuenta que PerlMagick se configura incluso si se especifica --without-perl. Si se proporciona el argumento --with-perl=/path/to/perl, se tomará /path/to/perl [N. del T.: el original escribe /../path/to/perl] como el intérprete PERL a usar. Esto es importante en caso de que el ejecutable perl de su PATH no sea PERL5, o no sea el PERL que quiere usar. [N. del T.: el original escribe is be taken por is taken y This important por This is important]
--with-perl=PERL usa el binario de Perl especificado para configurar PerlMagick.
--with-perl-options=OPTIONS opciones a pasar en la línea de comandos al generar el Makefile de PerlMagick a partir de Makefile.PL.

El módulo PerlMagick se instala normalmente usando el PREFIX de instalación del intérprete de Perl, en lugar del de ImageMagick. Si el prefijo de instalación de ImageMagick no es el mismo que el PREFIX de PERL, puede que descubra que el paso sudo make install de PerlMagick intenta instalar en un árbol de directorios sobre el que no tiene permisos de escritura. Esto es habitual cuando PERL se entrega con el sistema operativo o en los servidores web de los proveedores de servicios de Internet (ISP). Si quiere que PerlMagick se instale en otro lugar, proporcione una opción PREFIX al paso de configuración de PERL mediante "--with-perl-options=PREFIX=/some/place". Otras opciones aceptadas por MakeMaker son 'LIB', 'LIBPERL_A', 'LINKTYPE' y 'OPTIMIZE'. Consulte la página de manual ExtUtils::MakeMaker(3) para más información sobre la configuración de extensiones de PERL.
--without-bzlib deshabilita el soporte de BZLIB.
--without-dps deshabilita el soporte de Display Postscript.
--with-fpx habilita el soporte de FlashPIX.
--without-freetype deshabilita el soporte de TrueType.
--with-gslib habilita el soporte de la biblioteca Ghostscript.
--without-jbig deshabilita el soporte de JBIG.
--without-jpeg deshabilita el soporte de JPEG.
--without-jp2 deshabilita el soporte de JPEG v2.
--without-lcms deshabilita el soporte de LCMS.
--without-lzma deshabilita el soporte de LZMA.
--without-png deshabilita el soporte de PNG.
--without-tiff deshabilita el soporte de TIFF.
--without-wmf deshabilita el soporte de WMF.
--with-fontpath antepone a la ruta de búsqueda de fuentes predeterminada.
--with-gs-font-dir directorio que contiene las fuentes de Ghostscript.

Especifique el directorio que contiene los archivos de fuentes Type 1 de Ghostscript Postscript (p. ej. n022003l.pfb) para que puedan renderizarse usando la biblioteca FreeType. Si los archivos de fuentes se instalan usando las rutas de instalación predeterminadas de Ghostscript (${prefix}/share/ghostscript/fonts), configure debería descubrirlos automágicamente y no es necesario especificar esta opción. Especifique esta opción si las fuentes de Ghostscript no se localizan automágicamente, o si es necesario anular la ubicación.
--with-windows-font-dir directorio que contiene las fuentes de MS-Windows.

Especifique el directorio que contiene fuentes compatibles con MS-Windows. Esto no es necesario cuando ImageMagick se ejecuta en MS-Windows.
--without-xml deshabilita el soporte de XML.
--without-zlib deshabilita el soporte de ZLIB.
--without-x no usa el X Window System.

De forma predeterminada, ImageMagick usa las bibliotecas delegadas de X11 si están disponibles. Cuando se especifica --without-x, se deshabilita el uso de X11. Las subórdenes display, animate e import no se incluyen. Las subórdenes restantes tienen una funcionalidad reducida, como la falta de acceso a las fuentes de X11 (considere usar fuentes Postscript o TrueType en su lugar).
--with-share-path=DIR ruta alternativa al directorio share (predeterminado share/ImageMagick).
--with-libstdc=DIR usa libstdc++ en DIR (para GNU C++).

Aunque configure está diseñado para facilitar la instalación de ImageMagick, a menudo descubre problemas que de otro modo se encontrarían más adelante al compilar ImageMagick. El script configure prueba las cabeceras y bibliotecas ejecutando el compilador (CC) con los indicadores de compilación especificados (CFLAGS), los indicadores del preprocesador (CPPFLAGS) y los indicadores del enlazador (LDFLAGS). Cualquier error se registra en el archivo config.log. Si configure no consigue descubrir una cabecera o biblioteca, revise este archivo de registro para determinar por qué; no obstante, tenga en cuenta que *los errores en config.log son normales* porque configure funciona probando algo y viendo si falla. Un error en config.log solo es un problema si la prueba debería haber pasado en su sistema.

Las causas comunes de los fallos de configure son: 1) una cabecera delegada no está en la ruta de inclusión de cabeceras (opción -I de CPPFLAGS); 2) una biblioteca delegada no está en la ruta de búsqueda/ejecución del enlazador (opción -L/-R de LDFLAGS); 3) a una biblioteca delegada le falta una función (¿versión antigua?); o 4) el entorno de compilación es defectuoso.

Si se han probado todas las acciones correctivas razonables y el problema parece deberse a un fallo en el script configure, envíe un informe de error al Foro de soporte de defectos de ImageMagick. Todos los informes de error deben contener el tipo de sistema operativo (según informa uname -a) y el compilador/versión del compilador. Una copia de la salida del script configure y/o la parte relevante del archivo config.log puede ser valiosa para encontrar el problema. Si publica partes de config.log, envíe también un registro de la salida de configure y una descripción de lo que esperaba ver (y por qué) para que el fallo que observa pueda identificarse y resolverse.

ImageMagick ya está configurado y listo para compilar.

Compilación

Una vez configurado ImageMagick, estos objetivos de compilación estándar están disponibles desde los archivos make generados:

make
Compila ImageMagick.
sudo make install
Instala ImageMagick.
make check
Ejecuta las pruebas usando el ImageMagick instalado (primero debe hacerse sudo make install). Ghostscript y Freetype son requisitos previos; de lo contrario, ciertas pruebas unitarias que renderizan texto y los formatos EPS, PS y PDF probablemente fallarán. Estas pruebas unitarias requieren la política de seguridad open para pasar.
make clean
Elimina todo lo que make creó en el directorio de compilación.
make distclean
Elimina todo lo que configure y make crearon en el directorio de compilación. Esto es útil si quiere empezar de cero.
make uninstall
Elimina del sistema todos los archivos que están (o estarían) instalados por sudo make install usando la configuración actual. Tenga en cuenta que este objetivo es imperfecto para PerlMagick, ya que Perl ya no admite un objetivo de desinstalación.

En la mayoría de los casos simplemente querrá compilar ImageMagick con este comando:

make

Una vez compilado, opcionalmente puede instalar ImageMagick en su sistema como se explica más abajo.

Instalación

Ahora que ImageMagick está configurado y compilado, escriba:

make install

para instalarlo.

De forma predeterminada, ImageMagick instala los binarios en /usr/local/bin, las bibliotecas en /usr/local/lib, los archivos de cabecera en /usr/local/include y la documentación en /usr/local/share. Puede especificar un prefijo de instalación alternativo distinto de /usr/local dándole a configure la opción --prefix=PATH [N. del T.: el original escribe todas las rutas de este párrafo como /../usr/local…]. Esto es valioso en caso de que no tenga privilegios para instalar bajo las rutas predeterminadas o si quiere instalar en los directorios del sistema en su lugar.

Para confirmar que la instalación de la distribución de ImageMagick fue correcta, asegúrese de que el directorio de instalación está en su ruta de búsqueda de ejecutables y escriba:

magick logo: logo.gif
identify logo.gif

El logo de ImageMagick se muestra en su pantalla X11.

Para verificar la configuración de compilación de ImageMagick, escriba:

$ magick identify -list configure

Para listar qué formatos de imagen son compatibles, escriba:

$ magick identify -list format

Para una prueba más completa, puede ejecutar el conjunto de pruebas de ImageMagick escribiendo:

make check

Ghostscript es un requisito previo; de lo contrario, las pruebas de EPS, PS y PDF fallarán. Tenga en cuenta que, debido a las diferencias entre el entorno del desarrollador y el suyo, es posible que algunas pruebas fallen aunque los resultados sean correctos. Las diferencias entre el entorno del desarrollador y el suyo pueden incluir el compilador, el tipo de CPU y las versiones de las bibliotecas usadas. Los desarrolladores de ImageMagick usan la versión actual de todas las bibliotecas dependientes.

Instrucciones de compilación específicas de Linux

Descargue ImageMagick.src.rpm desde imagemagick.org o sus réplicas.

Compile ImageMagick con este comando:

rpmbuild --rebuild ImageMagick.src.rpm

Tras la compilación, localice la carpeta RPMS e instale la distribución RPM binaria de ImageMagick:

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

Instrucciones de compilación específicas de macOS

Realice estos pasos como administrador o con el comando sudo:

Instale MacPorts. Descargue e instale MacPorts y escriba los siguientes comandos:

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

Esto instala muchas de las bibliotecas delegadas que ImageMagick utilizará, como JPEG y FreeType.

Instale el último Xcode de Apple.

Use el comando port para instalar cualquier biblioteca delegada que necesite, por ejemplo:

sudo port install jpeg

Ahora vamos a compilar ImageMagick:

Descargue la distribución del código fuente de ImageMagick y verifique la distribución frente a su procedencia.

Descomprima y entre en el directorio de nivel superior de ImageMagick:

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

Configure 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 ImageMagick:

make

Instale ImageMagick:

sudo make install

Para verificar su instalación, escriba

/opt/local/bin/identify -list font

para listar todas las fuentes que ImageMagick conoce.

Para probar la interfaz gráfica de ImageMagick, en una nueva shell, escriba:

display -display :0

Instrucciones de compilación específicas de MinGW

Aunque puede descargar e instalar las bibliotecas delegadas usted mismo, muchas ya están disponibles en la distribución GnuWin32. Descargue e instale las bibliotecas delegadas que necesite, como JPEG, PNG, TIFF, etc. Asegúrese de especificar las cabeceras de desarrollo cuando instale un paquete. A continuación, escriba:

tar jxvf ImageMagick-7.1.2-30-?.tar.bz2
cd ImageMagick-7.1.2-30

export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
./configure --without-perl
make
sudo make install

Cómo afrontar problemas inesperados

Lo más probable es que la descarga, configuración, compilación e instalación de ImageMagick hayan transcurrido sin fallos, como está previsto; sin embargo, ciertos sistemas y entornos pueden provocar que uno o más pasos fallen. Comentamos algunos de los problemas con los que nos hemos topado y cómo tomar medidas correctivas para asegurarse de tener una versión funcional de ImageMagick.

Problemas de compilación

Si la compilación se queja de dependencias faltantes (p. ej. .deps/source.PLO), añada --disable-dependency-tracking a su línea de comandos de configure.

Algunos sistemas pueden no conseguir enlazar en tiempo de compilación debido a símbolos no resueltos. Pruebe a añadir los LDFLAGS a la línea de comandos de configure:

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

Vinculaciones en tiempo de ejecución del enlazador dinámico

En algunos sistemas, puede que ImageMagick no encuentre su biblioteca compartida, libMagick.so. Pruebe a ejecutar ldconfig con la ruta de la biblioteca:

/sbin/ldconfig /usr/local/lib

Los sistemas Solaris y Linux disponen del comando ldd, que es útil para rastrear de qué bibliotecas depende ImageMagick:

ldd `which convert`

Bibliotecas delegadas

En ocasiones puede recibir estas advertencias:

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

Esta excepción indica que una biblioteca delegada externa o sus cabeceras no estaban disponibles cuando se compiló ImageMagick. Para añadir soporte para el formato de imagen, descargue e instale la biblioteca delegada requerida y sus archivos de cabecera y vuelva a configurar, recompilar y reinstalar ImageMagick. Como ejemplo, vamos a añadir soporte para el formato de imagen JPEG. Primero instalamos los RPMS de JPEG:

yum install libjpeg libjpeg-devel

Ahora volvemos a configurar, recompilar y reinstalar ImageMagick. Para verificar que JPEG ya está correctamente soportado dentro de ImageMagick, use este comando:

$ magick identify -list format

Debería ver un modo de rw- asociado a la etiqueta JPEG. Este modo significa que la imagen puede leerse o escribirse y solo puede admitir una imagen por archivo de imagen.

PerlMagick

Si PerlMagick no consigue enlazar con un mensaje similar a libperl.a is not found, vuelva a ejecutar configure con las opciones --enable-shared o --enable-shared --with-modules.