使用perlbrew和cpanm定位模块时出错

时间:2014-10-27 10:29:46

标签: perl perlbrew cpanm

我想在我的机器上使用perlbrew和cpanm。我像这样安装了perlbrew

curl -L http://install.perlbrew.pl | bash

并在我的.bashrc中找到了~/perl5/perlbrew/etc/bashrc。接下来我安装了perl v5.21.5并切换到此版本。which perl命令指向我的perlbrew安装。 cpanm也是如此。

但是当我安装像cpanm Mojo这样的perl模块时,既不安装二进制文件也不安装包含文件。但所有测试都通过了。我查看了~/perl5/,但找不到来源。有没有人之前有同样的问题?我之前可能在我的Ubuntu 14.04上使用过cpan。这可能导致任何问题吗?我怎样才能找出cpanm放置模块的位置?

BTW:我使用perlbrew版本0.71

4 个答案:

答案 0 :(得分:0)

您是否偶然在新的终端窗口中运行cpanm命令,如果是这样,它可能不会使用您酿造的新perl。

“perlbrew use”仅使当前shell使用brewed perl,而“perlbrew switch”使当前用户的所有新shell都使用选定的perl。

您应该提供“perl -V”和“perlbrew info”的输出

以下是如何找到cpanm安装模块的地方的提示:

1)安装locate(sudo aptitude install locate)

2)运行“sudo updatedb”(创建locate使用的索引)

3)运行“locate Mojo”以查看文件的创建位置。

同样有趣的是要知道你正在使用哪个cpanm二进制文件。 “哪个cpanm”

您可以使用“perlbrew install-cpanm”安装perlbrew范围的cpanm

答案 1 :(得分:0)

[我将假设您在安装exec bash后~/perl5/perlbrew/etc/bashrc)或在当前shell中找到perlbrew >

您使用哪个Perl来安装cpanmcpanm将为运行它的Perl安装模块,如果您将其cpanm运行,则会在cpanm ...的第一行提及。

选项:

  1. 使用cpan代替cpanm
  2. 使用新安装的Perl安装cpanm
  3. 使用perl -S cpanm ...作为解决方法。

答案 2 :(得分:0)

我通过删除主目录中与perl相关的所有内容解决了这个问题。文件夹〜/ .cpan具有写保护文件。只有sudo用户可以删除它们。我假设我过去使用cpan作为root。另外我删除了〜/ .cpanm和〜/ perl5。重新安装perlbrew,perl和mojolicious后,一切都开箱即用。

答案 3 :(得分:0)

在我的情况下,我只是想让一些perl代码运行。非常感谢irc.freenode.net上的#perl频道。

我首先使用local :: lib,但在使用后可能没有完全清理。我试图运行的代码所需的模块不会与系统perl一起运行。它太旧了。

然后我尝试了perlbrew install perl-5.20.1perlbrew install-cpanm。用已知数量开始新鲜感觉很棒。然而,我发现模块正在通过测试,并表示他们正在安装,但没有找到并使用。试图不断重新安装依赖关系。一次安装一个依赖项甚至都不起作用。令人费解的是。在我阅读的某个地方设置PERL_MB_OPTPERL_MM_OPT虽然我认为我也应该设置PERL5LIB

所以我在rm -rf ~/.cpan ~/.cpanm ~/perl5之后开始使用perlbrew。现在一切正常。乌拉!