Ошибка при установке cpan-модуля: ! Can’t configure the distribution

Если при установке perl-модуля со cpan у вас возникает ошибка,

! Can’t configure the distribution. You probably need to have ‘make’. See /home/user/.cpanm/build.log for details.

то необходимо установить build-essential (informational list of build-essential packages).

Установка perl-модуля без root-доступа

С необходимостью установки модуля со CPAN я столкнулся при пользовании виртуальным хостингом без прав супер-пользователя (root).

В этом случае поможет local::lib.

wget http://search.cpan.org/CPAN/authors/id/H/HA/HAARG/local-lib-2.000017.tar.gz
tar zxf local-lib-2.000017.tar.gz
cd ~/local-lib-2.000017
perl Makefile.PL --bootstrap
make test && make install
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

Удаление perl-модуля

Ранее размещал пост о том, как просмотреть список установленных perl-модулей со CPAN. В данном материале речь зайдет о удалении CPAN-модулей.

Делается это очень просто. Создадим скрипт delete.pl с содержимым:

#!/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 "removing $item\n";
    unlink $item;
}
                   
my $packfile = $inst->packlist($mod)->packlist_file();
print "removing $packfile\n";
unlink $packfile;

И запустим его с root-правами, указав удаляемый модуль:

sudo perl delete.pl Module::Name

Удаление Perl модуля

С установкой perl-модулей отлично справляется утилита cpanm. А как насчет удаления? С эти вопросом поможет App::pmuninstall. Ставим.

cpanm App::pmuninstall

Пример:

pm-uninstall Perl::Module