[perl] perlbrew 與 local::lib 的並存時,模組在INC路徑卻不被搜尋的問題及解決
阿新 • • 發佈:2018-12-11
目的導向者可直接看後面的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