在本地目录中安装PERL CPAN模块

12

我有一个1and1的主机账户,想要安装一些Perl CPAN模块,这些模块不是标准的主机套餐的一部分。没有ROOT访问权限,可以安装模块吗?如果可以,如何操作呢?提前感谢您的指引。


请向您的托管服务提供商寻求支持。有些人愿意根据请求安装CPAN模块。如果不行,下面有答案。 - evil otto
5个回答

16

cpanminus 迅速成为CPAN的首选接口。它支持将软件包安装到用户的主目录中。

使用非常简单。要在本地安装cpanminus软件包:

curl -L http://cpanmin.us | perl - App::cpanminus

安装任意软件包:

curl -L http://cpanmin.us | perl - Lingua::Romana::Perligata

请记得将用户的本地库添加到PERL5LIB环境变量中。

export PERL5LIB=$HOME/perl5/lib/perl5:$PERL5LIB

关于“它支持将软件包安装到用户的主目录中”,您能否展示如何操作呢?因为您提供的文档中并没有提及。 - ikegami
我只想提醒一下关于PERL5LIB的问题。如果您在系统上有多个perl安装,并广泛使用PERL5LIB(即在shell启动文件中设置它),可能会破坏某些脚本,因为您可能会将一个perl指向另一个perl的潜在不兼容模块。这在我工作的地方引起了巨大的问题。 - trent

8
我建议您使用perlbrew在您的账户中安装完整版Perl,而不仅仅是模块。这样做可以减少很多麻烦,特别是当供应商决定更新系统Perl时。

但是你必须更改每个脚本顶部的 #!/usr/bin/perl 行。 - Keith Thompson
8
在大多数系统中,你可以输入 #! /usr/bin/env perl 来执行你 $PATH 中的 Perl 版本。我大约五年前就改用这种方式了,因为我厌倦了不断地切换 /bin/perl/usr/bin/perl/usr/share/bin/perl/usr/local/bin/perl。如果你已经打算更改所有脚本的顶行,那么最好以这种方式进行,这样你就永远不必再改变它了。 - David W.
@Keith Thompson,是的(除非它们使用Makefile.PL/Build.PL安装),但这有什么关系呢?如果您愿意,您可以使用一个命令修复整个目录树中的所有脚本。当Perl正在安装时,您可以花费一分钟的时间来完成此操作。 - ikegami

5

1
这是早于 perlbrewcpanmlocal::lib 等工具的东西,因此虽然它是一个不错的演示,但绝对不是我推荐或尝试使用的内容。 - Ashley

4

要将模块安装到本地目录,您可以使用local::lib


1
如前所述:local::lib
cpanm  --local-lib=~/Program/Perl/Lib Tk 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接