【发布时间】:2010-01-18 11:11:15
【问题描述】:
我如何知道机器上的特定 Perl 安装最初提供了哪些模块?
(这不是的副本: How can I tell if a Perl module is core or part of the standard install? (“我如何判断 Perl 模块是核心还是标准安装的一部分?”) - 这实际上是一个衍生问题)
我正在寻找安装最初附带的内容、作为该安装的一部分提供的模块、内置的内容。不是从那以后安装的。
我希望它适用于 任何 Perl 版本。
我希望能够做到这一点:
- 在安装的机器上使用 Perl 程序本身/命令中的脚本。因此,为此,我将依靠安装以某种形式记录它最初的内容。
- 在我安装之前下载的包。询问它有哪些模块。
我想这样做的原因是:
- 我想知道在编写软件以在安装了 Perl 的机器上运行时,哪些模块可以作为默认模块,以及我需要添加哪些不是默认模块
- 如果我保留原始安装程序映像/包或知道如何再次在线获取确切的内容,那么我可以为多台机器进行可重复的一致 Perl 安装,并且知道哪些模块将出现,哪些模块不会出现。
- 我的 Perl 软件将有一个定义明确的部署过程,因为它很容易准确地定义软件所需的内容
- 由于我所在组织的政策,我可能无法轻松地更新/升级 Perl 版本(就是这样,我不想就此展开讨论)。这样的政策是有道理的,因为升级到新软件总是存在超过收益的风险。因此,开发者需要知道他们可以期待什么。
我问这个问题的原因是,对于任何 Perl 版本,似乎都没有一种自动方式来找出总体标准安装,定义您可以期望在您的机器上的默认安装中出现哪些模块 -见问题: How can I tell if a Perl module is core or part of the standard install? (“如何判断 Perl 模块是核心还是标准安装的一部分?”)
不能依赖 Perl 版本来告诉您哪些模块存在或不存在。当然,网上可能有文档告诉你。但我需要一种自动方式在我下载/安装的版本上执行此操作。即使是相同的 Perl 版本在不同的 Linux/Unix 发行版上也可能不同。
【问题讨论】:
-
您是否考虑过使用 PAR 或 ShipWright?
-
您已经有了这个非常笼统的问题的答案。一个有答案的更好的问题是“我如何知道 Debian 附带了哪些 Perl 模块?”
-
@brian d foy:当然是 Debian,但我也需要能够在其他各种发行版上执行此操作,正如评论说这是从 (stackoverflow.com/questions/2049735) 衍生出来的问题/跨度>
-
@Alexandr Ciornii:谢谢-我会调查 ShipWright,到目前为止我发现:search.cpan.org/~sunnavy/Shipwright-2.4.4 和 PAR,我发现:par.perl.org/wiki/Main_Page
-
@Rob:是的,我知道您希望在不同的平台上使用它,但是每个平台(以及该平台的每个版本)都会有不同的答案。除非您缩小问题范围,否则您不会得到比现有答案更好的答案。
标签: perl deployment perl-module