我如何知道机器上特定 Perl 安装最初提供了哪些模块?
(这是not的副本:如何判断 Perl 模块是核心还是标准安装的一部分? https://stackoverflow.com/questions/2049735(“如何判断 Perl 模块是核心模块还是标准安装的一部分?”)
- 这实际上是它的一个衍生问题)
我正在寻找安装附带的内容起初,安装过程中提供了哪些模块,内置了哪些模块。不是从那时起安装的。
我希望与此合作anyPerl 版本。
我希望能够做到这一点:
- 在 Perl 程序本身/命令中使用脚本在机器上那个有安装。因此,为此,我将依靠安装以某种形式记录其最初的内容。
- 在安装之前在下载的软件包上。询问它有哪些模块。
我想这样做的原因是:
- 我想知道在编写在安装了 Perl 的计算机上运行的软件时可以默认使用哪些模块,以及需要添加哪些非默认模块
- 如果我保留原始安装程序映像/包或者知道如何再次在线获取确切的内容,那么我就可以为多台机器进行可重复的一致 Perl 安装,并了解哪些模块将存在以及哪些模块将不存在。
- 我的 Perl 软件将有一个明确定义的部署过程,因为很容易准确定义软件的需求
- 由于我的组织中制定的政策,我可能无法轻松更新/升级 Perl 版本(事情就是这样,我不想对此进行侧面讨论)。这种政策是合理的,因为升级到新软件的风险总是大于其好处。因此,开发人员需要知道他们可以期望获得什么。
我问这个问题的原因是,对于任何 Perl 版本,似乎没有一种自动方法来找出总体标准安装,定义您可以期望在计算机上的默认安装中出现哪些模块 - 请参阅问题:如何判断 Perl 模块是核心还是标准安装的一部分? https://stackoverflow.com/questions/2049735(“如何判断 Perl 模块是核心模块还是标准安装的一部分?”)
不能依赖 Perl 版本来告诉您哪些模块存在或不存在。当然,网上可能有文档可以告诉您。但我需要一个自动化的在我下载/安装的版本上执行此操作的方法。即使相同的 Perl 版本在不同的 Linux/Unix 发行版上也可能不同。
一般来说你不能。如果你接受这一点并从不同的角度解决问题,你的挫败感就会少很多。模块::核心列表 http://search.cpan.org/perldoc?Module::CoreList提供了一个列表should作为最低限度包含在所有安装中,但供应商不需要遵守这一点,并且大多数发行版都包含许多不属于核心的模块。除非建立自己的数据库来记录每个发行版的哪个版本中包含的内容(这是一项艰巨的任务),否则希望不大。请注意,即使对于发行版附带的模块,安装的版本也可能不同。
我可以看到几种不同的方法来解决这个问题:
- 如果您在开发时知道您的目标(例如特定的
ActivePerl 版本)您可以据此做出决定。
- 对于一般情况,像模块一样部署您的应用程序并指定
依赖关系。例如使用模块::构建 http://search.cpan.org/perldoc?Module::Build并列出先决条件
requires
Build.pl 脚本的部分。这cpan http://search.cpan.org/perldoc?CPANshell 可以跟踪并解析
自动依赖。
- 如果您想完全回避该问题,请使用PAR http://search.cpan.org/perldoc?PAR and 参数::打包机 http://search.cpan.org/perldoc?Par::Packer到
创建独立的部署包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)