我不使用 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 以确保真正的“修复”,我将尝试更新这个答案。