perl - Cwd.c : loadable library and perl binaries are mismatched (got handshake key 0xdb00080, 需要 0xde00080)

标签 perl ubuntu upgrade perl-module cpan

将 Ubuntu 16.04 LTS 升级到 18.04 LTS 后,所有 Perl 模块和“cpan”都停止工作。每次我运行我的脚本都会导致错误

threads.c: loadable library and Perl binaries are mismatched (got handshake key 0xdb00080, needed 0xde00080)

当我尝试打开 cpan 它显示
Cwd.c: loadable library and Perl binaries are mismatched (got handshake key 0xdb00080, needed 0xde00080)

我在 ubuntu 16.04 中安装了“Cwd”、“threads”模块,其中 Perl 版本是 5.22.1,而在 ubuntu 18.04 中,Perl 版本是 5.26.1。

我试图删除旧版本的模块但失败了。我删除了 ~/.cpan 文件夹中的内容。

PS:
在 root 用户中一切正常。
如果我跑
sudo su
cpan

完美运行。但作为普通用户,我无法运行任何 perl 模块/脚本/cpan。

我该如何纠正这个问题?
如何重新安装 cpan 或 cpan 模块?

我试图重新安装 Perl 但没有帮助
sudo apt-get --reinstall install perl
sudo apt-get --reinstall install libcwd-guard-perl

我安装了 cpan minus, cpan plus ,它给出了同样的错误。

最佳答案

为了解决问题,可以使用下一个链接:
https://dev.to/foursixnine/about-perl-and-mismatched-binaries-346l
https://metacpan.org/pod/release/DBOOK/App-MigrateModules-0.002/script/perl-migrate-modules
或者在命令中:(替换到您的 perl5 文件夹,在我的情况下是 ~/perl5)

 mv <perl5> perl5_old
 cpan
 cpan App::MigrateModules
 perl-migrate-modules --from perl5_old /usr/bin/perl
perl5 你的 perl 文件夹,通常在路径中存在于 ENV 变量 PERL5LIB 中。

关于perl - Cwd.c : loadable library and perl binaries are mismatched (got handshake key 0xdb00080, 需要 0xde00080),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442448/

相关文章:

database - Windows Phone 8 SQLite 数据库升级

perl - Perl测试(.t)脚本的第一行应该是什么?

firefox - 阻止 firefox 更新

linux - 将日志转发到 http 服务器

redis - Spinnaker 是否支持 Redis 4?

python - Pylons - 如何在新环境中使用旧项目?

perl - 如何计算匹配的数字

regex - 至少包含 1 个大写字母、1 个小写字母、1 个特殊字符、1 个数字和 1 个空格的字符串

perl - 如何使用 Perl MongoDB 包在 Mongo 副本上进行 MapReduce

c - 如何使用 C 创建类似 Windows 的 GUI