【问题标题】:How to install local tar file dependencies together with dependencies from CPAN?如何将本地 tar 文件依赖项与来自 CPAN 的依赖项一起安装?
【发布时间】:2015-09-13 21:56:14
【问题描述】:

假设有一个分发“示例”打包在example-1.0.tar.gz 中,其中包含指向所有依赖项的Makefile.PL。解压后,“Example”可以通过调用cpanm . 轻松安装(包括其所有依赖项),如果它的所有依赖项都在 CPAN 上可用。

如果给我一个包含大部分发行版依赖项的文件夹“deps”,我该如何安装一个类似的文件(我们称之为example-2.0.tar.gz

  • dependency-1.tar.gz
  • dependency-2.tar.gz
  • ...
  • 依赖-N.tar.gz

N 是一个很大的数字吗?

进一步的假设是:

  • dependency-*tar.gz 文件必须优先于可用的 CPAN 模块
  • 某些依赖项在 CPAN 上不可用,而只能在此“deps”文件夹中使用
  • “deps”文件夹不完整,必须从 CPAN 安装更多依赖项。

有没有简单的方法来安装example-2.0.tar.gz

我想知道是否有像cpanm --use-local-deps=~/deps example-2.0.tar.gz 这样不需要进一步解决方法的命令行。

【问题讨论】:

  • 从未使用过它们,但CPAN::InjectCPAN::Mini::Inject 可能有用。
  • 我之前已经尝试过 CPAN::Mini(::Inject)。问题是,事情变得相当复杂,我必须维护一个本地 CPAN 镜像,我有点大(目前我需要下载超过 3GB 的分发包,我最后不需要)。但无论如何,对于某些读者来说,这也可能是一个很好的解决方案。
  • CPAN::Inject 怎么样?据我从文档中得知,这应该适用于您现有的 CPAN 安装(无需设置本地镜像)。

标签: perl cpan


【解决方案1】:

您可以使用此工具 http://search.cpan.org/~bingos/CPANPLUS-0.9152/bin/cpan2dist 。它允许您指定过滤器来定义本地加载的模块以及从 CPAN 获取的模块。它是 CPANPLUS 模块的一部分,我认为它应该与更新版本的 Perl 保持一致。

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 2010-10-28
    • 2014-01-02
    • 2016-08-21
    • 2018-09-19
    • 1970-01-01
    • 2019-01-24
    • 2020-05-30
    • 2015-01-24
    相关资源
    最近更新 更多