Как автоматизировать установку модуля из локального репозитория MiniCPAN? - PullRequest
2 голосов
/ 10 ноября 2010

Возникают проблемы с получением 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. Документация по ПМ довольно трудна для подражания ...

(CPAN.pm v1.9402)

1 Ответ

0 голосов
/ 03 мая 2012

попробуй:

#!/usr/bin/perl -w

system <cpan install My::Module>
...