Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何从本地MiniCPAN存储库自动安装模块?_Perl_Cpan_Minicpan - Fatal编程技术网

Perl 如何从本地MiniCPAN存储库自动安装模块?

Perl 如何从本地MiniCPAN存储库自动安装模块?,perl,cpan,minicpan,Perl,Cpan,Minicpan,在让CPAN从脚本中使用MiniCPAN存储库时遇到问题(aim是一个代码部署系统,用于与来自CPAN的模块一起构建本地模块,安装到本地库,然后同步到服务器) $HOME/.cpan/cpan/MyConfig.pm存在,URL列表设置为['file:///home/user/minicpan/'] (非CPAN)模块分发已成功注入minicpan repo,文件存在:例如/home/user/minicpan/authors/U/US/user/My-module-0.01.tar.gz 作者

在让CPAN从脚本中使用MiniCPAN存储库时遇到问题(aim是一个代码部署系统,用于与来自CPAN的模块一起构建本地模块,安装到本地库,然后同步到服务器)

$HOME/.cpan/cpan/MyConfig.pm
存在,URL列表设置为
['file:///home/user/minicpan/']

(非CPAN)模块分发已成功注入minicpan repo,文件存在:例如
/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");
找不到模块(
“无法安装My::module,不知道它是什么。”
)或声明是最新的(
My::module是最新的(0.01)

模块未安装在本地库中(也未安装在计算机上的任何其他位置,例如/usr/…) 本地lib环境变量通过 bash概要文件中的
eval$(perl-I$HOME/foo/lib/perl5-Mlocal::lib=$HOME/locallib)

在收到任何一个错误(包括“Module is update”)后,shell中的正常“install”都可以正常工作,就像
perl-MCPAN-e“install My::Module”
一样,因此我认为是配置设置不正确,但是CPAN.pm文档很难遵循

(CPAN.pm是v1.9402)

试试:

#!/usr/bin/perl -w

system <cpan install My::Module>
#/usr/bin/perl-w
系统
试试:

#/usr/bin/perl-w
系统

在CPANPLUS上也不走运。。。最后使用App::cpanminus和新的“--mirror only”选项(在v.1001中)当你说“injected”时,你是如何将其注入MiniCPAN的?你只是在原地复制文件而没有更新索引吗?CPANPLUS也没有运气。。。最后使用App::cpanminus和新的“--mirror only”选项(在v.1001中)当你说“injected”时,你是如何将其注入MiniCPAN的?您只是在不更新索引的情况下就地复制文件吗?