2009-12-01 53 views

回答

13

我不知道貴公司的政策,但它可能會是一個更好的主意,不要亂用你的系統perl並在不同的位置安裝額外的庫及其先決條件(甚至專門perl),並使用lib

How do I keep my own module/library directory?perlfaq

+0

謝謝。這不是我想要的答案,但它是我需要的答案。 :) – 2009-12-01 15:14:39

+2

不是你需要的那個答案嗎? :) – 2009-12-01 15:42:23

+0

非常真實,好點! – 2009-12-01 16:12:23

6

我們的系統管理員是關心確保所請求的Perl模塊不會破壞系統中的其他任何東西的人。

因此,我們問,然後他們可以說「不,這將打破X,請安裝在用戶空間。」或者「出於兼容性原因,我們將在非標準位置安裝Y」。在做出這個決定時,我不知道他們考慮的所有事情。我應該知道的唯一事情就是當模塊安裝/更新時,我的應用程序是否會中斷。

如果您的系統管理員作爲開發人員將此職責(即瞭解整個系統的影響)傳遞給您,那麼與Sinan's suggestion配合使用並安裝非標準模塊需要更安全你自己的位置。不得不在同一時間成爲系統管理員和開發人員,同時付錢只是一件事,這並不好玩。

+0

感謝您的補充見解。 – 2009-12-01 15:38:23

4

這是特別是如果你使用的是共享主機或有一個託管服務提供商是持懷疑態度的安裝Perl模塊的一個經常被問到的問題。

有一個解決方法,一個方法來解決混合系統模塊和自己的模塊的這個問題,並修復被稱爲本地:: lib中。 local::lib爲您提供了一種方法,可以將模塊本地安裝在您指定的庫中,您可以控制該模塊。您可以使用/ home/you/perl5 /或任何您認爲可行的路徑。

PS - 穆斯模塊將最有可能不與其他干擾的Perl 5個模塊,因爲駝鹿有乾淨獨立的命名空間。但是,它確實需要很多來自CPAN的模塊,因此請提前警告您的系統管理員。 :)

另外,問你的系統管理員的Perl升級到5.10,帶來很多好的新東西到Perl的核心,並允許您使用一些閃亮的新的Perl技術。

+0

謝謝。我真正希望的是服務器運行Debian Lenny,以便5.10是標準的。 我想過建議升級到5.10,但擔心它可能是其他開發商產生負面影響。 – 2009-12-01 15:47:34

+0

是的,考慮到其他用戶的方式,將避免問題。 :)一個人只是希望每個人都這樣做。 好消息是,perl很難向後兼容,所以我不認爲會有很多中斷。但是,如果沒有很多測試,當然很難知道。 – jeremiah 2009-12-03 12:17:13

5

訣竅是不要擺脫舊的設置,直到你知道你的新設置工作。蹭的是,CPAN工具鏈並不在意,並且會很樂意在新的文件上安裝新的文件,而不會給你一種卸載你的破壞的方法。

如果我正在開發一個我要升級模塊的大型項目,我喜歡將這些新模塊放在他們自己的新目錄中。我可以通過將PERL5LIB設置爲新目錄來測試,如果不能解決問題,我只需簡單更改環境就可以回到舊版本。

有些人對源代碼管理做類似的事情。他們將模塊目錄放入版本控制系統中。當他們安裝新模塊時,他們檢查源代碼。當某些事情中斷時,他們只是回滾更改。他們還可以標記版本,以便他們可以回滾到任何工作點。

+0

非常感謝。這對我來說非常有用。 – 2009-12-01 22:08:34

相關問題