【问题标题】:Installing local module + submodules using cpanp使用 cpanp 安装本地模块 + 子模块
【发布时间】:2021-01-09 05:25:47
【问题描述】:

我的项目结构如下:

A/
|- B.pm
|- B/
 |- one.pm
 |- two.pm
 |- three.pm

B.pm我有:

package A::B;

use A::B::one;
use A::B::two;
use A::B::three;

现在,我正在尝试使用 cpanp 在本地安装此模块。在A 目录中时,我只需运行:

cpanp i .

它说模块“A”安装成功,但是,当我列出$PERL5LIB 目录的内容时,我只能看到B.pm 而不是A/

我做错了什么?

【问题讨论】:

  • 您需要从您的模块中创建一个发行版,以便cpanp 知道安装时要包含的内容
  • 查看module-starter 以获取简单的方法
  • @HåkonHægland 感谢您提供信息。在本地使用这种方法是否也有好处? (也就是说,如果我不想分发我的模块。)

标签: perl cpan


【解决方案1】:

这可能不是推荐的方法,但对于那些寻求快速而肮脏的解决方案的人,只需将所有内容移动到 lib 目录即可。

对我来说是这样的:

A-B
└── lib
    └── A
        ├── B
        │   ├── one.pm
        │   ├── three.pm
        │   └── two.pm
        └── B.pm

A-B 目录中时,我只需运行:

cpan .

因为我只想在本地安装我的模块,所以这种方法对我有用,但如果您认为有充分的理由使用像 module-starter 这样的工具(如 @HåkonHægland 所建议的那样)或至少编写我自己的 Makefile,请告诉我。 PL(这实际上是我想列出依赖项时最终采用的方法)。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 2021-02-21
    • 2019-11-28
    • 2013-03-26
    • 2015-05-07
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 2014-06-29
    相关资源
    最近更新 更多