我想在我的机器上使用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
答案 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
后
perlbrew
>
您使用哪个Perl来安装cpanm
? cpanm
将为运行它的Perl安装模块,如果您将其cpanm
运行,则会在cpanm ...
的第一行提及。
选项:
cpan
代替cpanm
。cpanm
。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.1
和perlbrew install-cpanm
。用已知数量开始新鲜感觉很棒。然而,我发现模块正在通过测试,并表示他们正在安装,但没有找到并使用。试图不断重新安装依赖关系。一次安装一个依赖项甚至都不起作用。令人费解的是。在我阅读的某个地方设置PERL_MB_OPT
和PERL_MM_OPT
虽然我认为我也应该设置PERL5LIB
。
所以我在rm -rf ~/.cpan ~/.cpanm ~/perl5
之后开始使用perlbrew。现在一切正常。乌拉!