在脚本中使用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)
答案 0 :(得分:0)
尝试:
#!/usr/bin/perl -w
system <cpan install My::Module>