我需要在 Scientific Linux (RHEL) 安装脚本中自动安装 CPAN 和一些 Perl 模块。遗憾的是,据我所知,我想要的特定模块(至少其中一个)无法以 RPM:s 形式找到。
所以我需要安装 CPAN,自动配置它(或使用配置文件),然后自动安装所需的模块(包括依赖项)。
这似乎不是一个非常不寻常的要求,但我还没有看到任何关于这方面的很好的文档。问题是,每当第一次启动 CPAN 时,都会运行一个交互式配置。可以以某种方式跳过这一步吗?我如何直接从命令行启动模块安装?
答案1
你可能想看看亚太经合组织为此;它重量轻,可编写 Shell 脚本,并且比经典 CPAN 简单得多。
答案2
在运行 CPAN 之前尝试设置此环境变量:
export PERL_MM_USE_DEFAULT=1
当 CPAN 询问“您是否希望尽可能自动地进行配置?[是]”时,它会让 perl 自动回答“是”
答案3
“那么如何从命令行直接从启动模块安装?”
这应该可以:
perl -MCPAN -e 'install Your::Package'
答案4
这应该会产生神奇的效果:
get_cpanm(){
if [ \! -f /usr/local/bin/cpanm ]; then
cd $TMP_DIR && curl --insecure -L http://cpanmin.us | perl - App::cpanminus
if [ \! -f /usr/local/bin/cpanm ]; then
echo "Downloading from cpanmin.us failed, downloading from xrl.us"
curl -LO http://xrl.us/cpanm &&
chmod +x cpanm &&
mv cpanm /usr/local/bin/cpanm
fi
fi
CPANM=$(which cpanm);
if [ \! -f "$CPANM" ]; then
echo "ERROR: Unable to find cpanm"
return 1;
fi
return 0
}
cpanm Time::HiRes CGI Moose Config::JSON other::cpanmodules