可加载库和 perl 二进制文件不匹配

可加载库和 perl 二进制文件不匹配

我不使用 perl,但我使用 Slic3r,它显然使用 perl。

我不知道是什么原因造成的,但某个地方的更新破坏了 perl,我不知道如何修复它。我搜索了很多,但我找到的大多数“解决方案”都假设您对 perl 及其软件包的工作原理有所了解。我没有这个。

在此过程中,我尝试了一个名为的脚本find-broken-perl-packages,但是它没有工作,因为有很多东西我没有安装(未找到 pacman 命令,/usr/lib/perl5/vendor_perl没有这样的目录等)。

我还发现了另一个“解决方案”,建议使用重建一切cpan(我忘记了我运行的命令,它“有效”并且花费了很长时间),但这也没有效果。

我不想冒犯 perl 人群 - 我对学习 perl 真的没有太大兴趣,除了我需要解决这个问题以便我可以再次使用 Slic3r。

当我尝试运行 Slic3r 时,它给出了错误:

ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xde00080, needed 0xce00080)

如果我尝试运行Build.PL脚本来重建 Slic3r,我会得到:

Cwd.c: loadable library and perl binaries are mismatched (got handshake key 0xde00080, needed 0xce00080)

许多次。我实际上不需要重建 Slic3r,我只是认为它可能已经解决了该问题。

运行 Ubuntu 19.04

更新后添加:

我对此进行了更多研究,并尝试使用 cpan 进行修复(我不太了解 cpan)

cpan[1]> upgrade List::Util

它会发出一点声音,然后告诉我它是最新的。但这并没有解决问题。所以我尝试了

> install List::Util

但它只是抱怨它已经是最新的了(有道理)

所以我尝试了一下

> force install List::Util

它做了很多事情,看起来很顺利,但仍然没有解决我的问题。我确认我对 perl 一无所知。

答案1

我在文件中设置了这两个变量~/.bachrc,这导致了问题:

PERL5LIB
PERL_LOCAL_LIB_ROOT

通过删除它们,问题得以解决。之后我删除了它们指向的文件夹。

答案2

我能够在#perl-help 上获得一些帮助

由于没有使用 perlbrew,我稍微错误地安装了 Slic3r,因此 Ubuntu 更新破坏了它的库。

通过删除local-lib文件夹,我能够运行Build.PL脚本来重建所有内容,现在它可以正常工作了。

如果我设法正确安装 Slic3r 以确保真正的“修复”,我将尝试更新这个答案。

相关内容