由于最近的更新,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整体看起来不可能从这里......)
由于
答案 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
卸载它们。