CPAN

CPAN - Perl - Programmation

Marsh Posté le 10-09-2010 à 20:21:01    

Bonjour,
Je débute en perl sous solaris. Quelle difference entre un module ordinaire et un Bundle::CPAN ou Bundle::LWP.
Je sais comment installer un module mais je ne trouve rien pour le supprimer correctement, existe t'il une commande?
Dans le fichier Conf.pm la varaible index indique t' elle la fréquence des mises a jour en quel unités?
Merci de votre aide.

Reply

Marsh Posté le 10-09-2010 à 20:21:01   

Reply

Marsh Posté le 10-09-2010 à 22:09:05    

yartempion a écrit :

Quelle difference entre un module ordinaire et un Bundle::CPAN ou Bundle::LWP.


Citation :

Bundles
 
A bundle is just a perl module in the namespace Bundle:: that does not define any functions or methods. It usually only contains documentation.
 
It starts like a perl module with a package declaration and a $VERSION variable. After that the pod section looks like any other pod with the only difference being that one special pod section exists starting with (verbatim):
 
        =head1 CONTENTS
 
In this pod section each line obeys the format
 
        Module_Name [Version_String] [- optional text]
 
The only required part is the first field, the name of a module (e.g. Foo::Bar, ie. not the name of the distribution file). The rest of the line is optional. The comment part is delimited by a dash just as in the man page header.
 
The distribution of a bundle should follow the same convention as other distributions.
 
Bundles are treated specially in the CPAN package. If you say 'install Bundle::Tkkit' (assuming such a bundle exists), CPAN will install all the modules in the CONTENTS section of the pod. You can install your own Bundles locally by placing a conformant Bundle file somewhere into your @INC path. The autobundle() command which is available in the shell interface does that for you by including all currently installed modules in a snapshot bundle file.


yartempion a écrit :

Je sais comment installer un module mais je ne trouve rien pour le supprimer correctement, existe t'il une commande?


Pas sous CPAN, mais il y en a une sous CPANPLUS: http://opensourceexperiments.wordp [...] an-module/
Noter que si les modules que vous installez le sont via rpm, il peuvent être désinstallés via rpm aussi, je pense
(Bon, sous Windows, il n'y a pas le problème avec PPM)

yartempion a écrit :

Dans le fichier Conf.pm la varaible index indique t' elle la fréquence des mises a jour en quel unités?

? je connais un Config.pm et une variable index_expire (dont l'unité est le jour), mais pas ce dont vous parlez.
A+,


Message édité par gilou le 10-09-2010 à 22:18:37

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 11-09-2010 à 00:06:17    

Merci de votre réponse.
Les Bundle contiennent une liste de modules.
J'ai fait le testen tapant perl -MCPAN -e 'Bundle::CPAN' et ce sont bien les modules compris dans le Bundle qui s'installent.
L'installe est interractive, y'a t'il un moyen de la rendre automatique sans avoir a installer les differents modules composants le Bundle indépendement?
Quand vous parler d'installer les modules via rpm que doit on chargersur le site CPAN.
Cordialement.
 
Cordialement.


Message édité par yartempion le 11-09-2010 à 00:24:15
Reply

Marsh Posté le 12-09-2010 à 00:08:43    

Bonsoir,

Citation :

L'installe est interractive, y'a t'il un moyen de la rendre automatique sans avoir a installer les differents modules composants le Bundle indépendement?

Aucune idée, je soupçonne que non.  
En ce qui concerne RPM, il me semble que certaines distributions linux ont une partie des modules installables via ce système, qui n'a aucun lien avec CPAN.
 
Je ne peux vous en dire plus à ce sujet, car j'utilise perl dans un autre environnement (et n'ai plus de plateforme Sun a ma disposition depuis quelques années)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 13-09-2010 à 11:57:40    

gilou a écrit :

Bonsoir,

Citation :

L'installe est interractive, y'a t'il un moyen de la rendre automatique sans avoir a installer les differents modules composants le Bundle indépendement?

Aucune idée, je soupçonne que non.  
En ce qui concerne RPM, il me semble que certaines distributions linux ont une partie des modules installables via ce système, qui n'a aucun lien avec CPAN.
 
Je ne peux vous en dire plus à ce sujet, car j'utilise perl dans un autre environnement (et n'ai plus de plateforme Sun a ma disposition depuis quelques années)
 
A+,


 
 
Quand j'essaie d'installer un module j'obtients le resultat suivant:
 
 
 
client-jumpstart:root# perl -MCPAN -e 'install Bundle::CPAN'
CPAN: Storable loaded ok
Going to read /home/root/.cpan/sources/authors/01mailrc.txt.gz
Going to read /home/root/.cpan/sources/modules/02packages.details.txt.gz
Warning: Your /home/root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Warning: Your /home/root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Going to read /home/root/.cpan/sources/modules/03modlist.data.gz
Unrecognized character \xEB at (eval 11) line 1.
 at /usr/local/lib/perl5/5.8.8/CPAN.pm line 3405
        CPAN::Index::rd_modlist('CPAN::Index', '/home/root/.cpan/sources/modules/03modlist.data.gz') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 3128
        CPAN::Index::reload('CPAN::Index') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 675
        CPAN::exists('CPAN=HASH(0x6970c4)', 'CPAN::Bundle', 'Bundle::CPAN') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 1925
        CPAN::Shell::expand('CPAN::Shell', 'Bundle', 'Bundle::CPAN') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 1839
        CPAN::Shell::expandany('CPAN::Shell', 'Bundle::CPAN') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 2077
        CPAN::Shell::rematein('CPAN::Shell', 'install', 'Bundle::CPAN') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 2164
        CPAN::Shell::install('CPAN::Shell', 'Bundle::CPAN') called at /usr/local/lib/perl5/5.8.8/CPAN.pm line 79
        CPAN::AUTOLOAD('Bundle::CPAN') called at -e line 1
