1

我正在尝试将 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 的更好想法。

4

1 回答 1

2

不,这将安装它们(除非您使用环境变量/tmp/perl覆盖参数)。cpan它们没有安装在~/.cpan/build. 这是模块在安装之前(通过makeor )构建的地方(通过or )。您可以随时擦除该目录。Buildmake 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顺利升级。

于 2015-05-20T17:37:19.710 回答