
Installer ImageMagick sur un serveur (avec support HEIC)
ImageMagick est un outil de conversion d'images très pratique, compatible avec les GIF animés. Il est parfaitement intégré à l'écosystème Drupal. Voici comment l'installer sur les systèmes modernes.
1. Installer les dépendances
Assurez-vous d'avoir libtool et gcc installés. Pour ce faire, utilisez la commande suivante :
Sur AlmaLinux :
sudo yum install libtool gcc-c++ gcc make git wget libjpeg-turbo-devel libpng-devel libtiff-devel libwebp-devel freetype-devel ghostscript libX11-devel libxml2-devel libwmf-devel zlib-devel
Sur Ubuntu :
sudo apt install libtool gcc-c++ gcc make git wget libjpeg-turbo-devel libpng-devel libtiff-devel libwebp-devel freetype-devel ghostscript libX11-devel libxml2-devel libwmf-devel zlib-devel
2. Téléchargez et extrayez une version de ImageMagick
Choisissez la version tar.gz
que vous souhaitez dans la liste suivante et copiez l'URL.
Téléchargez le package depuis le site web d'ImageMagick et extrayez-le dans le dossier ImageMagick-7
avec les commandes suivantes :
cd /usr/src/
mkdir imagemagick
cd imagemagick
wget https://download.imagemagick.org/archive/releases/ImageMagick-7.1.2-3.tar.gz
tar -xvzf ImageMagick-7.1.2-3.tar.gz
mv ImageMagick-7.1.2-3 ImageMagick-7
cd ImageMagick-7
3. Installer ImageMagick
Compilez et installez ImageMagick avec les commandes suivantes :
./configure
make
sudo make install
make check
sudo ldconfig
4. Valider l'installation
Exécutez la commande suivante pour vérifier qu'ImageMagick est désormais disponible :
which convert
On peut valider la liste des type de fichiers supportés avec la commande suivante :
magick -list format
Ou valider le support pour un type de fichier spécifique avec la commande suivante :
magick -list format | grep AVIF
5. (optionnel) Support HEIC
Le passage suivant décrit les étapes facultatives pour ajouter le support des fichiers HEIC sur AlmaLinux 8.9. Les commandes sont différentes sur Ubuntu et certains dépendances ne sont peut-être pas requises sur AlmaLinux > 8.9
Le support de types de fichiers supplémentaires apporte son lot de complications. Des librairies supplémentaires doivent être installées et compilées. Lors de l'installation de ImageMagick, celles-ci seront chargées si elle sont activées (ex.: --with-heic=yes
).
Si vous souhaitez supporter les fichiers .heic
et .avif
, les librairies libde265
et libheif
sont requises. Leur compilation requiert cmake
et une version de GCC (g++) récente, qui n'est pas incluse avec AlmaLinux 8.9.
Dépendances pour la compilation
Sur AlmaLinux 8.9, les exécutez les commandes suivantes pour installer les dépendances de compilation :
yum update
sudo dnf install gcc-toolset-14
sudo dnf install cmake
Il est important de noter que l'installation de GCC ne remplace pas le gcc
du système d'exploitation, ce qui est une bonne nouvelle d'un point de vue de stabilité. Toutefois, cela implique qu'il est nécessaire de spécifier le gcc à utiliser lorsque nous compilons.
Compilations de librairies libde265 et libheif
À l'aide des paramètres CC
, CCX
, CMAKE_C_COMPILER
et CMAKE_CXX_COMPILER
, la version du compilateur C++ à utiliser est spécifiée.
# Additional dependency
yum install x265 x265-devel
# libde265
cd /usr/src/
sudo git clone https://github.com/strukturag/libde265.git --branch v1.0.16
cd libde265/
sudo ./autogen.sh
sudo ./configure
sudo make CC=/opt/rh/gcc-toolset-14/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-14/root/usr/bin/g++
sudo make install CC=/opt/rh/gcc-toolset-14/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-14/root/usr/bin/g++
# libheif
cd /usr/src/
sudo git clone https://github.com/strukturag/libheif.git --branch v1.20.2
cd libheif/
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_C_COMPILER=/opt/rh/gcc-toolset-14/root/usr/bin/gcc -D CMAKE_CXX_COMPILER=/opt/rh/gcc-toolset-14/root/usr/bin/g++ --preset=release ..
sudo make CC=/opt/rh/gcc-toolset-14/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-14/root/usr/bin/g++
sudo make install CC=/opt/rh/gcc-toolset-14/root/usr/bin/gcc CXX=/opt/rh/gcc-toolset-14/root/usr/bin/g++
sudo ldconfig /usr/lib64/
CMAKE_INSTALL_PREFIX : en spécifiant CMAKE_INSTALL_PREFIX=/usr
, on s'assure que la librairie est installée dans /usr/lib64
plutôt que dans /usr/local/lib64
. Cela permet la découverte de la libraire plus facilement comme ce dossier est dans les configuration de pkg-config
par défaut, qui est utilisé par ImageMagick. On peut voir les dossiers recherchés en utilisant la commande pkg-config --variable pc_path pkg-config
.
Puis, on recompile ImageMagick avec les libraries additionnelles :
cd /usr/src/imagemagick/ImageMagick-7
./configure --with-heic=yes --with-jpeg=yes --with-png=yes --with-tiff=yes --with-webp=yes
make
sudo make install
Les instructions précédentes sont basées sur l'article Medium - How to Install ImageMagick with HEIC Support on CentOS Linux (and Other Linux Distributions).