我第一次尝试在我的Ubuntu 12.04系统上使用Perl 。我安装了Perl v.5.14.2。
我查找了如何安装Perl模块,所以我开始如下:
$ perl -MCPAN -e shell
向导开始配置环境,如下所示:http://pastebin.com/5hn8vkb5
但是,它在中间停止并显示以下错误消息:
...
Checksum for /home/john/.cpan/sources/authors/id/A/AP/APEIRON/local-lib-1.008009.tar.gz ok
---- Unsatisfied dependencies detected during ----
---- APEIRON/local-lib-1.008009.tar.gz ----
ExtUtils::MakeMaker [build_requires]
Running make test
Make had some problems, won't test
Delayed until after prerequisites
Running make install
Make had some problems, won't install
Delayed until after prerequisites
Can't locate local/lib.pm in @INC (@INC contains:
/home/john/perl5/lib/perl5
/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
/home/john/Desktop)
at /usr/share/perl/5.14/CPAN/FirstTime.pm line 1300.
我怎么做才能在我的Ubuntu安装上正确设置Perl环境?
中断向导并重新启动后,不再有错误消息。我如何重新启动向导,以便我可以在这里选择:
你想要什么方法?(选择'local::lib', 'sudo'或'manual')(当地:lib)
您缺少local::lib
,这是您告诉CPAN
shell要做的。
你可以这样安装:
sudo apt-get install liblocal-lib-perl
您可以通过rm -rf
-您的~/.cpan
目录重新开始。风险自负
然而,我建议尝试cpanminus
而不是旧的CPAN shell
。
sudo apt-get install cpanminus
local命名空间用于您自己的模块,在CPAN中找不到。这是相对较新的东西。在许多站点上,您可能需要的CPAN模块不在当前版本的Perl中,或者您需要某个特定模块的新版本。但是,您没有对安装CPAN模块的标准位置的写访问权限。
这样做是将这些模块安装在$HOME/perl5/lib/local
目录下,您将能够访问它们。您还需要设置一个PERL5LIB
环境变量(通常在启动脚本中),以便Perl在定位这些模块时检查该目录。
如果您有sudo
权限,请使用它来安装CPAN模块,而不是尝试这样做。下面的代码将为您将Foo::Bar
模块安装到标准模块目录中(并根据需要进行任何配置):
$ sudo cpan install Foo::Bar
如果需要配置CPAN,它将首先进行配置。
对于MetaCPAN上的模块进行local::lib安装有完整的说明。
几个新操作系统的强制(如Redhat 7)强制检查perl版本中local::lib的存在,实际上这是一件好事,这使用户能够使用CPAN并添加,实验和享受与perl一起使用的新模块,而无需等待站点范围内的安装(像根用户)。默认情况下,local::lib查找用户本地或下载模块所在的$HOME/perl5 dir。如果你看到这个问题,那么你必须按照
- sudo su - whatever_user_owns_perl
- whatever_perl_install_path/cpan install local::lib