gpt4 book ai didi

perl - 我如何知道机器上的特定 Perl 安装最初提供了哪些模块?

转载 作者:行者123 更新时间:2023-12-04 10:45:38 28 4
gpt4 key购买 nike

我如何知道机器上的特定 Perl 安装最初提供了哪些模块?

(这不是以下内容的重复:
How can I tell if a Perl module is core or part of the standard install?
(“我如何判断 Perl 模块是核心还是标准安装的一部分?”)
- 这实际上是它的一个衍生问题)

我正在寻找最初安装附带的内容,作为该安装的一部分提供的模块,内置的内容。不是从那以后安装的。

我希望它适用于任何 Perl 版本。

我希望能够做到这一点:

  • 在安装的机器上使用 Perl 程序本身/命令中的脚本。因此,为此,我将依靠安装以某种形式记录它最初的内容。
  • 在我安装之前下载的包上。问它有什么模块。

  • 我想这样做的原因是:
  • 我想知道在编写软件以在安装了 Perl 的机器上运行时,我可以期望哪些默认模块,以及我需要添加哪些不是默认的模块
  • 如果我保留原始安装程序镜像/包或知道如何再次在线获取确切的内容,那么我可以为多台机器进行可重复的一致 Perl 安装,并且知道哪些模块将存在,哪些模块将不存在。
  • 我的 Perl 软件将有一个定义明确的部署过程,因为它很容易准确地定义软件所需的内容
  • 由于我的组织中存在的政策,我可能无法轻松更新/升级 Perl 版本(就是这样,我不想就此展开讨论)。这样的政策是有道理的,因为升级到新软件总是存在超过 yield 的风险。因此,开发人员需要知道他们可以期望得到什么。

  • 我问这个问题的原因是,对于任何 Perl 版本,似乎都没有一种自动方式来找出总体标准安装来定义您可以期望在您的机器上的默认安装中出现哪些模块 - 请参阅问题:
    How can I tell if a Perl module is core or part of the standard install?
    (“我如何判断 Perl 模块是核心还是标准安装的一部分?”)

    不能依赖 Perl 版本来告诉您哪些模块存在或不存在。当然,网上可能有文档告诉你。但我需要在我下载/安装的版本上自动执行此操作。即使是相同的 Perl 版本在不同的 Linux/Unix 发行版上也可能不同。

    最佳答案

    一般来说你不能。如果您接受这一点并从不同的角度解决问题,您的挫败感就会少得多。 Module::CoreList提供了所有安装中应包含的最低限度的列表,但供应商不需要遵守该列表,并且大多数发行版都包含许多不属于核心的模块。除非为每个发行版的哪个版本中包含的内容建立自己的数据库——这是一项艰巨的任务——没有太大的希望。请注意,即使对于分发版附带的模块,安装的版本也可能不同。

    我可以看到几种不同的方法来解决这个问题:

  • 如果您在开发时就知道您的目标(例如,特定的
    ActivePerl 版本),您可以根据它做出决定。
  • 对于一般情况,像模块一样部署您的应用程序并指定
    依赖关系。例如使用 Module::Build并列出先决条件requires Build.pl 脚本的部分。 cpan shell 可以跟随并解决
    自动依赖。
  • 如果您想完全回避这个问题,请使用 PARPar::Packer
    创建独立的部署包。
  • 关于perl - 我如何知道机器上的特定 Perl 安装最初提供了哪些模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085516/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com