Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de Bundles

2 réponses
Avatar
Franck Aniere
Bonjour,

Je souhaite écrire un Bundle privé (non distribué sur le CPAN) pour
installer automatiqment les dépendances d'un script Perl.

J'ai donc créé un répertoire Bundle, contenant francktest.pm. Ce Bundle
est de la forme suivante :

package Bundle::francktest;

$VERSION = '1.00';

1;

__END__

=head1 NAME

Blabla

=head1 SYNOPSIS

Blabla

=head1 CONTENTS

Cwd
Tk 804
Tk::Table
Tk::Compound
Tk::Dialog
Tk::BrowseEntry
Tk::JPEG

=head1 DESCRIPTION

Blabla

=head1 AUTHOR

Moua !

=cut


Je lance ensuite le module CPAN et voici ce que j'ai :

[etna8] ~/al > perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install Bundle::francktest
CPAN: Storable loaded ok
Going to read /env/cns/home/aniere/.cpan/Metadata
Database was generated on Fri, 30 Mar 2007 13:10:06 GMT
Warning: Cannot install Bundle::francktest, don't know what it is.
Try the command

i /Bundle::francktest/

to find objects with matching identifiers.

cpan>


J'ai raté un truc ? (je précise que je fais ça dans le répertoire où se
trouve Bundle).

Merci d'avance

Franck

2 réponses

Avatar
Paul Gaborit
À (at) Fri, 30 Mar 2007 17:38:14 +0200,
Franck Aniere écrivait (wrote):
Je souhaite écrire un Bundle privé (non distribué sur le CPAN) pour
installer automatiqment les dépendances d'un script Perl.

J'ai donc créé un répertoire Bundle, contenant francktest.pm. Ce
Bundle est de la forme suivante :
[...]


J'ai raté un truc ? (je précise que je fais ça dans le répertoire où
se trouve Bundle).


Les Bundles sont cherchés dans les répertoires listés par @INC (comme
toute autre module). Mais CPAN n'inclut pas le répertoire courant dans
@INC. On trouve la ligne suivante au début de CPAN.pm :

no lib "."; # we need to run chdir all over and we would get at
# wrong libraries there

Donc, il est normal que CPAN ne trouve pas votre Bundle. Évidemment,
placer ce Bundle quelque part dans le @INC standard n'est pas une
bonne solution.

Mais, CPAN inclut aussi son propre répertoire de configuration dans
@INC. C'est d'ailleurs là qu'il écrit ses popres Bundles (créés par la
commande 'autobundle').

Si vous placez votre fichier 'francktest.pm' dans le répertoire
affiché par la commande suivante :

perl -MCPAN -e 'print $CPAN::Config->{cpan_home}/Bundle'

ça devrait fonctionner sans polluer le contenu des répertoires @INC.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Franck Aniere
Bonjour,

Ca marche impeccable, merci beaucoup pour toutes ces explications limpides.

Cordialement,

F.A.