簡體   English   中英

安裝CPAN模塊而不會弄亂系統Perl安裝

[英]Install CPAN Modules without messing up the system Perl installation

我聽說最好不要安裝CPAN系統的Perl版本的模塊。 我知道如何使用命令行安裝模塊,我只是想知道是否有辦法將CPAN與系統的核心Perl分開。

我是不是該:

下載源代碼並專門為這些模塊創建一個目錄?

任何人都有他們成功使用的任何其他想法或實施?

我正在使用Arch Linux和Perl 5.16.2。

你在尋找像local::lib這樣的東西嗎?

local :: lib - 使用PERL5LIB創建並使用本地lib / for perl模塊

下載並解壓縮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模塊。

您無需手動安裝模塊。 您只需要在某處安裝它,並將您的環境配置為在那里安裝它。 然后你可以正常使用cpan / cpanp / cpanm / etc。 (cpan減去我的勝利)

手動設置該環境有點麻煩,因此大多數人使用應用程序為它們設置配置。

這方面的兩個主要選擇是:

local::lib - 這將設置環境變量,以便您可以遠離系統perl安裝模塊,但繼續使用系統perl。

Perlbrew - 這將為您安裝一個完整的perl,因此可以讓您完全避免使用perl系統,並使用更新的perl版本,然后可能隨系統一起提供。 它還可以並排管理多個perl安裝(因此您可以針對不同版本的perl測試您的模塊)。

就個人而言,我更喜歡Perlbrew(因為它可以很容易地玩yada yada運算符和智能匹配等閃亮的新功能(現在不是那么聰明的匹配)但是設置需要更長時間(因為你需要編譯perl) )。

我聽說最好不要安裝CPAN系統的Perl版本的模塊。

我們的想法是通過升級他們使用的模塊來避免破壞您的發行版工具。

將模塊安裝到一個新目錄並使用PERL5LIB告訴Perl它(這就是前面提到的install :: lib所做的)在這種情況下根本沒有幫助,因為Perl看到的東西與安裝模塊完全相同在通常的site目錄中。

(當一個人沒有安裝到默認目錄的權限時,主要使用PERL5LIB來安裝模塊。)

使用Perl系統的另一個問題是您無法升級它。

兩者的解決方案是安裝自己的Perl構建。 使用perlbrew非常容易。

什么是cpanminus? CPAN減去模塊

為什么不將模塊打包成真正的包,rpm或dep風格? 這樣您就可以控制已安裝的軟件,您可以根據需要隨意刪除和更新軟件包。 所以,不要繞過管理,這很少是一個好主意,你保持控制。

如果您使用的是基於rpm的發行版,我真的推薦OBS來完成這項任務。 您可以創建自己的項目,配置源代碼,測試它們,並為各種分發和體系結構創建包。 當您將家庭項目存儲庫導入軟件管理時,只需單擊一下即可安裝軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM