CPAN安装到临时目录?

时间:2015-05-20 15:39:03

标签: perl rpm cpan rpmbuild cpanm

我试图从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(其中&some;' somename'每次都有变化)或通常的位置。我希望将它们全部捕获到临时的buildroot类型文件夹中,以后我可以将它们转换到正确的文件夹中。

有没有办法做到这一点,或者我做的事情不是一个好主意?

我已经查看过fpm和cpan2rpm,但是看不到将大量Perl模块放到一个RPM中的方法,很高兴能够更好地考虑如何从大量模块转到一个自定义RPM

1 个答案:

答案 0 :(得分:2)

不,这会将它们安装在/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