Arch Linux Perl。 (数据转储器)未定义的符号Perl_xs_apiversion_bootcheck

时间:2015-07-09 15:51:01

标签: perl archlinux

由于最近的更新,Perl无法在Arch Linux系统上执行大多数脚本。

大多数情况下,由于Data :: Dumper模块中的未定义符号,它会失效。其他时候是因为Parser.so具有相同的未定义符号Perl_xs_apiversion_bootcheck

Perl v5.22.0 Data :: Dumper是最新的(2.154)。

完全错误:

/usr/bin/perl: symbol lookup error: perl5/lib/perl5/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so: undefined symbol: Perl_xs_apiversion_bootcheck

我已经尝试重新安装模块,没有帮助。

我找到了这个帖子: Error running Perl script on 2 different computers

他们谈论了不同perl版本的问题,我在这里似乎没有。

还有其他想法吗? (重新安装perl整体看起来不可能从这里......)

由于

1 个答案:

答案 0 :(得分:2)

Arch Linux最近从Perl 5.20升级到Perl 5.22。那些不兼容ABI,因此需要重建为Perl 5.20安装的任何XS模块,否则您将收到类似于您所描述的错误。

Arch的{​​{1}}包中包含Data :: Dumper 2.158。既然你说你有2.154,你必须手动安装升级到Data :: Dumper for Perl 5.20。您需要删除该(现已过时)版本。

perl-5.22.0-1会报告任何内容吗?如果是,您可以尝试pacman -Qi perl-data-dumper

更新:您似乎一直在使用pacman -R perl-data-dumper将模块安装到系统Perl目录中。最终会混合由cpan安装的文件和由pacman安装的文件,这就是为什么不建议这样做。

您应该考虑安装CPANPLUS::Dist::Arch并使用cpanp代替。你可以这样做:

cpan

之后,使用sudo pacman -S perl-cpanplus-dist-arch setupdistarch 安装模块将构建一个包文件并使用cpanp进行安装。然后,您可以使用pacman卸载它们。