【问题标题】:CPAN Requirements FileCPAN 要求文件
【发布时间】:2015-09-28 09:45:41
【问题描述】:

使用 pip,您可以创建一个需求文件来指定要安装的库。是否有使用 CPAN 的 perl 模块的等价物?

我遇到了 ExtUtils::MakeMaker,但这似乎是针对每个模块的 make 文件。

我想尝试更好地了解我要问的是是否有办法做类似的事情

cpan install -r requirements.txt

然后在该需求文件中指定要安装的模块。

提前致谢!

【问题讨论】:

  • 您是在问如何为您编写的模块指定先决条件,以便其他人可以安装它?或者你只是想在你自己的系统上安装一堆不相关的模块,这些模块列在一个文件中?

标签: perl cpan requirements.txt cpanm


【解决方案1】:

当您从 CPAN 安装模块时,每个模块都会在 Makefile.PL(或 Build.PL)中指定其依赖项,并且 CPAN shell 将在安装时递归地解析这些依赖项。

如果您想为应用程序(而不是 CPAN 模块)指定依赖项,您可以创建一个名为 cpanfile 的文件,格式如下:

requires 'JSON';
requires 'Template';
requires 'DateTime';
requires 'DBIx::Class';

然后您可以使用一个命令安装这些依赖项:

cpanm --installdeps .

cpanm 命令来自App::cpanminus 发行版,是从 CPAN 安装模块的替代工具。

请参阅cpanfile docs 了解更多信息。

【讨论】:

    【解决方案2】:

    我认为 Carton 正是您想要的。

    要开始使用 Carton,请安装它。然后使用您的依赖项创建一个 cpanfile:

    require 'Test::Most';
    require 'Math::BaseConvert';
    

    有了这个文件,运行

    carton install
    

    这将在必要时安装这些模块,并编写一个名为 cpanfile.snapshot 的文件,其中包含依赖项信息。

    另见:Brief Notes on Managing Perl Dependencies with Carton

    PS:查看 Stratopan。

    【讨论】:

    • 谢谢,carton 和 cpanfile 正是我要找的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多