由于最近的更新,Perl未能在我的Arch系统上执行大多数脚本。
大多数情况下,它由于数据::Dumper模块中未定义的符号而失败。其他时候,是因为Parser.so具有相同的未定义符号Perl_xs_apiversion_bootcheck。
Perlv5.22.0数据::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
我已经尝试重新安装模块,没有帮助。
我找到了这个线程:在两台不同的计算机上运行Perl脚本时出错
他们讨论了不同perl版本的问题,我在这里似乎没有这些问题。
还有其他想法吗?(从这里看,重新安装perl是不可能的.)
谢谢
发布于 2015-07-09 20:07:26
Arch Linux最近从Perl 5.20升级到Perl 5.22。这些与ABI不兼容,所以为Perl 5.20安装的任何XS模块都需要重新构建,否则您将得到您所描述的错误。
Arch的perl-5.22.0-1
包包括数据::Dumper 2.158。由于您说您有2.154,所以您必须手动安装了对Data::DumperforPerl5.20的升级。您需要删除该版本(现已过时)。
pacman -Qi perl-data-dumper
报告什么了吗?如果是的话,你可以试试pacman -R perl-data-dumper
。
更新:似乎已经使用cpan
将模块安装到您的系统cpan
目录中。这最终导致了pacman
安装的文件和cpan
安装的文件的混合,这就是不建议使用的原因。
您应该考虑安装CPANPLUS::Dist::Arch并使用cpanp
。你可以这样做:
sudo pacman -S perl-cpanplus-dist-arch
setupdistarch
之后,使用cpanp
安装模块将生成一个包文件,并使用pacman
安装它。然后可以使用pacman
卸载它们。
https://stackoverflow.com/questions/31322436
复制相似问题