架构 Linux Perl。 (数据转储器)未定义的符号 Perl_xs_apiversion_bootcheck
Arch Linux Perl. (Data Dumper) undefined symbol Perl_xs_apiversion_bootcheck
由于最近的更新 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
我已经尝试重新安装模块,但没有帮助。
我找到了这个帖子:
他们说的是不同perl版本的问题,我这里好像没有。
还有其他想法吗? (重新安装 perl,因为从这里看起来不可能...)
谢谢
Arch Linux 最近从 Perl 5.20 升级到 Perl 5.22。这些与 ABI 不兼容,因此需要重新构建为 Perl 5.20 安装的任何 XS 模块,否则您将遇到您所描述的错误。
Arch 的 perl-5.22.0-1
软件包包括 Data::Dumper 2.158。既然你说你有 2.154,你必须手动安装升级到 Data::Dumper for Perl 5.20。您需要删除那个(现已过时的)版本。
pacman -Qi perl-data-dumper
有报告吗?如果是,您可以尝试 pacman -R perl-data-dumper
.
更新: 看来您一直在使用 cpan
将模块安装到系统 Perl 目录中。这最终会混合 pacman
安装的文件和 cpan
安装的文件,这就是不推荐的原因。
您应该考虑安装 CPANPLUS::Dist::Arch and using cpanp
。你可以这样做:
sudo pacman -S perl-cpanplus-dist-arch
setupdistarch
之后,使用 cpanp
安装模块将构建一个包文件并使用 pacman
安装它。然后您可以使用 pacman
卸载它们。
由于最近的更新 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
我已经尝试重新安装模块,但没有帮助。
我找到了这个帖子:
他们说的是不同perl版本的问题,我这里好像没有。
还有其他想法吗? (重新安装 perl,因为从这里看起来不可能...)
谢谢
Arch Linux 最近从 Perl 5.20 升级到 Perl 5.22。这些与 ABI 不兼容,因此需要重新构建为 Perl 5.20 安装的任何 XS 模块,否则您将遇到您所描述的错误。
Arch 的 perl-5.22.0-1
软件包包括 Data::Dumper 2.158。既然你说你有 2.154,你必须手动安装升级到 Data::Dumper for Perl 5.20。您需要删除那个(现已过时的)版本。
pacman -Qi perl-data-dumper
有报告吗?如果是,您可以尝试 pacman -R perl-data-dumper
.
更新: 看来您一直在使用 cpan
将模块安装到系统 Perl 目录中。这最终会混合 pacman
安装的文件和 cpan
安装的文件,这就是不推荐的原因。
您应该考虑安装 CPANPLUS::Dist::Arch and using cpanp
。你可以这样做:
sudo pacman -S perl-cpanplus-dist-arch
setupdistarch
之后,使用 cpanp
安装模块将构建一个包文件并使用 pacman
安装它。然后您可以使用 pacman
卸载它们。