出于某种原因,每当我运行任何Perl模块(如cpanm)时,我都会得到这样的响应:
ListUtil.c: loadable library and perl binaries are mismatched (got
handshake key 0xdb00080, needed 0xdb80080)
我不知道为什么会这样。似乎没有任何额外的堆栈跟踪,即使有很多关于这个错误的bug报告和问题,我也无法找到解决方案。我用的是Ubuntu 17.04。
编辑:我正在运行Ubuntu附带的Perl的默认安装。
5条答案
按热度按时间5jvtdoz21#
当perl或perl模块单独沿着安装在官方软件包中时,可能会发生这种情况。环境变量可用于切换到不同的perl安装。
要了解是否是这种情况,请运行:
输出中包含
PERL5LIB
或PERL_LOCAL_LIB_ROOT
可能会导致此问题。尝试取消设置环境变量,并将其从~/.bashrc
文件或等效的shell rc文件中删除。nqwrtyyt2#
来自Bert Hekman,7月5日8:22回答:
作为一个快速而肮脏的解决方案对我起了作用。
9rbhqvlz3#
好吧,结果是重启成功了。我想我应该在发帖之前把它关掉再打开。
2admgd594#
通过以上的回答,我解决了这个问题。我在本地perl文件夹中有一个List::Util的副本。
我设置了环境变量,然后使用cpan更新List::Util。
这样我就不再需要使用PERL 5LIB =或PERL_LIB_ROOT=了,我可以像平常一样调用我的perl脚本。
y1aodyip5#
在macOS 13.6中,升级Homebrew perl后,我遇到了同样的错误。我将模块安装到local::lib以在升级过程中持久化它们,下面给出了违规者的位置:
运行
rm -rf $PERL5LIB/darwin-thread-multi-2level
后,我可以再次运行脚本。