Article publié dans Linux Magazine 67, décembre 2004.
Le CPAN (Comprehensive Perl Archive Network) est sans conteste l'un des points forts de Perl : bien avant que l'Internet ait Google, la communauté Perl avait déjà le CPAN, l'endroit idéal pour trouver un module adapté à chaque besoin.
CPAN est un réseau de serveurs (259 à ce jour, répartis sur les cinq continents) qui mettent à disposition les paquetages créés par les auteurs de modules et scripts Perl.
L'inconvénient est qu'il faut bien sûr disposer d'une connexion pour accéder à son miroir CPAN le plus proche. Or il y a bien des cas où il est tout simplement impossible d'avoir une connexion (par exemple, dans le train ou l'avion, ou encore au cours d'un voyage ou d'une mission dans un pays désertique). La solution serait alors d'avoir son miroir local du CPAN. Toutefois ce n'est pas très aisé car il faut que l'administrateur d'un miroir vous autorise à lancer votre rsync(1) dessus. Par ailleurs, un CPAN complet occupe tout de même 2,6 Go d'espace disque, alors que seule une partie est réellement nécessaire pour l'installation des modules. Même si la place disque n'est pas vraiment un problème, cela vous empêche de, par exemple, graver une copie du CPAN sur CD-ROM.
Pour résoudre ce problème, Randal Schwartz écrivit il y a quelques
temps de cela dans l'édition américaine de Linux Magazine un programme[1]
qui permettait de créer son mini-CPAN en ne copiant que les fichiers
nécessaires au module CPAN.pm
, à savoir les indexes
(01mailrc.txt.gz, 02packages.details.txt.gz, 03modlist.data.gz)
et la dernière version stable de chaque distribution.
Récemment, Ricardo Signes a décidé de le remettre au goût du jour en le publiant sur le CPAN. Il vous suffit donc d'exécuter
$ perl -MCPAN -e 'install CPAN::Mini'
pour avoir le script minicpan sur votre machine. Son utilisation est des plus simples :
$ minicpan -r http://your.cpan-mirror.net/ -l /usr/local/cpan
L'option -r
indiquant le miroir CPAN à utiliser et l'option -l
le répertoire où stocker la copie locale. Vous pouvez ajouter l'option
-q
pour éviter qu'il soit verbeux. Si vous désirez avoir aussi une
copie des dernières distributions de Perl, Parrot et Ponie, ajoutez
l'option -p
.
Après un peu d'attente (variable en fonction de votre connexion), vous aurez votre mini-CPAN pour environ 430 Mo de disque. Une taille tout à fait raisonnable, qui permet de le stocker sur un CD-ROM, voire sur un pen drive.
Il ne reste plus qu'à faire pointer votre CPAN.pm
vers ce
répertoire :
$ cpan cpan> o conf urllist unshift file:///usr/local/cpan cpan> o conf commit cpan> reload index
Pour mettre à jour votre mini-CPAN, il suffit de relancer la commande avec les mêmes arguments, et minicpan ne téléchargera que les nouvelles versions (et supprimera les anciennes). Si vous voulez qu'il se mette à jour régulièrement, ajoutez l'entrée suivante dans votre crontab :
# mettre à jour le mini-CPAN local 0 0 * * * minicpan -q -r http://your.cpan-mirror.net/ -l /usr/local/cpan
Ainsi, même sans être connecté, vous pourrez toujours installer les
modules qui vous font défaut pour développer ce programme très urgent
qui devrait déjà être terminé ;-)
[1] L'article original de Randal Schwartz : http://www.stonehenge.com/merlyn/LinuxMag/col42.html
(Sébastien Aperghis-Tramoni, Marseille.pm, sebastien@aperghis.net
)
Le site principal de CPAN (http://www.cpan.org/) contient l'ensemble des fichiers qui constituent l'archive CPAN. Mais il n'est pas toujours facile de savoir comment s'appelle le module qui va résoudre votre problème, ni même s'il existe. Heureusement, Graham Barr a créé pour vous Search CPAN, un moteur de recherche sur les informations contenues dans CPAN.
Parmi les nombreuses fonctionnalités de Search CPAN, citons :
qui permet de trouver le module le plus adapté à vos besoins ;
avec une très jolie mise en forme ;
avec des liens depuis le fichier MANIFEST vers les sources ou la documentation de chaque fichier de la distribution ;
avec les résultats des tests effectués par les CPAN Testers, la liste des bugs enregistrés sur http://rt.cpan.org/, des outils de type diff et grep sur deux distributions différentes du même module (si elles sont disponibles sur CPAN) ;
à l'URL http://search.cpan.org/recent.
Search CPAN fournit de fait le moyen d'avoir des URL permanentes pour les paquetages Perl, quelle que soit la version à jour du module.
Par exemple, tant qu'il y aura une distribution du module HTTP::Proxy (exemple pris complètement au hasard, bien entendu), vous pourrez la trouver au bout de ce lien :
http://search.cpan.org/dist/HTTP-Proxy/
Le lien vers une version précise peut être obtenu de la même manière, simplement en ajoutant le numéro de version :
http://search.cpan.org/dist/HTML-Parser-2.25/
Pour pointer directement sur la documentation d'un module de la distribution, il suffit de pointer dessus. Le problème est de savoir où se trouve le fichier contenant cette documentation dans l'archive de la distribution ; cela dépend entièrement des choix de l'auteur (et en plus cela peut changer entre les versions de la distribution) :
http://search.cpan.org/dist/Test-Cmd/Cmd.pm
http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm
http://search.cpan.org/dist/DBIx-SearchBuilder/SearchBuilder.pm
Enfin, toutes les distributions publiées par un auteur (connaissant son id
PAUSE) sont disponibles dans son « répertoire personnel ».
L'URL est construite à la mode Unix, avec un ~
précédant l'id :
(Philippe "BooK" Bruhat, Paris.pm & Lyon.pm - book@mongueurs.net
)
CPAN (Comprehensive Perl Archive Network) est un réseau de serveurs de distribution de modules Perl. Il contient des milliers de fichiers d'archive.
BooK vient de vous présenter le site http://search.cpan.org/, qui permet d'examiner le contenu de CPAN et plus particulièrement la documentation, les sources, le résultat des tests de chaque paquetage, ainsi que les avis des autres auteurs de modules CPAN sur chacun de ces modules (cette dernière fonctionnalité est encore en bêta).
L'objet de cette perle est un moyen rapide d'accéder à une entrée
de http://search.cpan.org/. Avec le butineur Konqueror vous pouvez
taper cpan:xml-filter
dans le champ URL si vous êtes intéressé
par les packages XML qui font office de filtre.
Plus généralement, avec Konqueror vous pouvez lancer une action,
typiquement une recherche, sans passer par la page qui contient le
formulaire HTML d'entrée qui provoque cette action. Le format de
la requête est raccourci:requete
où raccourci
est une clé qui
spécifie le site auquel accéder et requete
la requête à proprement
parler. Ainsi pour chercher mongueurs
sur Google, vous saisirez
gg:mongueurs
. L'entrée "Settings/Web-Shortcut" de Konqueror permet
de lancer le panneau de contrôle pour voir ou étendre la liste des sites
accessibles par ce procédé.
(Stéphane Payrard, Paris.pm - stef@mongueurs.net
)
Envoyez vos perles à perles@mongueurs.net
, elles seront peut-être
publiées dans un prochain numéro de Linux Magazine.
Copyright © Les Mongueurs de Perl, 2001-2011
pour le site.
Les auteurs conservent le copyright de leurs articles.