将 Perl 模块安装到特定位置

use*_*697 6 perl cpan perl-module

我有几台运行 Perl 程序和其他程序和工具的 Linux 机器。

/usr/local我希望保持机器之间的所有工具同步,因此我在一台机器(主)和其他机器之间共享目录。

现在我想在/usr/local/<path to modules>.

我已经找到了该local::lib模块,但其目的是将模块安装到您的主目录中。

如何设置 CPAN(或 CPAN 替代方案)以将所有模块和依赖项安装到一个位置?我如何在其他机器上设置 Perl 以使用该位置来查找模块?

ike*_*ami 8

为了方便起见,让我们将基本位置分配给一个变量:(除了以下命令之外,该变量不会被任何其他命令使用。实际上没有必要export。)

export PERL_BASE="/usr/local/perl"   # Or "$HOME" or whatever
Run Code Online (Sandbox Code Playgroud)

指示 ExtUtils::MakeMaker 安装位置:(假设$PERL_BASE不包含任何 shell 元字符)

export PERL_MM_OPT="INSTALL_BASE=$PERL_BASE"
Run Code Online (Sandbox Code Playgroud)

指示 Module::Build 安装位置:(假设$PERL_BASE不包含任何 shell 元字符)

export PERL_MB_OPT="--install_base $PERL_BASE"
Run Code Online (Sandbox Code Playgroud)

指示 Perl 在哪里查找模块:(假设$PERL_BASE不包括:

export PERL5LIB="$PERL_BASE/lib/perl5"
Run Code Online (Sandbox Code Playgroud)

指示系统在哪里寻找脚本:(假设$PERL_BASE不包括:

export PATH="$PERL_BASE/bin${PATH:+:$PATH}"
Run Code Online (Sandbox Code Playgroud)

指示系统在哪里查找手册页:(假设$PERL_BASE不包括:

export MANPATH="$PERL_BASE/man${MANPATH:+:$MANPATH}"
Run Code Online (Sandbox Code Playgroud)

全部一起:

export PERL_BASE="/usr/local/perl"
export PERL_MM_OPT="INSTALL_BASE=$PERL_BASE"
export PERL_MB_OPT="--install_base $PERL_BASE"
export PERL5LIB="$PERL_BASE/lib/perl5"
export PATH="$PERL_BASE/bin${PATH:+:$PATH}"
export MANPATH="$PERL_BASE/man${MANPATH:+:$MANPATH}"
Run Code Online (Sandbox Code Playgroud)