Как автоматизировать установку модуля из локального хранилища MiniCPAN?

Возникают проблемы с получением CPAN для работы с репозиторием MiniCPAN из скрипта (цель - это система развертывания кода для сборки локальных модулей вместе с модулями из CPAN, установки в локальную библиотеку и последующей синхронизации с серверами)

$HOME/.cpan/CPAN/MyConfig.pm существует с URL-адресом, установленным на ['file:///home/user/minicpan/']

Дистрибутив модуля (не CPAN) был успешно введен в репо Minicpan, и файл существует: например /home/user/minicpan/authors/U/US/USER/My-Module-0.01.tar.gz,

Автор находится в .../01mailrc.txt.gzмодуль находится в .../modules/02packages.details.txt.gz

Модуль найден и установлен через оболочку cpan.

Сбой через следующий код:

CPAN::HandleConfig->load;
CPAN::Shell::setup_output;
CPAN::Index->reload;

# dumping config here shows urllist set correctly,
# and config exactly the same as through shell
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
print Dumper($CPAN::Config);

CPAN::Shell->install("My::Module");

Либо не находит модуль ("Cannot install My::Module, don't know what it is.") или претензии актуальны (My::Module is up to date (0.01))

Модуль не устанавливается в локальной библиотеке (и нигде больше на машине, например, в /usr/...). Переменные среды локальной библиотеки устанавливаются черезeval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/locallib) в профиле bash

После получения любой ошибки (включая "Модуль обновлен") обычная "установка" в оболочке работает без принуждения, как и perl -MCPAN -e "install My::Module", так что я предполагаю, что конфигурация настроена неправильно, но документы CPAN.pm довольно сложны для понимания...

(CPAN.pm v1.9402)

1 ответ

Пытаться:

#!/usr/bin/perl -w

system <cpan install My::Module>
Другие вопросы по тегам