在BigSur上使用perlbrew安装perl时出错
我正在尝试使用 perlbrew 在我的 macOS 环境中安装 perl 版本 5.33.4。我无法理解为什么它在安装过程中失败。
我开始使用 安装curl -L https://install.perlbrew.pl | bashperlbrew,然后在我的 zshenv 中添加了这一行:source ~/perl5/perlbrew/etc/bashrc并开始使用perlbrew install perl-5.33.4命令安装 perl 。我也尝试过不同的 perl 版本,但问题是一样的。
这是记录的错误:
# Failed test 20 - array should contain one result or more: libc => () at t/DynaLoader.t line 127
# got "0"
# expected >= "1"
../ext/DynaLoader/t/DynaLoader.t .....................................
Failed 1/44 subtests
Test Summary Report
-------------------
../ext/DynaLoader/t/DynaLoader.t (Wstat: 0 Tests: 44 Failed: 1)
Failed test: 20
Files=2652, Tests=1183275, 624 wallclock secs (25.86 usr 5.24 sys + 260.60 cusr 25.43 csys = 317.13 CPU)
Result: FAIL
make: *** [test_harness] Error 1
##### Brew Failed #####
如何找到检测问题并解决问题的方法?提前感谢任何建议。
回答
macOS Big Sur 中的更改破坏了 Perl 模块安装工具链的一部分。
来自macOS Big Sur 11.0.1 发行说明
macOS Big Sur 11.0.1 中的新功能,系统附带所有系统提供的库的内置动态链接器缓存。作为此更改的一部分,文件系统上不再存在动态库的副本。尝试通过在路径中查找文件或枚举目录来检查动态库是否存在的代码将失败。相反,通过尝试 dlopen() 路径来检查库是否存在,这将正确检查缓存中的库。(62986286)
这会阻止安装 Perl。
已在此处针对 ExtUtils-MakeMaker 提交罚单 (#381) 。目前未解决。
已在此处针对 Perl 本身提交了一张票 (#18406) 。