Avec cet article sur le langage Perl, j’étoffe un peu plus la rubrique Supervision Réseau de Quick-Tutoriel, qui va englober la programmation système, le développement de scripts (utile à tout bon administrateur réseau ou système) et la supervision comme les routeurs, switchs, sondes à l’aide de Perl et des modules CPAN.
Nous allons voir comment installer un module CPAN, lister les modules déjà présents et surtout désinstaller un module CPAN proprement grâce à l’outil cpan et au script PerlMod, afin de garder un environnement Perl propre et maîtrisé.
Si vous souhaitez développer en Perl sous Windows, voici un bon début : Programmer en PERL avec Strawberry.
Qu’est-ce qu’un module Perl ?
Le but de ce tutoriel est de vous permettre d’installer, d’utiliser et de gérer les modules CPAN, qui vous fourniront de nombreuses fonctions pour vos futurs scripts.
Avant de commencer, une petite définition sur le langage Perl peut être utile :
Perl est un langage optimisé pour extraire des informations de fichiers texte et imprimer des rapports basés sur ces informations. C’est aussi un bon langage pour de nombreuses tâches d’administration système. Il est écrit dans le but d’être pratique (simple à utiliser, efficace, complet) plutôt que beau (petit, élégant, minimaliste).
Perl combine les meilleures fonctionnalités de C, sed, awk et sh, de manière telle que les personnes familières de ces langages ne devraient avoir aucune difficulté avec celui-ci. La syntaxe se rapproche beaucoup de celle du C.
Contrairement à la plupart des utilitaires Unix, Perl ne limite pas arbitrairement la taille des données : si vous avez assez de mémoire, Perl peut copier l’intégralité d’un fichier dans une seule chaîne de caractères. Il n’y a pas de niveau maximum à la récursivité. Et les tables utilisées par les tables de hachage (appelées aussi « tableaux associatifs ») croissent dès que nécessaire afin de garantir un bon niveau de performance.
Perl utilise des techniques sophistiquées de recherche de motifs pour pouvoir traiter très rapidement de très grandes quantités de données. Bien qu’optimisé pour le traitement des fichiers textes, Perl peut aussi traiter des données binaires et faire que des fichiers DBM soient vus comme des tables de hachage.
Les scripts Perl ayant leurs setuid bits positionnés sont plus sûrs que des programmes C grâce à des mécanismes de suivi de flot de données qui permettent d’éviter de nombreux trous de sécurité particulièrement stupides.
Face à un problème pour lequel vous auriez habituellement utilisé sed, awk ou sh, mais qui dépasse leurs capacités ou qui doit fonctionner un peu plus rapidement et pour lequel vous ne voulez pas écrire en C, alors Perl est pour vous. Il existe aussi des convertisseurs pouvant transformer vos scripts sed et awk en scripts Perl.
Un module est un script Perl avec une extension « .pm » qui a été écrit pour effectuer des tâches précises. Lorsque vous programmez, votre script peut rapidement devenir très long (des milliers de lignes de code) et vous avez du mal à vous y retrouver par la suite. Il n’est pas évident de le maintenir par vous ou une tierce personne des mois après. Il est donc important de le sectionner en procédures et modules afin de le rendre plus court, plus propre et facilement réutilisable.
Les modules CPAN
CPAN (Comprehensive Perl Archive Network) est le réseau complet d’archives de Perl. C’est l’une des grandes forces du langage Perl, car il permet de collecter des milliers de modules prêts à être utilisés. Perl lui-même intègre une partie de ces modules, sans lesquels il ne pourrait pas fonctionner.
La plupart des modules du CPAN sont testés régulièrement. Ils sont fiables et c’est à vous de lire attentivement la documentation et de les installer afin de les tester et d’en tirer tous les bénéfices.
Tous les développeurs recherchent des modules (librairies) afin de ne pas réinventer la roue. En Perl, tout est sur le CPAN. Il existe une page de recherche pour cela : http://search.cpan.org/.
Tapez des mots clés en fonction de votre recherche (MySQL, si vous recherchez un module en rapport à MySQL, Cisco pour les routeurs, etc.).
Vérifier Perl et configurer CPAN
Avant de vous lancer dans la création de scripts, voici les points à vérifier (tous les exemples se basent sur l’OS Linux et en particulier Ubuntu, même si Perl fonctionne aussi sous Windows) :
- Vérifier si Perl est installé sur votre distribution, lancez le terminal et tapez la commande suivante :
# perl -v
Vous voyez ici la version de Perl, v5.10.1. Par défaut, dans les distributions Ubuntu, Perl est installé, donc pas de souci.
Ensuite, lancez la commande cpan dans le terminal pour le paramétrer correctement. Voici la procédure :
Saisissez yes, puis validez par Entrée.
Votre CPAN est maintenant actif.
Si les paramètres automatiques ne vous conviennent pas (comme l’ajout d’un proxy par exemple), vous pouvez relancer la procédure en tapant la commande suivante dans CPAN :
# cpan[1] > o conf init
Cette commande vous demandera de valider chaque paramètre ou de le modifier le cas échéant.
Utilisation du script PerlMod pour gérer les modules CPAN
Nous allons voir un script Perl, PerlMod, qui va nous aider à gérer nos modules CPAN et effectuer quelques manipulations bien pratiques (télécharger l’archive en fin de tutoriel).
Une fois l’archive décompressée dans un dossier, vous devriez avoir ceci :
Vous devez toujours utiliser le script avec les droits administrateur.
# sudo ./perlmod
Dans un premier temps, nous allons voir 2 fonctions très utiles :
- Lister tous les modules installés sur votre machine
- Désinstaller un module CPAN
Voici la commande à utiliser pour lister tous les modules présents sur votre machine :
# sudo ./perlmod -l
Nous voyons ici que le module DBI est en version 1.611 et que la version de Perl est la 5.10.1.
Voici la commande pour désinstaller un module CPAN :
# sudo ./perlmod -d (nom du module)
Saisissez y et le module sera complètement effacé. Pratique, non ? Nous verrons plus en détail ce script en fin de tutoriel.
Installer des modules CPAN (exemple avec DBI)
Nous allons maintenant voir comment installer des modules CPAN. Pour cela, nous allons installer le module DBI ainsi que le module DBI::DBD. Une petite explication s’impose :
Module DBI : Le module DBI autorise vos scripts Perl à se connecter à la plupart des SGBD du marché. Il faudra simplement, par la suite, installer le pilote DBD spécifique à votre SGBD (ici nous ferons un test avec une base MySQL, donc le module à installer est DBD::mysql).
Il existe 3 méthodes d’installation :
- Manuellement
La première chose à faire est de vous rendre sur le site du CPAN pour rechercher le module qui vous intéresse.
Prenons pour exemple le module DBI :
Si vous cliquez sur le lien DBI, je vous conseille la lecture du README, qui vous renseignera sur les commandes spéciales à taper ou les modules à installer avant.
Pour lire le README, cliquez sur le lien DBI-1.611.
Voici un exemple très instructif de fichier README pour le module MySQL-Backup :
- 1 : Liste des commandes pour une installation manuelle
- 2 : Liste des dépendances (modules nécessaires au bon fonctionnement)
Ensuite, téléchargez le module (en console via wget par exemple) et procédez à son installation.
Allez maintenant dans une console et tapez la ligne ci-dessous en utilisant wget, pour télécharger le module CPAN :
http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.611.tar.gz
Une fois le fichier téléchargé, saisissez les commandes suivantes dans une console (généralement les mêmes pour chaque module) :
# tar xvzf DBI-1.611.tar.gz # cd DBI-1.611 # perl Makefile.PL # make # make test # sudo make install
La compilation doit s’effectuer sans problème.
- Via l’utilitaire CPAN
Sur votre console, tapez sudo cpan. Si c’est la première fois, il vous posera des questions auxquelles il n’est pas difficile de répondre.
Une fois votre CPAN configuré, vous pouvez installer un module en tapant :
# install MonModule ou # perl -MCPAN -e 'install MonModule'
Par exemple, pour installer le module DBI (vous prenez le nom du module à installer sur le site search.cpan.org http://search.cpan.org/) :
- Via le script PerlMod
Pour ma part, je n’utilise plus que ce script qui regroupe tout ce dont j’ai besoin pour gérer mes modules. PerlMod est vraiment une PERLE pour gérer vos modules CPAN. Vous pouvez télécharger ce script en fin de tutoriel.
Après avoir téléchargé PerlMod, vous devez décompresser l’archive et copier le répertoire dans le répertoire /temp/perlmod (par exemple).
Ensuite, à l’aide de la console, vous devez rendre exécutable le script perlmod grâce à la commande suivante :
# chmod u+x perlmod
Ensuite, pour vérifier que votre script fonctionne correctement, utilisez la commande suivante dans une console :
# ./perlmod -v
Si tout fonctionne correctement, vous devriez avoir ce message (voir copie d’écran ci-dessus).
Maintenant que PerlMod est installé, voyons ensemble un exemple d’installation de modules CPAN. Pour notre exemple, nous allons installer le module DBD. Dans une console, tapez la ligne suivante :
# sudo ./perlmod -i DBD
L’installation doit se dérouler sans problème (voici quelques captures de l’installation d’un module) :
Maintenant, pour connaître toutes les options de ce script, tapez la commande suivante :
# ./perlmod
Voilà, c’est la fin de ce long tutoriel sur CPAN. Ce tutoriel nous servira pour développer nos scripts et sondes pour Centreon/Nagios. Alors un conseil : si vous voulez suivre les prochains tutoriels, familiarisez-vous bien avec les modules CPAN et la façon d’installer ou de désinstaller un module CPAN.
Vous pouvez télécharger le fichier PerlMod en cliquant sur ce lien : PerlMod
FAQ : langage Perl et modules CPAN
Comment installer un module CPAN en Perl ?
Vous pouvez installer un module CPAN en utilisant la commande cpan ou cpanm, ou bien via une installation manuelle (téléchargement de l’archive, perl Makefile.PL, make, make test, sudo make install). L’outil PerlMod présenté dans ce tutoriel simplifie aussi l’installation de modules CPAN.
Comment désinstaller un module CPAN ?
Pour désinstaller un module CPAN, vous pouvez utiliser le script PerlMod avec la commande sudo ./perlmod -d NomDuModule, ou vous appuyer sur les mécanismes fournis par votre distribution si le module vient d’un paquet. Il est également possible de supprimer manuellement les fichiers du module, mais cela demande de bien connaître l’arborescence de votre installation Perl.
Comment lister les modules CPAN installés ?
Le script PerlMod permet de lister tous les modules installés avec la commande sudo ./perlmod -l. Certains outils CPAN proposent aussi des commandes internes pour lister les distributions déjà présentes sur votre système.
Quelle différence entre un module du noyau Perl et un module CPAN ?
Les modules du noyau Perl sont fournis avec l’installation standard du langage Perl, tandis que les modules CPAN sont disponibles sur le réseau CPAN et doivent être installés en plus, en fonction de vos besoins (base de données, supervision, réseau, etc.).
PerlMod fonctionne-t-il sur toutes les distributions Linux ?
Le script PerlMod est écrit en Perl et fonctionne sur la plupart des distributions Linux, tant que Perl et les outils de compilation nécessaires sont installés. Il faut simplement veiller aux droits (utilisation de sudo) et au chemin où vous placez le script.
Quick-Tutoriel.com Network & System Admin.























