1. 程式人生 > >[perl] perlbrew 與 local::lib 的並存時,模組在INC路徑卻不被搜尋的問題及解決

[perl] perlbrew 與 local::lib 的並存時,模組在INC路徑卻不被搜尋的問題及解決


 
目的導向者可直接看後面的workaround.

問題描述:
通過perlbrew環境下cpanm安裝模組時,有些模組安裝到PERL5LIB。
即使為某個版本的perl設定單獨的local::lib目錄,perlbrew執行指令碼時,也沒有在PERL5LIB目錄中尋找模組!
 perl -Mlocal::lib
 perlbrew lib list
 which perl
 perl -v
 perlbrew lib create v5.24.0
 perlbrew lib list
 perlbrew switch 
[email protected]
 cpanm -v --reinstall --mirror http://mirrors.163.com/cpan --mirror-only  File::MMagic
搞笑的是,env|grep PERL5 時,可以看到PERL5LIB已經是perlbrew定製的路徑,
並且perl -V中的@INC確實包含了該定製的PERL5LIB路徑,
然並卵。

 
Workaround: 臨時解決方案先,否則應該對perlbrew做修正
將local::lib關閉,避免模組安裝到PERL5LIB.
而local::lib對perlbrew也沒什麼價值。
unset PERL_MB_OPT PERL_MM_OPT PERL_LOCAL_LIB_ROOT PERL5LIB
cpanm -v --reinstall --mirror http://mirrors.163.com/cpan --mirror-only  File::LibMagic