Comment installer la bibliothèque GD

Gestion des dépendances sous Linux et Mac OS

djibril

Cet article vous explique comment installer le module GD pour Perl. Il a également pour but de surtout vous expliquer comment installer la bibliothèque GD sous Linux et Mac OS car cela nécessite l'installation de certaines dépendances non évidentes à installer sur un serveur (libpng, libgd…). Commentez

- Titre : Comment installer la bibliothèque GD

- Auteur : djibril

- Parution : 26 mars 2012

- Mise à jour : 16 juin 2022

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2022 djibril. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Introduction

- 2. Installation de GD sous Windows

- 3. Installation de GD sous Linux ou Mac OS

- 3-1. Prérequis

- 3-2. gd-devel

- 3-3. zlib

- 3-4. libpng

- 3-5. Libjpeg

- 3-6. freetype2

- 3-7. libgd

- 3-8. GD

- 3-9. Résumé

- 4. Conclusion

- 5. Remerciements

1 - Introduction

Vous avez sûrement déjà été confronté à devoir installer GD pour PHP, Perl, Ruby… Pour certains langages comme PHP, la bibliothèque GD est déjà incorporée, mais pour Perl, Ruby… ce n'est pas le cas : des dépendances doivent être installées.

Pour exemple, essayons d'installer le module Perl GD sous Linux ou Mac OS en root sur un serveur n'ayant pas le nécessaire, voici le résultat que l'on obtient :

root#perl -MCPAN -e "install GD"
**UNRECOVERABLE ERROR**
Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.
If you want to try to compile anyway, please rerun this script with the option --ignore_missing_gd.
Warning: No success on command[/usr/bin/perl5.10.0 Makefile.PL]
Warning (usually harmless): 'YAML' not installed, will not store persistent state
LDS/GD-2.46.tar.gz
/usr/bin/perl5.10.0 Makefile.PL -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Could not read '/root/.cpan/build/GD-2.46-fMf3Dd/META.yml'. Falling back to other methods to determine prerequisites

On constate que l'installation du module est impossible car des dépendances sont nécessaires. Nous verrons dans cet article comment intégrer proprement.

2 - Installation de GD sous Windows

Pour installer le module GD sous Windows, il suffit de procéder comme pour tout module Perl en recourant à l'utilitaire ppm(1). Il vous importera proprement tout ce qu'il faut. La commande à lancer est la suivante :

ppm install GD

Pour en savoir plus sur l'installation des modules Perl, lisez cette documentation : Installation des modules Perl CPAN.

3 - Installation de GD sous Linux ou Mac OS

Comme je vous l'ai montré dans l'introduction de cet article, sous Linux et Mac OS, l'installation de GD ne fonctionnera probablement pas car il vous manquera certaines dépendances. À moins que vous utilisiez ActivePerl, ce qui est rare mais possible sous Linux/Unix, il va falloir compiler vous-même toutes les dépendances nécessaires. Pas de panique, cet article vous présentera toutes les commandes à lancer pour installer GD. Il va donc falloir recourir aux bibliothèques zlib, libjpeg, libpng, freetype2 et libgd. Puis nous installerons GD par la suite pour Perl.

Pour chaque bibliothèque, je vous mettrai le lien vers le site Web de cette dernière puis un lien vers les sources disponibles dans cet article, car il arrive que les liens Web deviennent obsolètes après plusieurs mois ou années. Pour pallier cela, les sources ont été mises sur le domaine de developpez.com.

3-1 - Prérequis

Sans vouloir insister car ce n'est pas le but de cet article, toute installation et compilation sur une machine sous Linux/Mac OS nécessite d'avoir au préalable les utilitaires gcc, make… installés. Il vous faut également wget ou curl.

Pour savoir si ces utilitaires sont installés, lancez les commandes :

# whereis curl
curl: /usr/bin/curl /usr/bin/X11/curl /usr/share/man/man1/curl.1.gz

# whereis wget
wget: /usr/bin/wget /usr/bin/X11/wget /usr/share/man/man1/wget.1.gz

# whereis toto
toto:

N.B. En fonction de votre distribution Linux, utilisez prioritairement les commandes dédiées : apt-get sous Debian, yum sous RedHat…

3-2 - gd-devel

Sous RedHat, l’installation de ce package permet de résoudre le souci d’installation du module GD :

