Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos perlbrew将模块迁移到Mac OS X 10.7.5上的新perl安装_Macos_Perl_Upgrade_Perlbrew - Fatal编程技术网

Macos perlbrew将模块迁移到Mac OS X 10.7.5上的新perl安装

Macos perlbrew将模块迁移到Mac OS X 10.7.5上的新perl安装,macos,perl,upgrade,perlbrew,Macos,Perl,Upgrade,Perlbrew,我在帕尔蒙克斯问了这个问题,但进展有限,所以我将在这里提问。我使用perlbrew在MacOSX10.7.5上安装了Perl5.16.0,线程化。现在,当我尝试将模块传输到新安装时,它失败了,并显示一条我不理解的消息。下面是我使用和输出的命令 $ perlbrew install --as perl-5.16.0t -Dusethreads perl-5.16.0 然后,在perlmonks的帖子后面: $ perldoc -t perllocal | perl -lane'/"Module"

我在帕尔蒙克斯问了这个问题,但进展有限,所以我将在这里提问。我使用perlbrew在MacOSX10.7.5上安装了Perl5.16.0,线程化。现在,当我尝试将模块传输到新安装时,它失败了,并显示一条我不理解的消息。下面是我使用和输出的命令

$ perlbrew install --as perl-5.16.0t -Dusethreads perl-5.16.0
然后,在perlmonks的帖子后面:

$ perldoc -t perllocal | perl -lane'/"Module"/ && print $F[-1]' | sort -u >/tmp/pms

$ perlbrew switch perl-5.16.0t

$ cpanm -v </tmp/pms &>>/tmp/inst.log & tail -f /tmp/inst.log

我卸载了perl-5.16.0t并删除了文件夹perlbrew和.bash_概要文件中的行,所以现在我回到系统perl 5.12.3。我想知道如何做到这一点,在我的主目录中有多个PERL,而不必使用ActiveState

您是否在默认目录(perl5/perlbrew)中使用默认设置安装了perlbrew?重新安装perlbrew并切换到首选perl,然后检查以下各项:

首先,您是否在perlbrew中安装了cpanm?“哪个cpanm”将告诉您正在使用哪个。它应该位于路径以“perlbrew/bin”结尾的目录中。如果没有,您可以使用安装

perlbrew install-cpanm
另外,bash_概要文件中的行是否类似于“source~/perl5/perlbrew/etc/bashrc”?它是perlbrew bashrc文件的正确路径吗?编辑bash_配置文件后是否重新启动了终端?你的@INC里有什么?检查:

perl -e 'print join "\n", @INC'
如果正确安装了perlbrew,则@INC中应该只有perlbrew目录的子目录

从您的错误消息来看,perlbrew perl似乎正在查找该模块,并找到了一个针对位于“/Users/abualiga/perl5/lib”中的另一个perl构建的模块,该模块不兼容。Perlbrew perl的模块通常位于类似“~/perl5/Perlbrew/perls/perl-5.16.3/lib”的位置。这意味着您没有为正在使用的特定perlbrew perl正确安装这些模块,或者路径/@INC有问题。如果是后者,则perlbrew bashrc脚本有问题(我知道它们在perlbrew的最新版本-0.61-中)。但是,如果您没有以默认方式安装perlbrew,那么您可能需要自己修复路径

此外,在将来,如果您想在安装了perlbrew的不同PERL之间传输模块,可能会有所帮助

perl -e 'print join "\n", @INC'