2010-09-20 173 views
4

我安裝使用perlbrew的Perl 5.12.2:爲什麼不能識別`cpanm`安裝的模塊?

perlbrew install perl-5.12.2 -D=usethreads -D=useithreads -D=uselargefiles -f 

我然後切換到這個版本,並使用cpanm安裝IPC::System::Simple

然而,當我嘗試運行我的腳本,我得到:

Can't locate IPC/System/Simple.pm in @INC (@INC contains: /home/dave/workspace/proj1/scripts/bin/../lib /home/dave/src/bioperl-live /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2 /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2 .) at /home/dave/workspace/proj1/scripts/bin/../lib/createLayout.pm line 14. 

我還發現以下目錄: ~/perl5/lib/perl5/x86_64-linux-thread-multi/auto/IPC/System/Simple 但它是空的(我不知道,如果這意味着什麼)。

回答

2

從命令行顯示which cpanm是什麼顯示?對你而言,它應該報告:

/home/dave/perl5/perlbrew/bin/cpanm 

如果那是OK,那麼ls -l /home/dave/perl5/perlbrew/bin/cpanm顯示什麼?應指向:

cpanm -> /home/dave/perl5/perlbrew/perls/current/bin/cpanm 

最後ls -l /Users/barry/perl5/perlbrew/perls/current應指向Perl的你在perlbrew切換到:

/home/dave/perl5/perlbrew/perls/current -> perl-5.12.2 

所有這三個必須是這樣的,否則什麼是錯的。

如果不是那麼一個可能的問題是cpanm指向另一個安裝的Perl。你需要有perlbrew下安裝Perl的各個版本cpanm

perlbrew switch perl-5.12.2 
curl -L http://cpanmin.us | perl - App::cpanminus 

現在,如果which cpanm仍然不顯示perlbrew路徑,你在你的.bash_profile(或同等學歷)的文件有$PATH優先發布。這可以通過確保您的perlbrew線固定...

source /home/dave/perl5/perlbrew/etc/bashrc 

...在配置文件中的任何其他export $PATH行之後。

重新登錄後,您可以通過執行echo $PATH來確認這是正確的,您應該在路徑字符串的開頭(左側)看到perlbrew,即。像這樣:

/home/dave/perl5/perlbrew/bin:/home/dave/perl5/perlbrew/perls/current/bin:/usr/bin:/bin:/usr/local/bin: 
+0

我在第一個問題上失敗。 '哪個cpanm'顯示'/ usr/bin/cpanm'。我遵循CanSpice鏈接指南,並且一切都很好**除了**,我無法運行'cpan-outdated'(就好像它沒有安裝)。因爲我甚至沒有'/ home/dave/perl5/perlbrew/perls/current/bin/cpanm',我認爲'cpanm'安裝不正確(儘管我在安裝之前切換了)。然而,第三件事似乎很好:'/ home/dave/perl5/perlbrew/perls/current - > perl-5.12.2'。 – 2010-09-20 19:11:07

+0

我現在注意到指南和您的一條指示有區別。比較你的'curl -L http://cpanmin.us | perl - --sudo App :: cpanminus'和指南的'curl -L http://cpanmin.us | perl - App :: cpanminus'。我無法sudo,因爲我的用戶不在管理員組中。它是否合適?附:我可以'蘇'... – 2010-09-20 19:16:43

+0

是'--sudo'在perlbrew下安裝時不需要(已編輯)。 – draegtun 2010-09-20 20:50:51

3

嘗試this step-by-step guide,密切關注步驟7和8(以及可選的9)。

+0

+1謝謝。尚未解決(請參閱我對draegtun的評論),但希望途中... – 2010-09-20 19:19:27

相關問題