2012-02-14 101 views
2

我在Linux機器上有一個日期系統perl 5.8.8,並從ActiveState安裝了5.12.4。 perl的cpan_home~root/.cpan。我正要改變新的perl的cpan_home,但後來我意識到我沒有知道我是否真的必須這樣做,或者它是否會導致模塊的多個副本被下載到不同的目錄,實際上他們可能會共享。在一臺機器上安裝各種Perl安裝是否安全共享cpan_home?

所以他們可以嗎?它安全嗎?關於編譯?或者我必須去單獨的cpan_home目錄?

請注意,我首先嚐試了perlbrew,但是因爲Can't load '../lib/auto/IO/IO.so' for module IO: ../lib/auto/IO/IO.so: wrong ELF class: ELFCLASS64 at ../lib/XSLoader.pm line 70.而失敗了所以,我沒有去追究這個問題,而是去找了易於安裝的ActivePerl。

回答

5

我在我的系統上有十幾個Perl版本,他們都使用~/.cpan。我從來沒有遇到過問題,但我不能說它是安全的。這取決於其中的設置。具體而言,

  • build_dir_reuse應該(可能)爲零。
  • makepl_arg不應該包含INSTALL_BASE
  • mbuildpl_arg不應該包含--install_base

「安裝基礎」會覆蓋安裝模塊的位置。如果您開始在一個位置安裝所有版本的模塊,由於版本,發行版和Perl版本之間不兼容,您將遇到問題。

如果你想分享.cpan並有一個本地安裝目錄,你可能會使用PREFIX=/home/username/perl5 LIB=/home/username/perl5/lib而不是INSTALL_BASE=/home/username/perl5。它使用更智能的目錄結構。

順便說一下,local :: lib會導致使用「安裝基礎」,所以如果你使用local :: lib和多個安裝的Perl,你會遇到問題。

+0

更新爲清晰起見。 – ikegami 2012-02-14 22:36:06

+0

謝謝,ikegami。 'build_dir_reuse'聽起來好像有可能混淆事物。不過,我不確定我是否正在關注'INSTALL_BASE'。這些設置駐留在'CPAN/Config.pm'中,甚至是單獨的'.cpan',但錯誤的設置相同,你可以用一個模塊來打開perl模塊。另一方面,一個共享的'.cpan',每個perl都有自己合理的'INSTALL_BASE'聽起來不錯,不是嗎?但是你有更多的代表,所以你可能會更清楚...... :) – Lumi 2012-02-15 18:01:49

+0

他們在'〜/ .cpan/CPAN/MyConfig.pm'中。 – ikegami 2012-02-15 19:24:42

相關問題