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

时间:2013-05-22 22:27:27

标签: perl ubuntu-12.04 perl-module cpan

我正在尝试在我的系统Ubuntu 12.04上使用Perl 第一次。我安装了Perl v.5.14.2 我查了how to install Perl modules,所以我开始如下:

$ 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]

3 个答案:

答案 0 :(得分:15)

你错过了local::lib,这就是你告诉CPAN shell要做的事情。

您可以这样安装:

sudo apt-get install liblocal-lib-perl

您可以通过rm -rf - ~/.cpan目录重新开始。您自担风险

但是,我建议您尝试cpanminus而不是旧的CPAN shell

sudo apt-get install cpanminus

答案 1 :(得分:2)

local 命名空间用于您自己的个人模块,在CPAN中找不到。这是一个相对较新的东西。在许多站点,您可能需要不在当前版本的Perl中的CPAN模块,或者您需要更新版本的特定模块。但是,您没有对安装CPAN模块的标准位置的写访问权。

这样做是在$HOME/perl5/lib/local目录下安装这些模块,您可以在其中访问它们。您还需要设置PERL5LIB环境变量(通常在您的启动脚本中),因此Perl将在查找这些模块时检查此目录。

如果您具有sudo权限,请使用它来安装CPAN模块而不是尝试此操作。以下内容将Foo::Bar模块安装到标准模块目录中(并根据需要进行任何配置):

$ sudo cpan install Foo::Bar

如果需要配置CPAN,它将首先执行此操作。

MetaCPAN上为模块执行 local :: lib 安装有完整的说明。他们很清楚。

答案 2 :(得分:0)

几个新的操作系统(如Redhat 7)强制检查perl版本中local :: lib的存在,实际上这是一件好事,它使用户能够使用CPAN并添加,试验和享受新模块与perl一起使用而无需等待全站安装(如root用户)。默认情况下,local :: lib查找用户本地或下载模块所在的$ HOME / perl5目录。如果您看到此问题,则必须执行以下操作

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