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