我最近開始一些Perl開發,並使用CPAN來安裝我的所有軟件包。我想知道是否有一些「最佳實踐」來管理腳本或應用程序所需的軟件包。到目前爲止,我正在做這種不雅而麻煩的方式。我有一個腳本,看起來像這樣:我怎樣才能一次安裝幾個CPAN發行版?
install Foo::Bar
install Zulu::Car
...
,然後我做
$perl -MCPAN -e shell < mycpan.foo
我最近開始一些Perl開發,並使用CPAN來安裝我的所有軟件包。我想知道是否有一些「最佳實踐」來管理腳本或應用程序所需的軟件包。到目前爲止,我正在做這種不雅而麻煩的方式。我有一個腳本,看起來像這樣:我怎樣才能一次安裝幾個CPAN發行版?
install Foo::Bar
install Zulu::Car
...
,然後我做
$perl -MCPAN -e shell < mycpan.foo
我也不會高興,如果我下載了你的腳本,它會自動安裝一些CPAN包。正常的做法是簡單地列出文檔中的依賴關係,並讓用戶以他喜歡的任何方式自行安裝它們。
如果您自己創建一個CPAN模塊,您的CPAN安裝腳本中有一種標準的表示依賴關係的方式,該腳本是您的分發製造商爲您創建的(例如ExtUtils::MakeMaker或Module::Install)。
爲什麼downvote? – Ether 2009-11-06 01:37:10
這不應該有必要使用wetware,這是最後的手段 – 2009-11-06 04:05:19
即使您不上傳它,也可以像CPAN模塊一樣構建您的應用程序。
這基本上意味着你有一個正式描述依賴關係的Makefile.PL,你的應用程序作爲myapplication(假設它是一個命令行/桌面應用程序)在腳本/目錄中。
然後,有人可以使用CPAN客戶端安裝模塊,它的直接相關性,但解包壓縮包,然後運行
CPAN。
或者,該pip工具可讓人們直接從遠程URL安裝應用程序。
你怎麼能忘記提到任務? :) – 2009-11-06 18:18:30
這就是爲什麼Task::*分佈存在。您列出了您想要作爲依賴關係安裝在您的Task ::發佈中的所有發行版。任務發行本身不提供任何東西。
如果你是,你已經設置了工作目錄內:
$ cpan Task::WhateverYouCalledIt
:
$ cpan .
如果您有任務在MiniCPAN或DPAN,那麼你可以通過名稱安裝
一旦CPAN.pm獲取它,它會自動安裝所有的依賴關係。
我結束了使用Module :: Install並創建了一個Makefile.PL的形式: 使用inc :: Module :: Install; .. 需要'Foo :: Bar'; 要求'祖魯::汽車'; .. – ankimal 2009-11-11 01:50:44