我聽說最好不要從系統版本的Perl所在的CPAN安裝模塊。我知道如何使用命令行來安裝模塊,我只是想知道是否有方法將CPAN與系統的核心Perl分開。安裝CPAN模塊而不搞亂系統Perl安裝
我應該:
下載源,並作出專門的目錄,這些模塊?
任何人有任何其他想法或實現,他們已經成功地使用?
我使用Arch Linux和Perl 5.16.2。
我聽說最好不要從系統版本的Perl所在的CPAN安裝模塊。我知道如何使用命令行來安裝模塊,我只是想知道是否有方法將CPAN與系統的核心Perl分開。安裝CPAN模塊而不搞亂系統Perl安裝
我應該:
下載源,並作出專門的目錄,這些模塊?
任何人有任何其他想法或實現,他們已經成功地使用?
我使用Arch Linux和Perl 5.16.2。
你在尋找類似local::lib
地方:: lib中 - 創建和使用本地的lib/Perl的模塊,PERL5LIB
爲什麼不將模塊打包成真正的軟件包,rpm或dep樣式?通過這種方式,您可以控制已安裝的軟件,您可以根據需要刪除和更新軟件包,就像您習慣的那樣。所以,不要繞過管理,這很少是一個好主意,你會保持控制。
如果您使用的是基於rpm的版本,我真的推薦OBS來完成這個任務。您可以創建自己的項目,配置源代碼,測試它們併爲各種發行版和體系結構創建包。當您將家庭項目資源庫導入到軟件管理中時,只需單擊一次即可安裝軟件包。
關於什麼的cpanminus? CPAN minus module
下載並解壓最新版本的local::lib
:
curl -LO http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
tar xzf local-lib-1.008004.tar.gz
cd local-lib-1.008004/
部署它:
perl Makefile.PL --bootstrap=$HOME/perl5
make
make test
make install
保存的持久性配置:
cat <<PROFILE>> $HOME/.profile
eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib)
PROFILE
現在,您可以註銷/登錄您的會議或簡單地source ~/.profile
。 完成這些步驟後,CPAN模塊將在本地安裝。
感謝您指導設置'local :: lib'。 +1 – squiguy
您不需要手動安裝模塊。你只需要在某個地方安裝它,並且你的環境被配置爲在那裏安裝它。然後你可以像平常一樣使用cpan/cpanp/cpanm/etc。 (cpan減去我的勝利)
手動設置該環境有點痛苦,所以大多數人使用應用程序爲它們設置配置。
這兩個主要的選擇是:
local::lib
- 設置你的環境變量,這樣你就可以安裝模塊從系統perl的離開,而是繼續使用該系統的Perl。
Perlbrew - 這會爲您安裝一個完整的perl,因此您可以完全避免您的系統perl,並使用更新的perl本身版本,然後可能隨系統提供。它還可以並行管理多個perl安裝(因此您可以針對不同版本的perl測試您的模塊)。我個人更喜歡Perlbrew(因爲它可以很容易地使用yada yada操作符和智能匹配等閃亮的新功能來玩(不是那種智能匹配現在是新的),但它需要更長的時間來設置(就像你要編譯perl的)。
我聽說,這是最好的你的系統的版本的Perl是不是從CPAN安裝模塊。
這樣做是爲了避免升級破壞你的發行版的工具他們使用的模塊
安裝模塊到一個新的目錄,並使用PERL5LIB
(這就是前面提到的安裝:: lib中所做的)是不會在所有幫助在這種情況下,因爲Perl看到完全一樣的東西告訴Perl的它,如果你已經安裝了模塊在通常的site
目錄中。
(其中將主要使用PERL5LIB安裝模塊時,一個沒有安裝到默認的目錄權限。)
的另一個問題使用該系統的Perl是要升級它阻止。
的解決這兩個是安裝你自己的Perl的版本。這很容易使用perlbrew
。
是 - 本地:: lib和也搶應用:: cpanminus - 在cpanm工具的工作原理非常整齊當地:: lib中 –
這無助於解決由OP提到的所有問題。看到我的答案。 – ikegami