2011-06-29 92 views
9

是否可以在一臺機器上運行多個安裝的Perl(在「容器」中)?如何在一臺機器上運行多個Perl安裝?

原因是我有不同的基於Perl的服務器端Web應用程序,並希望獨立安排更新。

例如,bugzilla升級對我來說似乎非常具有侵入性,它也會下載所有方式或模塊更新並且冗長(從而增加了在升級期間依賴於這些模塊的其他應用程序出現不可預知行爲的可能性仍然是部分)。

我認爲應該可以在一臺服務器上運行多個獨立的服務器端CGI Perl應用程序,我寧願不要將它們分離到不同的機器上 - 我認爲這很浪費,我沒有那個資源無論如何。

回答

9
+0

+1謝謝。我將不得不接受我需要花一些時間來研究它,看看它是如何工作的。但在此之前,我可能會接受你的答案。我會稍後再打開這個問題,看看是否有人願意貢獻。我希望O'Reilly能夠更新他們的Perl系列以及如何使用它,我喜歡他們可讀的指導性指南。 – therobyouknow

+1

@Rob更新了更多信息的鏈接。 – Raoul

+0

http://www.perlbrew.pl/ - ++ JACKPOT ++ !!!謝謝!!!喜歡這個報價「不需要再運行sudo來安裝CPAN模塊。」是!!!無需侵入性地全局安裝影響整個系統的所有模塊。我會檢查其他鏈接。謝謝。接受的答案。 – therobyouknow

7

安裝和管理多個perls很容易。只需將它們安裝在不同的地方並使用每個perl的工具即可。我在The Effective Perler中討論這個問題。

有人建議perlbrew沒有意識到它並沒有真正給你帶來任何好處。它可以下載perl,配置並安裝它,並切換符號鏈接以使其中一個爲默認值。不過,它並沒有做任何神奇的事情。

雖然下載和安裝不是問題。你從來不需要root或sudo來做這件事,如果你這樣做,你仍然需要它來做perlbrew。您可以隨時安裝到您有權限的任何目錄中。 perlbrew並沒有解決這個問題。從源代碼目錄,你有兩個簡單的命令來運行:

$./Configure -des -Dprefix=/where/you/want/to/install 
$ make install 

對你來說,這可能意味着Bugzilla的都有自己的Perl:

$./Configure -des -Dprefix=/where/you/want/to/install/bugzilla-perl 
$ make install 

從那裏,你有一個完全獨立的Perl安裝。當它關係到我這perl的我用,我給該程序的完整路徑:

#!/where/you/want/to/install/bugzilla-perl/bin/perl 

它很容易使這些每個應用程序的安裝不perlbrew,它想要做的一樣多,因爲它可以用於你,包括決定目錄名稱,它更喜歡你根本不知道的。

perlbrew的主要優點不在於編譯和安裝,而是它的switch功能讓你讓一個perl成爲默認值。你可能不想要這個功能,因爲你只需要使用你希望它們使用的perl的bugzilla,CGI程序等等,而不是你最後指定的默認perl。

當你想更新的Bugzilla-perl的,只是使用它的工具,它已經調整家當線找到合適的Perl:

$ /where/you/want/to/install/bugzilla-perl/bin/cpan ... 

我不喜歡那些長的路徑,雖然這就是我爲什麼製作links to them all。然後,我可以叫他們與任何命名方案我決定,這可能是:

$ bugzilla-cpan ... 

從未有哪些工具或版本我使用的問題。

+0

+1感謝brian d foy。我明白你在說什麼,我會考慮並回來。您的圖書是否以pdf格式提供? – therobyouknow

相關問題