我试图从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
答案 0 :(得分:2)
不,这会将它们安装在/tmp/perl
中(除非您使用环境变量覆盖cpan
的参数)。它们未安装在~/.cpan/build
中。这是模块在安装之前(make
或Build
)构建的模块(make install
或Build 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
。