配置Perl模块安装路径

配置Neovim时,安装插件需要配置Perl路径,否则会报错如下:

perl
1
2
3
4
5
6
7
8
9
10
11
Perl provider (optional) ~
- perl executable: /usr/bin/perl
- WARNING Can't write to /usr/share/perl5/site_perl and /usr/bin: Installing modules to /home/feng/perl5
- ADVICE:
- To turn off this warning, you have to do one of the following:
- - run me as a root or with --sudo option (to install to /usr/share/perl5/site_perl and /usr/bin)
- - Configure local::lib in your existing shell to set PERL_MM_OPT etc.
- - Install local::lib by running the following commands
-
- cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
- OK Latest "Neovim::Ext" cpan module is installed: 0.06

为了应对这个错误,我们选择执行第二条建议:配置Perl路径。为了方便起见,让我们将基本位置分配给一个变量:(除了以下命令之外,任何变量都不使用这个变量。实际上,没有必要使用export )。

1
export PERL_BASE="/usr/local/perl" # Or "$HOME" or whatever

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

1
export PERL_MM_OPT="INSTALL_BASE=$PERL_BASE"

指令模块::构建安装位置:(假设$PERL_BASE不包括任何shell元字符)

1
export PERL_MB_OPT="--install_base $PERL_BASE"

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

1
export PERL5LIB="$PERL_BASE/lib/perl5"

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

1
export PATH="$PERL_BASE/bin${PATH:+:$PATH}"

指示系统查找手册页的位置:(假设$PERL_BASE不包括:)

1
export MANPATH="$PERL_BASE/man${MANPATH:+:$MANPATH}"

合在一起,并添加到~/.zshrc文件:

~/.zshrc
1
2
3
4
5
6
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}"