静默并脚本化安装 CPAN 和 Perl 模块?

静默并脚本化安装 CPAN 和 Perl 模块?

我需要在 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

相关内容