Ubuntu升级后makeinfo遇Perl库版本不匹配问题求助
Ubuntu升级至22.04.3 LTS后makeinfo报错求助
将Ubuntu系统升级到22.04.3 LTS(Jammy Jellyfish)后,原本用于i686架构的binutils+gcc交叉编译工具链失效,同时运行makeinfo时出现以下错误:
parsetexi/Parsetexi.c: loadable library and perl binaries are mismatched (got handshake key 0xcd00080, needed 0xeb00080)
我清楚这个错误是因为Parsetexi可加载库依赖升级前的Perl版本,而新版本Perl不向后兼容,理论上需要重新构建适配新Perl的Parsetexi.so共享库。
我做了以下尝试,但都未能解决问题:
- 查看
/usr/lib/texinfo目录下的Parsetexi.so,执行ldd Parsetexi.so得到输出:
linux-vdso.so.1 (0x00007fff9965a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbd21cbb000) /lib64/ld-linux-x86-64.so.2 (0x00007fbd21f2d000)
输出里没有提到Perl相关依赖。
- 在
/usr/share/texinfo/Texinfo/XS/parsetexi目录找到Parsetexi.pm文件(属于Texinfo::Parser包),参考相关方案执行cpan upgrade /(.*)/升级包,无效。 - 查阅了Texinfo的官方文档和其他同类问题的解决帖,仍不确定下一步该怎么做。
编辑1:我从GNU官方下载了包含makeinfo的Texinfo源码包,按照LFS的安装步骤重新编译安装,但运行makeinfo还是出现相同的版本不匹配错误。
编辑2:清理机器后,执行which -a makeinfo只显示一个安装路径/usr/local/bin/makeinfo;另外找到两个Parsetexi.pm文件,分别位于/usr/local/share/texinfo/Texinfo/XS/parsetexi/Parsetexi.pm和/usr/share/perl5/Texinfo/XS/parsetexi/Parsetexi.pm,它们的第二行都是use 5.00405,而我当前的/bin/perl版本是v5.34.0。另外有人提到查看XSLoader.pm第165或171行,但我不知道该怎么操作。
内容的提问来源于stack exchange,提问作者Tom Finet
相关产品推荐
相关产品推荐

