【问题标题】:CPAN install into temp directory?CPAN安装到临时目录?
【发布时间】:2015-08-01 23:23:45
【问题描述】:

我正在尝试将 CPAN 中的很多模块安装到一个临时目录中。

这纯粹是为了将其中的一些放到一个目录中,然后我可以从中创建一个自定义 RPM。然后,rpm 将在新安装中用作自定义 perl 安装之上的引导类型的东西。它们不会从这个临时位置运行。

在 CPAN 中我尝试过

o conf mbuildpl_arg "--install_base /tmp/perl"
o conf makepl_arg "PREFIX=/tmp/perl"

但这似乎将它们安装到 /root/.cpan/build/somename/tmp/perl (其中“somename”每次都不同)或通常的位置。我希望将它们全部捕获到一个临时的 buildroot 类型文件夹中,以便稍后将它们 rpm 放入正确的文件夹中。

有什么办法可以做到这一点,还是我做的不是个好主意?

我研究了 fpm 和 cpan2rpm,但找不到将大量 Perl 模块集成到一个 RPM 中的方法,很高兴有任何关于如何从大量模块到一个自定义 RPM 的更好想法。

【问题讨论】:

  • 我使用perlbrew 来获取我自己的 Perl 副本。当我切换到它的 Perl 时,cpan 会自动切换,所以我加载的任何东西都只会是本地的。见perlbrew.pl
  • 谢谢,我试图完全避免使用 cpan(除了第一次,之后每次都是通过 rpm)

标签: perl rpm cpan rpmbuild cpanm


【解决方案1】:

不,这会将它们安装在 /tmp/perl 中(除非您使用环境变量覆盖来自 cpan 的参数)。它们没有安装在~/.cpan/build 中。这是在安装模块之前(由makeBuild)构建模块的位置(由make installBuild install)。您可以随时擦除该目录。


顺便说一句,您告诉 ExtUtils::MakeMaker 和 Module::Build 使用两种不同的约定。这很糟糕。

o conf mbuildpl_arg "--install_base /tmp/perl"
o conf makepl_arg "PREFIX=/tmp/perl"

应该是

o conf mbuildpl_arg "--install_base /tmp/perl"
o conf makepl_arg "INSTALL_BASE=/tmp/perl"

o conf mbuildpl_arg "--prefix /tmp/perl"
o conf makepl_arg "PREFIX=/tmp/perl"

就个人而言,当我在使用 Perl 的本地构建之前使用本地模块时,我使用了

o conf mbuildpl_arg "--prefix /tmp/perl --lib /tmp/perl/lib/perl5"
o conf makepl_arg "PREFIX=/tmp/perl LIB=/tmp/perl/lib/perl5"

我不喜欢INSTALL_BASE,因为它很难顺利升级您的perl

【讨论】:

  • 是的,我希望将它们安装到 /tmp/perl 中,这就是我想要的,但它目前没有这样做。我只想要一个包含新安装模块和任何依赖项的目录。我会试试你的建议谢谢。
  • 要么您没有要求安装任何东西,要么安装失败,要么您正在使用环境变量 PERL_MM_OPT 和/或 PERL_MB_OPT 覆盖 cpan 传递的参数
  • 谢谢,我想也许有些安装失败了。例如安装 ExtUtils::XSBuilder::ParseSource 说 GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz : make_test NO 2 依赖项缺失(Tie::IxHash,Parse::RecDescent)。但是安装 Tie::IxHash 说已经安装了。这些方法是否与它们查找现有依赖项的方式有某种冲突?
  • 你是否通过设置 env var PERL5LIB 告诉 Perl 在哪里寻找模块?
  • 感谢您的坚持,我正在尝试 export PERL5LIB=/tmp/perl/lib/5.14.2/:/tmp/perl/lib/site_perl/:/opt/perl/lib/5.14.2 /:/opt/perl/lib/site_perl/ 但我得到那个依赖错误或'已经构建但结果看起来很可疑。跳过另一次构建尝试”(不是在所有模块上,有些确实可以安装,但其中相当一部分)
猜你喜欢
  • 2023-04-06
  • 2010-10-07
  • 2016-09-24
  • 2011-10-27
  • 2020-11-07
  • 2017-05-02
  • 2014-01-27
  • 2012-09-28
  • 2017-03-19
相关资源
最近更新 更多