我最近开始一些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