【问题标题】:How can you run a config script when installing a perl module?安装 perl 模块时如何运行配置脚本?
【发布时间】:2019-01-10 09:08:19
【问题描述】:

我已经搜索了几个小时,但我试图找到解决方案却一无所获。我正在使用 Dist::Zilla。我有一个模块,它使用位于模块的share/ 目录中的.ini 格式的简单配置文件。安装我的模块后,我希望安装脚本提示用户输入配置选项并将用户的选项保存在配置文件中。然后,使用File::UserConfig,它将文件复制到用户的配置目录中,模块运行时可以在该目录中加载它。

有人建议使用 Dist::Zilla::Plugin::MakeMaker::Custom 模块,但我对 MakeMaker 以及如何编写自定义模块来启动配置脚本几乎一无所知。

我很惊讶我找不到任何让这件事变得容易的东西。也许我搜索的关键字有误?

【问题讨论】:

  • 交叉发布于perlmonks.org/?node_id=1227944 - 我想知道使用任何模板模块是否是为用户预填充配置文件的好方法?
  • 你想要 Dist::Zilla::Plugin::MakeMaker::Awesome,而不是 ::Custom。它仍然会生成正常的 Makefile.PL,但允许您加入并添加自定义项,而后者需要您编写整个 Makefile.PL。

标签: perl


【解决方案1】:

你曾在 IRC 中讨论过这个问题,要点是:

  1. 您不能依赖允许任何交互的安装过程,因为大量安装是通过 cpanm 进行的,它是非交互的,默认情况下隐藏 Makefile.PL 的输出。这是因为用户不喜欢配置东西,例如,Carton 部署本质上通常是非交互式的。您可以允许通过 Makefile.PL 识别的环境变量进行配置来解决这个问题。

  2. 您可以使用 cpanm 的 --interactive 选项记录以响应 Makefile.PL 中的提示,使用 [MakeMaker::Awesome] 插件注入到生成的文件中。

  3. 您可以在分发中包含一个脚本,该脚本将设置配置,以便用户可以独立于安装自行完成。

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多