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

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

$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))

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

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

(CPAN.pm - v1.9402)


person plusplus    schedule 10.11.2010    source источник
comment
тоже не повезло с CPANPLUS ... в итоге использовал App :: cpanminus с новой опцией --mirror-only (в v.1001)   -  person plusplus    schedule 17.11.2010
comment
Когда вы говорите введено, как вы делаете инъекцию в MiniCPAN? Вы просто копируете файл на место без обновления индексов?   -  person Mark Fowler    schedule 26.05.2011


Ответы (1)


пытаться :

#!/usr/bin/perl -w

system <cpan install My::Module>
person Ciprian Lungu    schedule 03.05.2012