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 GDmodule GD :
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.
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
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.
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
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.
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
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
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.
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
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.
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 !
Vous devez enregistrer ce programme dans un répertoire et lancer sous root le fichier de la façon suivante :
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
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.