macos - Perl LibXLST 在 Mac OS Big Sur 11.4 上失败
问题描述
我遇到了 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 行。开始失败 - 编译在 /System/Library/Perl/Extras/5.30/darwin-thread-multi-2level/XML/LibXSLT.pm 中止第 48 行。在 require 中编译失败。BEGIN 失败——编译中止。
cpan -i XML::LibXSLT
确认XML::LibXSLT is up to date (1.99).
我尝试使用更新 xslt 库,brew install libxslt
但似乎没有任何区别。
我试过运行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
export LIBS="-L/usr/local/opt/libxslt/lib"
如果我将 LIBS 和 INC 值设置为 brew和建议的路径export INC="-I/usr/local/opt/libxslt/include"
,它仍然会因此错误而失败。
关于如何调试这个的任何建议?我不是 Perl 开发人员,只是想运行现有的应用程序。
解决方案
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 一起工作——但它至少可以工作。
推荐阅读
- java - mybatis jdbc 选择查询不工作抛出无效的列索引
- apache-spark - 在 Spark 独立集群上运行 als 程序时出现 RDD 分区问题
- android - Kotlin-DataBinding-Error:检查您的模块类路径是否存在缺失或冲突的依赖项
- c++ - 沿非连续维度对图像进行分箱的最快方法
- java - 在 List 上实现迭代器
- > 在 O(1) 空间中
- java - 通过广播接收器检查时间根本不起作用
- c# - 如何使用需要参数的 AutoFac 注册泛型类?
- windows - 通过 windows CMD 执行 perl 脚本时发生 SSHAuthenticationError
- regex - 如何使用正则表达式解析逗号分隔的字符串而不进行拆分
- node.js - 处理 JWT 验证失败