Stay tuned
TUTORIAL CPAN - Listage et désinstallation des modules
Posted by M. declercq on Apr. 16 2007, page edited by M. declercq on Apr. 15, (popular)

Ce tutorial aborde une procédure qui permet de lister les modules CPAN installés sur un système aux fins de leurs désinstallation, a noter que par le biais de cette procédure, il est aussi possible de supprimer totalement CPAN.
I. Création d'un script qui va permettre de lister tous les modules CPAN installés
1. On se place dans le répertoire de l'utilisateur root :$ cd /root2. On créer un nouveau répertoire dédié aux scripts que nous allons créer :
$ mkdir uninstall_cpan_mods3. On se place dans ce nouveau répertoire :
$ cd uninstall_cpan_mods4. On créer le script qui va nous permettre de lister tous les modules installés via CPAN :
$ nano listing_cpan_mods_script.pl5. Dans le fichier que l'on vient de créer, on ajoute le code suivant et on enregistre :
#!/usr/local/bin/perl
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules()) {
my $version = $instmod->version($module) || "Version inconnue";
print "$module -- $version\n";
}
II. Utilisation du script
L'utilisation de ce script est très simple, il nous suffit de l'exécuter via la commande suivante :1. On exécute le script de listage des modules CPAN :
$ perl listing_cpan_mods_script.plEt voici le genre de résultat que l'on obtient : 2. Exemple de résultat de l'exécution du script de listage des modules CPAN :
ns1:~# perl listing_cpan_mods_script.plComme vous pouvez le constater, l'exécution du script que l'on vient de créer retourne la liste de tous les modules CPAN installés sur notre système.
Archive::Zip -- 1.18
CPAN -- 1.8802
Compress::Raw::Zlib -- 2.004
Compress::Zlib -- 2.004
Cwd -- 3.24
Digest::SHA -- 5.44
ExtUtils::CBuilder -- 0.18
File::HomeDir -- 0.64
File::Temp -- 0.18
File::Which -- 0.05
IO::Compress::Base -- 2.004
IO::Compress::Zlib -- Version inconnue
List::Util -- 1.19
Module::Build -- 0.2806
Perl -- 5.8.4
Term::ReadKey -- 2.30
Term::ReadLine -- 1.01
Test::Harness -- 2.64
Test::Simple -- 0.70
Text::Glob -- 0.07
YAML -- 0.62
Connaissant le nom exacte des modules CPAN installés, nous pouvons désormais aisément les désinstaller.
III. Création d'un script permettant de désinstaller un modules CPAN
1. On se place dans le répertoire que l'on a précèdemment créé :$ cd /root/uninstall_cpan_mods2. On créer un nouveau fichier nommé uninstall_cpan_mods_script.pl :
$ nano uninstall_cpan_mods_script.pl3. Dans ce nouveau fichier, on ajoute le contenu suivant et on enregistre :
#!/usr/local/bin/perl -w
use ExtUtils::Packlist;
use ExtUtils::Installed;
$ARGV[0] or die "Usage: $0 Module::Name\n";
my $mod = $ARGV[0];
my $inst = ExtUtils::Installed->new();
foreach my $item (sort($inst->files($mod))) {
print "suppression de $item\n";
unlink $item;
}
my $packfile = $inst->packlist($mod)->packlist_file();
print "suppression de $packfile\n";
unlink $packfile;
IV. Utilisation du script
Pour utiliser le script, c'est à dire désinstaller un module CPAN, il nous suffit d'exécuter la commande suivante :$ perl uninstall_cpan_mods_script.pl nom_du_moduleNote : nom_du_module est à remplacer par le nom du module que l'on souhaite désinstaller.
Exemple pour le module Archive::Tar -- 1.30 :
$ perl uninstall_cpan_mods_script.pl Archive::Tar -- 1.30Ce qui donne comme résultat :
removing /usr/bin/ptarComme vous pouvez le remarquer, la désinstallation est entièrement automatique.
removing /usr/bin/ptardiff
removing /usr/local/man/man1/ptar.1p
removing /usr/local/man/man1/ptardiff.1p
removing /usr/local/man/man3/Archive::Tar.3pm
removing /usr/local/man/man3/Archive::Tar::File.3pm
removing /usr/local/share/perl/5.8.4/Archive/Tar.pm
removing /usr/local/share/perl/5.8.4/Archive/Tar/Constant.pm
removing /usr/local/share/perl/5.8.4/Archive/Tar/File.pm
removing /usr/local/lib/perl/5.8.4/auto/Archive/Tar/.packlist
Bien entendu, vous pouvez, après avoir désinstallé tous les modules, désinstallé CPAN lui même --> CPAN -- 1.8802
IV. Problèmes pouvant intervenir
Après avoir désinstallé certains modules, il se peut que vous ne puissiez plus utiliser les deux scripts créés précèdement. Dans ce cas, pas de panique, il vous suffit d'exécuter la commande suivante pour que tous rentre dans l'ordre et que vous puissiez continuer à désinstaller les modules qui ne vous servent plus à rien :1. On ré-install les paquets de base nécessaires à l'utilisation des deux scripts que nous avons créé précèdement :
$ apt-get install --reinstall perl perl-base perl-modules
Une erreur, une incompréhension concernant ce tutorial ? N'hésitez pas à utiliser la fonction commentaire de notre portail et/ou à nous joindre directement en utilisant notre formulaire contact : Nous contacter
Rédigé par M. Laurent DECLERCQ
v1.1 build 20070415.0630
Sources : http://www.cpan.org/misc/cpan-faq.html#How_installed_modules

...