3

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

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

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

但是当我安装一个 perl 模块时,cpanm Mojo既没有安装二进制文件,也没有找到包含的内容。但是所有的测试都通过了。我看了下~/perl5/,找不到来源。以前有人遇到过同样的问题吗?我之前可能在我的 Ubuntu 14.04 上使用过 cpan。这会导致任何问题吗?如何确定 cpanm 将模块放在哪里?

顺便说一句:我正在使用 perlbrew 版本 0.71

4

4 回答 4

1

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

于 2014-10-27T15:50:41.517 回答
1

就我而言,我只是想让一些 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. 现在一切正常。欢呼!

于 2014-11-30T18:58:25.613 回答
0

[我将假设您启动了一个新的外壳(例如重新打开您的终端或执行exec bash)或~/perl5/perlbrew/etc/bashrc在安装后从您当前的外壳中获取perlbrew]

你用的是哪个 Perl 来安装的cpanmcpanm将为运行它的 Perl 安装模块,cpanm如果您将其作为cpanm ....

选项:

  1. 使用cpan而不是cpanm.
  2. 使用新安装cpanm的 Perl 安装。
  3. perl -S cpanm ...用作解决方法。
于 2014-10-27T14:42:48.097 回答
0

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

"perlbrew use" 只使当前的 shell 使用 brewed perl,而 "perlbrew switch" 使当前用户的所有新 shell 使用选定的 perl。

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

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

1)安装定位(sudo aptitude install locate)

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

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

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

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

于 2014-10-27T12:04:59.733 回答