Удаляем Perl модули из cpan

В установке любого Perl модуля Вам поможет утилита cpan. Дело в том, что cpan скачивает архивы с исходным кодом, компилирует их и устанавливает. Проблема появляется, когда такой модуль нужно удалить.

Следующий скрипт поможет Вам в удалении ненужны модулей:

# uninstall_perl_module.pl from PerlTricks.com

use 5.14.2;
use ExtUtils::Installed;
use ExtUtils::Packlist;

# Exit unless a module name was passed
die ("Error: no Module::Name passed as an argument. E.G.\n\t perl $0 Module::Name\n") unless $#ARGV == 0;

my $module = shift @ARGV;

my $installed_modules = ExtUtils::Installed->new;

# iterate through and try to delete every file associated with the module
foreach my $file ($installed_modules->files($module)) {
    print "removing $file\n";
    unlink $file or warn "could not remove $file: $!\n";
}

# delete the module packfile
my $packfile = $installed_modules->packlist($module)->packlist_file;
print "removing $packfile\n";
unlink $packfile or warn "could not remove $packfile: $!\n";

# delete the module directories if they are empty
foreach my $dir (sort($installed_modules->directory_tree($module))) {
    print("removing $dir\n");
    rmdir $dir or warn "could not remove $dir: $!\n";
}

Выполняется так:

perl uninstall_perl_module.pl Acme::Dot

Альтернативой модет быть очистка руками:

cd ~/.cpan/build  
cd имя-модуля-xyz  
make uninstall

Следуем инструкциям.

Можно попытать счастье с App::cpanminus. Устанавливается с помощью cpan

Выполняется:

cpanm -uninstall Acme::Dot

perltricks.com
coderwall.com

Categories:

Updated: