【问题标题】:Error installing perl using perlbrew on Big Sur在 Big Sur 上使用 perlbrew 安装 perl 时出错
【发布时间】:2020-12-14 22:13:22
【问题描述】:

我正在尝试使用 perlbrew 在我的 macOS 环境中安装 perl 版本 5.33.4。我无法理解为什么它在安装过程中失败。

我开始使用\curl -L https://install.perlbrew.pl | bash 安装perlbrew,然后我在我的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 #####

如何找到检测问题并解决问题的方法? 提前感谢任何建议。

【问题讨论】:

  • 5.33.4 是内部版本(因为 33 是​​奇数)您是要安装那个版本吗? 5.32.0 是最新的公开版本。如果您不需要该版本,那么使用 5.32.0 可能会更好。无论您选择安装哪个,请包括实际错误,而不仅仅是摘要。
  • 嗨@ikegami,感谢您的建议。我将尝试使用 5.32.0。我编辑了我的答案。 build.perl-5.33.4.log 很长。这是我第一次读它。希望我已经包含了感兴趣的行来检查问题。
  • 安装5.32.0版本@ikegami也出现同样的错误

标签: macos perl perlbrew


【解决方案1】:

macOS Big Sur 的一项更改破坏了 Perl 的模块安装工具链的一部分。

来自macOS Big Sur 11.0.1 Release Notes

macOS Big Sur 11.0.1 中的新功能,系统附带了所有系统提供的库的内置动态链接器缓存。作为此更改的一部分,文件系统上不再存在动态库的副本。尝试通过在路径中查找文件或枚举目录来检查动态库是否存在的代码将失败。相反,通过尝试 dlopen() 路径来检查库是否存在,这将正确检查缓存中的库。 (62986286)

这会阻止安装 Perl。

已针对 ExtUtils-MakeMaker here 提交了一张票 (#381)。目前尚未解决。

已针对 Perl 本身提交了一张票 (#18406) here。

【讨论】:

  • 对于它的价值,答案中提到的两个错误都已关闭,我今天能够在 Big Sur 上perlbrew install 5.32.1。
【解决方案2】:

这是 perl 需要解决的问题。有perlbrew issue 701 与how MakeMaker looks for libraries 相关。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2021-06-19
    • 2021-08-04
    • 2021-05-31
    相关资源
    最近更新 更多