2011-05-10 102 views
11

都依賴這可能是一個重複的問題,所以原諒我的搜索技巧。下載的Perl模塊

我需要下載Windows/cygwin機器上的特定Perl模塊(local :: lib和其他)的所有依賴項(使用Perl 5.10.1)並將它們移動到Solaris機器上(使用Perl 5.8.8)沒有互聯網連接。

我見過minicpan在this question建議,但創建一個CPAN的完整副本是不是一種選擇,因爲我是一個企業網絡帶寬有限的。 CPAN :: Mini有一些過濾選項,但它處理路徑而不是依賴關係。

有沒有辦法做到這一點?

感謝,

伊萬

回答

7

退房包含在Perl發行的cpan2dist效用。 (這是在/usr/bin在我的Cygwin安裝。)

cpan2dist --help 

將創建在命令行上指定的模塊 的FMT類型的分佈,以及他們所有的先決條件。

還可以從本地存檔 創建FMT類型的分佈和它的所有先決條件

還沒有嘗試過,但它聽起來像是你以後。

+1

我期待的典型「的perl -MCPAN -e‘安裝模塊’」的迴應和驚喜!必須在某個時候嘗試。 – ericslaw 2011-05-10 16:19:36

+0

謝謝!我接受了這個答案,但並沒有自己嘗試過(只是使用了另一臺可以訪問Internet的機器:-P)。但從我在cpan2dist選項中看到的,你仍然需要編譯所有的包和依賴關係。我使用了下面的命令:'cpan2dist --format CPANPLUS :: Dist :: Build --buildprereq --skiptest --keepsource local :: lib'它給我編譯必備條件時出錯,所以我沒有深入研究它。如果有人有更簡單的方式下載源代碼,請告訴我。 – imiric 2011-05-11 23:25:11

3

cpanminus有一個選項來完成這一功能:--scandeps和--save-dists中。在解釋the new features of cpanm 1.4的博客文章中詳細瞭解該選項。

+1

謝謝,這看起來不錯。但是我仍然遇到了以前使用不同Perl版本的問題。使用Perl 5.12.3運行'cpanm --scandeps --save-dists -L/tmp/perl5 local :: lib'只會產生local :: lib,因爲所有其他依賴項都已經在覈心中。但我需要一種方法來指定我想測試哪個Perl版本;有點像一個自動化的工具來下載http://deps.cpantesters.org/的輸出。畢竟這可能不是個壞主意...... – imiric 2011-05-17 23:40:29