【问题标题】:Arch Linux Perl. (Data Dumper) undefined symbol Perl_xs_apiversion_bootcheckArch Linux Perl。 (Data Dumper) 未定义符号 Perl_xs_apiversion_bootcheck
【发布时间】:2015-07-09 15:51:00
【问题描述】:

由于最近一次更新,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 看起来是不可能的......)

谢谢

【问题讨论】:

  • 您自己更新了 Perl 还是作为 Linux 发行版的一部分提供的?我记得一个损坏的 Data::Dumper 被放入 openSUSE 的案例。
  • 有一个更新:archlinux.org/packages/…
  • 但是他们有最新版本,从 2014 年末开始...metacpan.org/changes/distribution/Data-Dumper。所以它一定是别的东西。
  • Perl 是 Arch linux 的一部分。大约一周前一切正常,甚至是 DataDumper。我不知道是哪个更新导致了问题,因为总是有一堆 perl 更新 (archlinux.org/packages/?sort=-last_update&q=perl)
  • 很好的连接问题:我无法使用 cpan 升级所有模块,因为升级时出现相同的问题失败... -.-

标签: perl archlinux


【解决方案1】:

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 并改用cpanp。你可以这样做:

sudo pacman -S perl-cpanplus-dist-arch
setupdistarch

之后,使用cpanp 安装模块将构建一个包文件并使用pacman 安装它。然后您可以使用pacman 卸载它们。

【讨论】:

  • 错误:找不到包“perl-data-dumper”。我通过cpan安装了所有东西。我将尝试删除此版本。这应该可以解决我的错误。
  • 我可以手动删除 Dumper 模块。 cpan 升级后一切正常
猜你喜欢
  • 2020-11-23
  • 1970-01-01
  • 2011-06-26
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
相关资源
最近更新 更多