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

时间:2010-11-10 14:48:53

标签: perl cpan minicpan

在脚本中使用CPAN与MiniCPAN存储库一起工作时遇到问题(目标是一个代码部署系统,与CPAN中的模块一起构建本地模块,安装到local-lib,然后同步到服务器)

$HOME/.cpan/CPAN/MyConfig.pm存在,urllist设置为['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 shell安装。

通过以下代码失败:

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环境变量通过设置 bash个人资料中的eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/locallib)

在得到任何一个错误(包括'模块是最新的')之后,shell中的正常“安装”工作没有用,perl -MCPAN -e "install My::Module"也是如此,所以我认为配置设置不正确,但是CPAN.pm文档很难遵循......

(CPAN.pm是v1.9402)

1 个答案:

答案 0 :(得分:0)

尝试:

#!/usr/bin/perl -w

system <cpan install My::Module>