gd-level

yum install gd-devel

Tous les paquets nécessaires à l’installation du module GD seront installés.

Essayez ensuite l’installation du module GD, le souci sera peut-être réglé.

3-3 - zlib

zlib est une bibliothèque logicielle de compression de données. Elle implémente l'algorithme de compression deflate et peut créer des fichiers au format gzip.

Nous pouvons trouver toutes les versions de zlib sur le site officiel : http://www.zlib.net. À ce jour, la version la plus récente est la version 1.2.8. Une copie est disponible ici.

Voici les commandes d'installation sous root, de préférence dans le répertoire temporaire de notre système.

Zlib avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget  http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/zlib-1.2.8.tar.gz
tar -xzvf ./zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

zlib avec curl

mkdir -p /tmp/GD
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/zlib-1.2.8.tar.gz
tar -xzvf ./zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

3-4 - libpng

Le paquet libpng contient des bibliothèques utilisées par d'autres programmes pour lire et écrire des fichiers PNG.

Nous pouvons trouver toutes les versions de libpng sur le site : http://sourceforge.net/projects/libpng/. Une copie est disponible ici.

libpng avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libpng-1.6.2.tar.gz
tar -xzvf ./libpng-1.6.2.tar.gz
cd libpng-1.6.2
./configure
make
make install

libpng avec curl

mkdir -p /tmp/GD
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libpng-1.6.2.tar.gz
tar -xzvf ./libpng-1.6.2.tar.gz
cd libpng-1.6.2
./configure
make
make install

3-5 - Libjpeg

Le paquet libjpeg contient les bibliothèques JPEG. Elles permettent la compression de fichiers images basés sur le standard JPEG(2). Il s'agit d'un algorithme, avec perte de qualité.

Nous pouvons trouver toutes les versions de JPEG sur le site : http://freecode.com/projects/libjpeg. Une copie est disponible ici.

Sous Linux avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
./configure
make
make install

Sous Linux avec curl

mkdir -p /tmp/GD
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
./configure
make
make install

Sous Mac avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.4
./configure
make
make install

Sous Mac avec Curl

mkdir -p /tmp/GD
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.4
./configure -enable-shared
make
make install

3-6 - freetype2

Cette bibliothèque vous permet d'utiliser des polices TrueType sous Linux.

Nous pouvons trouver toutes les versions de freetype2 sur leur site.
Une copie est disponible ici.

freetype2 avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/freetype-2.4.12.tar.gz
tar -xzvf freetype-2.4.12.tar.gz
cd freetype-2.4.12
./configure
make
make install

freetype2 avec curl

mkdir -p /tmp/GD
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/freetype-2.4.12.tar.gz
tar -xzvf freetype-2.4.12.tar.gz
cd freetype-2.4.12
./configure
make
make install

3-7 - libgd

libgd est le nom d'une bibliothèque libre servant à manipuler des images dynamiquement. Nous pouvons trouver toutes les versions de libgd sur le site : http://libgd.bitbucket.org.
Une copie est disponible ici.

libgd avec wget

mkdir -p /tmp/GD
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libgd-2.1.0-rc1.tar.gz
tar -xvzf libgd-2.1.0-rc1.tar.gz
cd libgd-2.1.0-rc1
ln -s /usr/X11R6/include/fontconfig /usr/local/include
./configure
make
make install

3-8 - GD

Maintenant que toutes les bibliothèques nécessaires sont intégrées, nous pouvons installer notre module Perl GD en toute tranquillité de la sorte :

perl -MCPAN -e "install GD"
perl -MCPAN -e "install GD::Text"
perl -MGD -e "print $GD:VERSION"

À ce stade, les bibliothèques et le module GD sont installés et à jour. Vous pouvez maintenant utiliser et installer comme bon vous semble tout module Perl nécessitant GD et exécuter vos programmes.

3-9 - Résumé

Pour vous simplifier la vie, voici un programme complet qui regroupe toutes les commandes de cet article pour une installation d'une traite sous l'utilisateur root !

Script complet d'installation : wget

#!/bin/bash
#===============================================================================
# Auteur : djibril
# Date   : 03/06/2013 15:32:19
# But    : Installation des libraires libpng, libjpeg... et des modules Perl GD
#===============================================================================

