代码之家  ›  专栏  ›  技术社区  ›  Sinan Ünür

将实用程序模块添加到CPAN分发版的正确方法是什么?

  •  5
  • Sinan Ünür  · 技术社区  · 14 年前

    我想把一些东西考虑进去 Crypt::SSLeay Makefile.PL 分成几个单独的类。这些类只能由 生成文件.pl . 因此,我确实想要它们

    1. 不被暂停索引器索引
    2. 不作为模块的一部分安装。

    我应该把它们放进去吗 inc Module::Install 做?我还应该注意什么?

    2 回复  |  直到 14 年前
        1
  •  4
  •   daxim e.dan    14 年前

    暂停查找 no_index meta.yml文件中的参数(规格: v1.4 , v2 )默认meta.yml ExtUtils::MakeMaker 使包含

    no_index:
        directory:
            - t
            - inc
    

    但是如果你愿意的话,你可以添加更多的数据。

        package:
            - Some::Package::Used::For::Building::But::Not::To::Be::Installed
        file:
            - a-file/with/a/package/statement/that-should-be/ignored.pm
    
        2
  •  2
  •   brian d foy    14 年前

    这里有两个问题。一种是防止pause索引您的发行版中的额外模块,这样它们就不会出现在 02包 以及如何不欺骗用户安装它们。

    暂停答案是正确修复的组合,即 no_index 以及装模作样的古老民间传说 MLDistWatch(最大距离监视) . pause想发现您的发行版中有哪些软件包。它寻找 package 与命名空间位于同一行。如果它不在同一条线上,暂停就会越过它。因此,您将在一些旧的“隐藏”模块行中看到,例如:

     package # separate lines get past PAUSE
          Some::Helper::Module;
    

    如果你喜欢看窗帘后面,相关的代码在 PAUSE::mldistwatch::filter_pms() PAUSE github repo )

    另一个问题是不要在发行版中安装额外的东西。索引与此无关。构建文件将很多东西移入 布利布 (构建库)准备安装。任何结束在那里的东西都会被安装。诀窍是不要让构建者将助手模块放在那里。只要你不把它们放在发行版的顶层或者 国际清算银行 目录。