无法在 /usr/share/perl/5.14/CPAN/FirstTime.pm 的@INC中找到 local/lib.pm



我第一次尝试在我的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。如果你看到这个问题,那么你必须按照

  1. sudo su - whatever_user_owns_perl
  2. whatever_perl_install_path/cpan install local::lib

最新更新