Perl LibXLST 在 Mac OS Big Sur 11.4 上失败

时间:2021-06-09 15:11:02

标签: macos perl macos-big-sur libxslt

我在使用 Perl 应用程序时遇到问题,该应用程序在多台计算机(所有 Intel Mac)上的 Mac OS Big Sur 11.4 上因与 LibXSLT 相关的错误而失败 - 它在 Mac OS 升级之前正常工作,现在似乎失败新安装的最新 Mac。

最小脚本 perl -MXML::LibXSLT -E 'say $INC{"XML/LibXSLT.pm"}' 的错误信息(使用系统 perl - 机器上没有安装其他 perl)如下:

<块引用>

无法为模块 XML::LibXSLT 加载“/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/auto/XML/LibXSLT/LibXSLT.bundle”:dlopen(/System/Library /Perl/Extras/5.30/darwin-thread-multi-2level/auto/XML/LibXSLT/LibXSLT.bundle, 0x0001):未找到符号“_xsltLibxsltVersion”,预期在平面命名空间中由“/System/Library/Perl/Extras/” 5.30/darwin-thread-multi-2level/auto/XML/LibXSLT/LibXSLT.bundle' 在 /System/Library/Perl/5.30/darwin-thread-multi-2level/DynaLoader.pm 第 197 行。 在 /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/XML/LibXSLT.pm 第 48 行。 BEGIN 失败——编译在 /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/XML/LibXSLT.pm 第 48 行中止。 编译失败。 BEGIN 失败——编译中止。

cpan -i XML::LibXSLT 确认 XML::LibXSLT is up to date (1.99).

我尝试使用 brew install libxslt 更新 xslt 库,但似乎没有任何区别。

我试过运行 brew link libxslt --force,它现在什么也不做 (Warning: Refusing to link macOS provided/shadowed software: libxslt)。

运行 cpan -f -t XML::LibXSLT 失败并显示以下错误消息:

looking for -lxslt... no
libxslt not found
Try setting LIBS and INC values on the command line

如果我将 LIBS 和 INC 值设置为 brew export LIBS="-L/usr/local/opt/libxslt/lib"export INC="-I/usr/local/opt/libxslt/include" 建议的路径,它仍然会失败并出现此错误。

关于如何调试这个有什么建议吗?我不是 Perl 开发人员,只是尝试运行现有应用。

1 个答案:

答案 0 :(得分:2)

Perlbrew

最终,我成功地使用了 perlbrew 而不是默认的 OS X 系统 perl。

根据 https://perlbrew.pl 中的建议,以下过程有效:

curl -L https://install.perlbrew.pl | bash   
source ~/perl5/perlbrew/etc/bashrc
perlbrew install perl-5.16.0   
perlbrew switch perl-5.16.0
sudo cpan -i XML::LibXSLT

我认为它不是一个合适的解决方案,而是一种解决方法——毕竟,没有理由说明 OS X 预装的 libxslt 不应该只与预装的系统 perl 一起工作——但它至少可以工作。