echo "===========================";
echo "Creation d'un repertoire temporaire pour les installations";
echo "===========================";
mkdir -p /tmp/GD

echo "===========================";
echo "Installation de zlib";
echo "===========================";
cd /tmp/GD
wget  http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/zlib-1.2.8.tar.gz
tar -xzvf ./zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

echo "===========================";
echo "Installation de libpng";
echo "===========================";
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libpng-1.6.2.tar.gz
tar -xzvf ./libpng-1.6.2.tar.gz
cd libpng-1.6.2
./configure
make
make install

echo "===========================";
echo "Installation de libjpeg";
echo "===========================";
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
ln -s `which glibtool` ./libtool
./configure
make
make install

echo "===========================";
echo "Installation de freetype2";
echo "===========================";
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/freetype-2.4.12.tar.gz
tar -xzvf freetype-2.4.12.tar.gz
cd freetype-2.4.12
./configure
make
make install

echo "===========================";
echo "Installation de libgd";
echo "===========================";
cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libgd-2.1.0-rc1.tar.gz
tar -xvzf libgd-2.1.0-rc1.tar.gz
cd libgd-2.1.0-rc1
ln -s /usr/X11R6/include/fontconfig /usr/local/include
./configure
make
make install

echo "Installation du module Perl GD et GD::Text";
perl -MCPAN -e "install GD"
perl -MCPAN -e "install GD::Text"

echo "===========================";
echo "VERSION Module Perl GD";
echo "===========================";
perl -MGD -e "print $GD:VERSION"

Script d'installation complat : curl

#!/bin/bash
#===============================================================================
# Auteur : djibril
# Date   : 03/06/2013 15:32:19
# But    : Installation des libraires libpng, libjpeg... et des modules Perl GD
#===============================================================================

echo "===========================";
echo "Creation d'un repertoire temporaire pour les installations";
echo "===========================";
mkdir -p /tmp/GD

echo "===========================";
echo "Installation de zlib";
echo "===========================";
cd /tmp/GD
curl -O  http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/zlib-1.2.8.tar.gz
tar -xzvf ./zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

echo "===========================";
echo "Installation de libpng";
echo "===========================";
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libpng-1.6.2.tar.gz
tar -xzvf ./libpng-1.6.2.tar.gz
cd libpng-1.6.2
./configure
make
make install

echo "===========================";
echo "Installation de libjpeg";
echo "===========================";
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/jpegsrc.v9.tar.gz
tar -xzvf ./jpegsrc.v9.tar.gz
cd jpeg-9
ln -s `which glibtool` ./libtool
./configure
make
make install

echo "===========================";
echo "Installation de freetype2";
echo "===========================";
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/freetype-2.4.12.tar.gz
tar -xzvf freetype-2.4.12.tar.gz
cd freetype-2.4.12
./configure
make
make install

echo "===========================";
echo "Installation de libgd";
echo "===========================";
cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/libgd-2.1.0-rc1.tar.gz
tar -xvzf libgd-2.1.0-rc1.tar.gz
cd libgd-2.1.0-rc1
ln -s /usr/X11R6/include/fontconfig /usr/local/include
./configure
make
make install

echo "Installation du module Perl GD et GD::Text";
perl -MCPAN -e "install GD"
perl -MCPAN -e "install GD::Text"

echo "===========================";
echo "VERSION Module Perl GD";
echo "===========================";
perl -MGD -e "print $GD:VERSION"

Vous devez enregistrer ce programme dans un répertoire et lancer sous root le fichier de la façon suivante :

Avec wget

mkdir -p /tmp/GD && cd /tmp/GD
wget http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/installation-complete-wget.sh && sh installation-complete-wget.sh

Ou

Avec curl

mkdir -p /tmp/GD && cd /tmp/GD
curl -O http://djibril.developpez.com/tutoriels/perl/comment-installer-bibliotheque-gd/fichiers/installation-complete-curl.sh && sh installation-complete-curl.sh

4 - Conclusion

J'espère que cette documentation vous a aidé à installer facilement cette bibliothèque. Maintenant, il vous reste votre imagination pour concevoir des programmes révolutionnaires :-) !

5 - Remerciements

Je tiens à remercier ClaudeLELOUP et _Max_ pour la relecture de cet article.

(1)Perl Package Manager.

(2)Joint Photographic Experts Group