我已经安装了Ubuntu 16.04,并安装了Perl 5.8.7、5.18.2(均激活了线程)和5.18.1(无线程)。 目的是使用带有线程而不是派生的Perl版本,因为我已经使用thred完成了多个脚本,而派生不是合适的多线程模型(它只是派生进程)。 我遇到的第一个问题是通过cpanm -fi [name_of_module]命令安装模块时。事实上,该命令根本不返回任何内容!只是“ Perl”。当我要安装在我的便笺中想要安装的模块时,也会发生相同的事实。 我认为这个问题与以下事实有关:我可以在不使用sudo的情况下运行脚本(例如,egperl [name_of_the_script]),而当我使用“ sudo perl [name_of_the_script]”运行脚本时说“当前版本的Perl不支持线程”! 真奇怪 正确设置了perlbrew环境验证,当我键入“哪个perl”时,系统将按预期方式进入新版本目录。
不知道如何进行
答案 0 :(得分:1)
我看到您在一个段落中发布了几个问题。我会尽力回答这个问题。
cpanm -fi XXX
不会“完全返回任何内容” 我不确定这部分内容。如果XXX
安装失败,则屏幕上可能会出现一些错误消息。 perlbrew list-modules
除了Perl
以外什么也不会打印,这一事实意味着可能没有安装任何东西。
您的cpanm
执行程序可能是为系统perl安装隐式程序。您可以通过检查head =cpanm
的第一行来验证这一点。如果不是#!/usr/bin/env perl
,则可能是错误的。您希望安装者为:perlbrew install-cpanm
我想知道您的PATH是否设置正确–在perl -V
之后运行perlbrew use 5.8.7
可以显示足够的版本信息,从而告诉您perlbrew本身是否正常工作。
您可能还需要sudo -E perl
来代替。 sudo
重置环境变量,除非您不要求这样做(-E
选项),并且可能需要PERL5LIB。