我最近开始了一些 Perl 开发并使用 CPAN 来安装我所有的包。我想知道是否有一些“最佳实践”来管理脚本或应用程序所需的包。到目前为止,我正在以不优雅和繁琐的方式进行操作。我有一个看起来像这样的脚本:
install Foo::Bar
install Zulu::Car
...
然后我做
$perl -MCPAN -e shell < mycpan.foo
我最近开始了一些 Perl 开发并使用 CPAN 来安装我所有的包。我想知道是否有一些“最佳实践”来管理脚本或应用程序所需的包。到目前为止,我正在以不优雅和繁琐的方式进行操作。我有一个看起来像这样的脚本:
install Foo::Bar
install Zulu::Car
...
然后我做
$perl -MCPAN -e shell < mycpan.foo
即使您不会上传它,也可以像 CPAN 模块一样构建您的应用程序。
这基本上意味着您有一个正式描述依赖关系的 Makefile.PL,并且您的应用程序作为 myapplication 位于 script/ 目录中(假设它是命令行/桌面应用程序)。
然后,有人可以使用 CPAN 客户端直接安装您的模块及其依赖项,但解压缩 tarball 然后运行
盘。
或者,pip 工具将允许人们直接从远程 URL 安装您的应用程序。
这就是存在Task::*分布的原因。你列出了所有你想在你的 Task:: 发行版中作为依赖安装的发行版。Task 发行版本身不提供任何东西。
如果您在设置任务的目录中:
$ cpan .
如果您在 MiniCPAN 或 DPAN 中有 Task,那么您可以按名称安装它:
$ cpan Task::WhateverYouCalledIt
一旦 CPAN.pm 得到它,它将自动安装所有依赖项。
如果我下载了您的脚本并自动安装了一些 CPAN 软件包,我会不高兴。正常的做法是简单地在文档中列出依赖项,并让用户以他喜欢的任何方式自行安装它们。
如果您自己创建一个 CPAN 模块,在您的 CPAN 安装脚本中有一种表示依赖关系的标准方法,该脚本是由您的发行版制造商为您创建的(例如ExtUtils::MakeMaker或Module::Install)。