ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`
← Retour
linux

ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`

Cédrix · 28/12/2025

Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande convert historique est là, mais elle s'appelle convert-im6. Et la commande moderne magick, présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.

Le sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que convert entrerait en conflit avec un binaire de util-linux — c'est un mythe). Voilà ce qui se passe réellement.

Un peu de contexte sur ImageMagick

ImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.

Historiquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : convert pour la conversion, identify pour lire les métadonnées, mogrify pour le traitement par lot, composite pour combiner des images, montage pour les planches. C'est l'architecture d'ImageMagick 6, la version qui a régné en maître pendant une bonne quinzaine d'années.

Depuis 2016, ImageMagick 7 est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : magick. Les anciennes commandes deviennent des sous-commandes (magick convert, magick identify, etc.), même si pour la rétrocompatibilité un binaire magick peut continuer à se comporter comme convert quand on l'appelle avec une syntaxe d'IM6.

Pourquoi le suffixe -im6 sur Debian

C'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec util-linux — je l'ai vérifié, aucun paquet système ne fournit de commande convert. Tu peux le vérifier toi-même : dpkg -S /usr/bin/convert ne renvoie rien qui vienne de util-linux.

La vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir packager IM6 et IM7 en parallèle dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (convert, identify, mogrify…) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.

La solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :

  • les outils d'IM6 deviennent convert-im6.q16, identify-im6.q16, etc.
  • les outils d'IM7 deviennent magick-im7.q16 et compagnie

Le .q16 indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le -im6 / -im7 indique la version d'ImageMagick. Les noms classiques (convert, magick) ne sont alors que des symlinks gérés par update-alternatives, qui pointent vers la version active. C'est le même mécanisme que pour java, editor, ou python à une époque.

Ce qui change entre Debian 11, 12 et 13

C'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.

Sur Debian 11 (bullseye) et 12 (bookworm), le paquet imagemagick installe IM6 (version 6.9.11.60). Tu n'as que convert-im6 et ses copains, et magick n'existe pas dans les dépôts officiels (le paquet imagemagick-7.q16 existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.

Sur Debian 13 (trixie), sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande magick est disponible, et convert est désormais un symlink vers magick-im7.q16. Tu peux le vérifier :

$ readlink -f /usr/bin/convert
/usr/bin/magick-im7.q16

Autrement dit, sur Trixie, si tu écris convert image.jpg image.png, tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (magick [INPUT-OPTIONS] INPUT [OUTPUT-OPTIONS] OUTPUT), donc certains scripts anciens peuvent grogner.

Correspondance entre les deux versions

ImageMagick 6 (Debian 11/12) ImageMagick 7 (Debian 13)
convert-im6 magick
identify-im6 magick identify
mogrify-im6 magick mogrify
composite-im6 magick composite

Pour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :

# Debian 11/12
convert-im6 photo.jpg -resize 1600x1600 photo_reduite.jpg

# Debian 13
magick photo.jpg -resize 1600x1600 photo_reduite.jpg

Faut-il s'inquiéter sur un serveur en production ?

Si tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le -im6 dans le nom du binaire est juste du marquage, pas une dépréciation.

Si tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :

  • l'ordre des options qui devient plus strict ;
  • quelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;
  • le fichier policy.xml qui a déménagé : /etc/ImageMagick-6/ devient /etc/ImageMagick-7/. Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.

Pour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon pecl install imagick échoue. Sur Trixie, c'est IM7 qu'il faut lier.

En pratique

Sur Debian 11/12, utilise convert-im6, identify-im6, etc. C'est la convention locale, pas une version dégradée. Si tu veux magick malgré tout, tu peux installer le paquet imagemagick-7.q16 (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.

Sur Debian 13, utilise magick directement. La commande convert reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.

Et dans tous les cas, évite les alias globaux qui réécrivent convert : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.