client-jumpstart:root#
 
 
Qu est ce qui ne colle pas ?
Cordialement.

Reply

Marsh Posté le 13-09-2010 à 18:59:03    

Citation :

Please check the validity of the index file by comparing it to more than one CPAN mirror.

Vos fichiers locaux CPAN semblent incorrects. Il va falloir choisir un repository CPAN plus à jour que celui que vous utilisez on dirait, et rafraichir les fichiers locaux à partir de la.
Noter que sous windows, j'ai un executable CPAN pour faire ce type de gestion, qui au premier appel, met tout a jour. Je suppose qu'il y a quelque chose de similaire sous Solaris (et s'il n'a pas été exécuté au moins une fois, le problème vient peut être la, tout simplement).
A+,

Message cité 1 fois
Message édité par gilou le 13-09-2010 à 19:04:04

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 14-09-2010 à 10:45:11    

gilou a écrit :

Citation :

Please check the validity of the index file by comparing it to more than one CPAN mirror.

Vos fichiers locaux CPAN semblent incorrects. Il va falloir choisir un repository CPAN plus à jour que celui que vous utilisez on dirait, et rafraichir les fichiers locaux à partir de la.
Noter que sous windows, j'ai un executable CPAN pour faire ce type de gestion, qui au premier appel, met tout a jour. Je suppose qu'il y a quelque chose de similaire sous Solaris (et s'il n'a pas été exécuté au moins une fois, le problème vient peut être la, tout simplement).
A+,


Justement c'est la qu'est le problème c'est le premier lancement et je n'arrive pas a faire la mise a jour.
Quand je met l'URL de mise a jour dans un navigateur c'est OK mais dés que je lance wget  ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
Reponse en boucle
 
--10:41:24--  ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
  (try: 4) => `MIRRORED.BY'
Connecting to 126.255.255.240:8080... connected.
Logging in as anonymous ...
Error in server response, closing control connection.
Retrying.

Reply

Marsh Posté le 14-09-2010 à 10:50:05    

Depuis que j'ai découvert http://cpanmin.us ma vie avec le CPAN est joie bonheur & félicité :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 14-09-2010 à 14:18:54    

yartempion a écrit :


Justement c'est la qu'est le problème c'est le premier lancement et je n'arrive pas a faire la mise a jour.
Quand je met l'URL de mise a jour dans un navigateur c'est OK mais dés que je lance wget  ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
Reponse en boucle
 
--10:41:24--  ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
  (try: 4) => `MIRRORED.BY'
Connecting to 126.255.255.240:8080... connected.
Logging in as anonymous ...
Error in server response, closing control connection.
Retrying.

Dans ce cas la, choisissez un bon site près de chez vous: http://www.cpan.org/SITES.html
(Si vous êtes en France, il y a probablement un mirroir a l'Inria qui devrait marcher)
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 14-09-2010 à 17:21:09    

gilou a écrit :

Dans ce cas la, choisissez un bon site près de chez vous: http://www.cpan.org/SITES.html
(Si vous êtes en France, il y a probablement un mirroir a l'Inria qui devrait marcher)
A+,


Merci a vous de vous être demmené pour moi.
Le pb venait de wgetrc. Je passe par un proxy pour le http et le ftp.
Seulement le proxy fait tout en http donc ftp_proxy= il fallait mettre http://user:pass......
et j'avais mis ftp://user:pass...
Voila
Autre detail:
Dans mon script je passe les instruction suivantes pour automatiser l'install des modules via CPAN:
 

Code :
  1. SRV_Jumpstart=203.4.6.125
  2. rep_config=/tmp/mount
  3. rep_packages=/tmp/mount/packages
  4. rep_scripts=/tmp/mount/scripts
  5. rep_modperl=/tmp/mount/perl/modules
  6. mkdir -m 755 /tmp/mountfor module in `cat $rep_modperl`
  7. do
  8. reponse= `perl -MCPAN -e 'use $module'`
  9. echo "Reponse= $reponse"
  10. if [ -n reponse ]
  11.    then
  12.     echo "installation du module $module et valeur de reponse $reponse"
  13.     perl -MCPAN -e 'install $module'
  14.    else
  15.     echo "module $module deja installe"
  16. fi
  17. done
  18. umount /tmp/mount
  19. rmdir /tmp/mount

 
Je sais que la ligne :   perl -MCPAN -e 'install $module' ne peut pas fonctionner puisqu la variable module  
est une variable du shell et que je l'applique au dans un contexte perl.
Comment résoudre ce dilem?
Cordialement.
 
mount -F nfs $SRV_Jumpstart://jumpstart/config /tmp/mount
 
 

Reply

Marsh Posté le 14-09-2010 à 17:21:09   

Reply

Marsh Posté le 22-09-2010 à 11:22:50    

Aprés recherche il sussisait de mettre perl -MCPAN -e 'install '$module'' et c'est OK merci a tous.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed