2008-12-29 98 views

回答

6

標準解決方案是產生一個「autobundle」與CPAN.pm 之前升級Perl。搜索autobundle會產生一些關於討論Perl模塊管理的現有SO問題的鏈接,以及幾個看起來應該提供更多信息的鏈接。 CPAN.pm manual涉及autobundle,但不包含太多細節。

由於您已經升級了Perl,因此安裝模塊的一個解決方案是生成自動綁定文件並使用生成文件中的條目作爲指導,以便爲您的模塊寫入包含條目的自定義自動綁定文件(僅限於) 。 autobundle文件格式只是POD,所以這應該很容易做到。

將來你應該習慣於在升級Perl之前生成一個自動包裝。這不是一個完美的解決方案,autobundle將包含核心模塊的條目,在實際構建之前必須將其刪除,但至少您會獲得已安裝Perl模塊的快照,以便您可以修復Perl安裝升級後。

+2

要創建自動裝配,請查找舊的perl二進制文件並使用它運行cpan命令與-a開關(即/usr/local/bin/perl5.8.5 cpan -a)。 – 2008-12-29 18:59:31

4

Perl在Intrepid上更改。

升級之前,你有Perl 5.8,現在你有5.10。

1

由於Perl版本可能/usr/lib/perl5/5.10.*是用來代替/usr/lib/perl5/5.8.8已經改變

+0

反過來。他安裝的模塊位於/usr/lib/perl5/5.8.8,perl正在查找/usr/lib/perl5/5.10.0 – 2008-12-29 15:43:11

5

您的Perl安裝已從版本5.8更改爲5.10。由於您需要的許多模塊都位於perl-version特定的目錄中,因此可能需要使用CPAN工具重新安裝(例如,cpan命令)。

但是,由於您使用的是Ubuntu,請記住許多許多CPAN庫也通過Ubuntu軟件包管理器分發,並且CPAN軟件包將安裝到與Ubuntu安裝不同的位置(這對用戶是透明的,因爲兩者都在@INC路徑中)。

我建議在可用時使用Ubuntu軟件包,因爲當軟件包管理器(APT)在中央軟件包服務器上發佈新軟件包時,它們將進行更新。名稱格式稍有不同。這裏有兩種方法來安裝相同的包,從不同的來源:

$ cpan List::MoreUtils # installs latest from CPAN

$ sudo apt-get install liblist-moreutils-perl # installs latest from Ubuntu universe

後者的優點是,它會被sudo apt-get update更新。

相關問題