Avoir un miroir local du CPAN.

Par définition un développeur est paresseux.1 C’est donc tout naturel que ce soit en général, un des points fort d’un langage aux yeux d’un développeur que le langage soit bien fourni en terme de bibliothèques réutilisables2 , sans compter que si il offre en plus un système de paquets permettant le déploiement et l’installation facile, c’est un grand plus.

Est-ce que j’ai déjà dis que c’était justement l’une des forces de Perl via le CPAN3, et depuis longtemps. Cependant il arrive qu’on n’ait pas toujours un accès à une connexion internent, par exemple parce-qu’on est dans le train, dans l’avion, à l’hôtel sans d’accès wifi, ou bien qu’on vient d’emménager et on n’a pas encore reçu les accès. Avoir une connexion n’est pas nécessaire pour coder, je dirais même la couper peut-être utile lorsqu’on développe pour moins se laisser distraire4, en Perl on a toutes la documentation qu’il faut avec la perldoc. Cependant si le besoin se fait sentir d’installer une bibliothèque, il faudra une connexion pour contacter un miroir.
L’idéal serait donc de bénéficier d’un miroir en local, mais avoir un miroir complet risquerai de prendre beaucoup d’espace.

C’est pour cette raison que Randal Schwartz a écrit un article présentant un programme pour résoudre ce problème, l’idée est d’avoir un mini-CPAN en gardant uniquement les fichiers vraiment nécessaires au module CPAN.pm et avoir la dernière version stable de chaque distribution.Ricardo Signes l’a mis à disposition sur le CPAN.

    sudo cpanm CPAN::Mini
    use CPAN::Mini
 
     CPAN::Mini->update_mirror(
         remote => "http://cpan.mirrors.comintern.su",
         local     => "/usr/share/mirrors/cpan",
         trace    => 1
      );

Voilà, la clé remote représente le miroir qu’on utilise, la clé local chemin ou placer les fichiers en local, et la clé trace permet d’avoir des informations. Le script peut prendre un certain temps à s’exécuter. Ensuite l’idéal c’est d’avoir une cron pour le garder à jour.

Il faut aussi configurer le client cpan pour qu’il utilise le miroir local.

    cpan
    cpan> o conf urllist unshift file:///usr/share/mirroirs/cpan
    cpan> o conf commit
    cpan> reload index

En conclusion, ceci peut s’avérer rudement pratique lorsqu’on n’a pas de connexion internet pendant plusieurs mois.

Drapeau EnProjet sur le CPAN
Drapeau EnProjet sur le CPAN
Drapeau FrArticle des mongueurs

  1. C’est pas moi qui le dit, Larry Wall dit que c’est une des trois qualités d’un programmeur
  2. Cela permet d’éviter de réinventer la roue trop souvent, bien que ça peut aussi être bien de temps en temps, ce qu’il faut c’est ne pas réinventer la brosse à dent
  3. Comprehensive Perl Archive Network
  4. Faire des sprints de trois heures dans la journée sans connexion à internet, est une bonne chose
Vus : 1832
Publié par Hobbestigrou : 195