[couverture de Linux Magazine 67]

Perles de Mongueurs (8)

Article publié dans Linux Magazine 67, décembre 2004.

[+ del.icio.us] [+ Developers Zone] [+ Bookmarks.fr] [Digg this] [+ My Yahoo!]

Créez votre mini-CPAN

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 saviez-vous ?

http://search.cpan.org/

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 :

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 :

http://search.cpan.org/~book/

(Philippe "BooK" Bruhat, Paris.pm & Lyon.pm - book@mongueurs.net)

Rechercher un module Perl avec Konqueror

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:requeteraccourci 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)

À vous !

Envoyez vos perles à perles@mongueurs.net, elles seront peut-être publiées dans un prochain numéro de Linux Magazine.

[IE7, par Dean Edwards] [Validation du HTML] [Validation du CSS]