如何告诉cpan更改模块安装的目标?

时间:2010-03-12 16:56:35

标签: perl module cpan

当我从源代码安装perl时,第一个令人惊喜的是,在没有做任何事情的情况下,从现在开始安装的所有模块都可用于新的perl。由于我没有在我的操作系统附带的cpan上找到一个模块,我必须使用onboard-perl的一些脚本。对于其中一个脚本,我想安装Text :: Format或Text :: Autoformat(没有在cpan上找到该模块的文档)。我的问题:我怎么能告诉cpan这次为OS-distro-perl安装模块?

4 个答案:

答案 0 :(得分:2)

没有一种特殊的方法可以告诉cpan在一个新位置安装模块,只进行一次调用。但是,该功能在我的待办事项列表中,以及local :: lib支持。我真的明白你的痛苦并想要同样的功能。我只需要时间(或补丁)来使其工作。

在此之前,您必须输入CPAN.pm shell并更改mbuild_argmakefilepl_arg的值,如perlfaq8: How do I keep my own module directory?中所述:


构建模块时,请告诉Perl在哪里安装模块。

对于基于Makefile.PL的发行版,在生成Makefile时使用INSTALL_BASE选项:

perl Makefile.PL INSTALL_BASE=/mydir/perl

您可以在CPAN.pm配置中进行设置,以便在使用CPAN.pm shell时模块自动安装在您的私有库目录中:

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

对于基于Build.PL的发行版,请使用--install_base选项:

perl Build.PL --install_base /mydir/perl

您可以配置CPAN.pm以自动使用此选项:

% cpan
cpan> o conf mbuild_arg "--install_base /mydir/perl"
cpan> o conf commit

答案 1 :(得分:1)

/ path / to / system / perl -MCPAN -e shell

答案 2 :(得分:1)

每个Perl安装都有自己的想法,库应该“生存”,CPAN模块使用它作为执行其安装的指南。您可以通过执行perl -V来查看这些值是什么,并查找@INC的值(位于底部)。如果使用不同的Perl(例如,系统安装的Perl)调用CPAN,您将自动将模块安装到Perl的首选位置:

/usr/bin/perl -MCPAN -e shell

或者只需安装一个模块而无需显式调用CPAN shell:

/usr/bin/cpan <modulename>

还有一些CPAN配置选项可用于临时或永久更改安装位置,但在您的情况下这不是必需的。

答案 3 :(得分:-3)

我假设您只想将模块安装到其他位置,然后从该位置运行它们 - 您的问题对我来说不太清楚。

local::lib上完整阅读perldoc。试着写得更好,这将是我的一个重大失败。这也是实现此任务的最新和最先进的方法。如果另一个解决方案没有引用这个模块,那么我个人的建议是避免它像瘟疫一样。