【问题标题】:Perl6: rakudobrew cannot build moarPerl6:rakudobrew 无法构建 moar
【发布时间】:2019-08-12 15:49:56
【问题描述】:

我想升级到最新版本的 Perl6,

rakudobrew build moar
Update git reference: rakudo
Cloning into 'rakudo'...
fatal: unable to connect to github.com:
github.com[0: 140.82.114.4]: errno=Connection timed out

Failed running git clone git://github.com/rakudo/rakudo.git rakudo at /home/con/.rakudobrew/bin/rakudobrew line 57.
    main::run("git clone git://github.com/rakudo/rakudo.git rakudo") called at /home/con/.rakudobrew/bin/rakudobrew line 397
    main::update_git_reference("rakudo") called at /home/con/.rakudobrew/bin/rakudobrew line 368
    main::build_impl("moar", undef, "") called at /home/con/.rakudobrew/bin/rakudobrew line 115

这只是一个简单的连接失败,但我该如何解决呢?

【问题讨论】:

  • 连接错误。您只需要等到它修复即可;当你下载没有错误时,使用下载的代码来构建。

标签: raku


【解决方案1】:

您的连接问题实际上与任何 P6 相关软件无关,或者实际上与您正在使用的任何软件无关。正如您所说,“只是一个简单的连接失败”。而且大多数此类故障都是暂时的并且“自行修复”。正如 JJ 指出的那样,在这种情况下,您只需等待,然后事情就会重新开始。

因此,当您阅读本文时,它可能会再次为您工作,而无需您修复任何东西。但无论如何我都在用这些部分写一个答案:

  • 考虑不使用rakudobrew

  • “自行修复”的连接问题

  • 您自己调查或解决的连接问题

  • 四处走动single points of failure

考虑不使用rakudobrew

rakudobrew 的主要目的是支持同时安装多个版本的 Rakudo,该工具的主要受众是对 Rakudo 编译器进行黑客攻击的人,而不是那些仅仅使用它的人。

如果您只是普通用户,而不是开发 Rakudo 编译器的人和/或不需要同时安装具有完整源代码的多个 Rakudo 版本,那么请考虑直接下载和安装 Rakudo 文件,例如。通过rakudo.org/files,而不是通过rakudobrew

“自行修复”的连接问题

rakudobrew 失败,因为 git clone ... 命令失败,因为与 github.com 服务器的连接超时。

当使用通常有效的连接执行通常有效的操作时服务器超时可能是暂时性问题,也就是“请稍后再试”问题。

暂时性问题通常会在几秒、几分钟或几小时后“自行修复”。

如果在您重试时仍然存在问题,并且您想花时间尝试正式了解发生了什么,然后查找该服务器的状态页面。

以下是我所知道的 github.com 的两个状态页面:

对于 非官方 scuttlebutt,我建议阅读 twitter 提要。

对我来说,现在 github.com 运行良好,状态页面显示所有系统都已运行。

所以它现在应该也适合你了。

如果不是,那么您可以等待更长时间,或进行调查。如果您想调查,请先查看上面的状态页面。

您自己调查或解决的连接问题

如果 github 声称它工作正常,那么您的本地互联网“入口”(您的系统或您的互联网服务提供商的)可能存在问题,或者您的入口和您无法连接的服务器之间的某个更远的地方存在问题到。 (您只能根据世界上哪个地区在任何给定时刻管理与服务器关联的 IP 地址来大致了解服务器的位置。)

下一个要看的地方是the internet traffic report;这表明全球范围内的交通拥堵等。 (忽略可视化显示,在某些浏览器上会损坏,点击表格中的链接向下钻取。)

如果您与管理您无法连接到的服务器的 IP 地址的区域之间全是绿色,那么下一个转向的地方将是您的系统管理员和/或 ISP。

如果做不到这一点,那么也许您可以在类似 serverfault.comsuperuser.com 的姊妹 stackexchange 网站上提问。

避免单点故障

也许您认为可能存在一些系统冗余和/或您对这方面感兴趣。

P5 的生态系统及其工具总体上已经成熟并且限制了散播。这与大多数其他语言的生态系统和工具不同;因此,如果您已经习惯了 CPAN 卓越的可靠性/可用性,因为它避免了 spofs 以及扩展 perlbrew,那么您已经被 P5 宠坏了。

P6 生态系统/工具组合在 P5 传统中不断发展。

例如,zef 包管理器会自动连接到 github 旁边的 CPAN,并且可以连接到其他存储库。生态系统正在利用zef 功能的一部分,因为许多模块都冗余地托管在 CPAN 和 github 上。

rakudobrew 忽略 CPAN 并假定使用 git repos。它可以通过其Variables.pm 文件进行令人印象深刻的配置,该文件包含一个%git_repos 变量,该变量可以重新定位到像 gitlab 这样的替代 git repo 站点。但据我所知,没有人安排将相关的 rakudo 文件冗余复制和更新到另一个 git repo 站点,因此 rakudobrew 代码中显然固有的这种避免传播的能力,afaik,目前还没有实际意义。

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2019-04-11
    • 1970-01-01
    • 2018-03-23
    • 2019-08-03
    相关资源
    最近更新 更多