3

我是 Julia 的新手,我想使用 COBRA 包。为了添加 COBRA,我使用命令:

Pkg.add("COBRA")

但是在运行时,我得到了这些错误:

信息:构建 WinRPM

警告:跳过 repodata/repomd.xml,不在缓存中——调用 WinRPM.update() 下载

警告:跳过 repodata/repomd.xml,不在缓存中——调用 WinRPM.update() 下载

信息:下载https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

警告:未知下载失败,错误代码:2148270086

警告:重试 1/5 下载:https ://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

直到:

警告:未知下载失败,错误代码:2148270086

警告:重试 5/5 下载:https ://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

警告:下载https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml时收到错误 0

在这些错误之后,我检查了链接,发现源不存在了。然后我如上所述运行了这个命令:

WinRPM.update()

但它抛出了这个错误:

错误:UndefVarError:未定义 WinRPM

请帮助我将 COBRA 添加到 Julia。我使用的是 0.6.4 版本,因为 Cobra 不适用于下一个版本。(Windows 10)任何帮助将不胜感激。

4

1 回答 1

1

正如您所提到的,问题在于包使用的原始来源不再是有效的 URL。解决这个问题的正确方法是使用包打开一个拉取请求以更改 URL(我现在已经在这里完成了)。作为权宜之计,这里有一个解决这个问题的方法:

  • 做一个Pkg.add("WinRPM")。这可能会触发与上述相同的警告,请忽略这些。
  • 接下来,using WinRPM加载我们添加的包
  • 现在,源 URL 从sources.list文件(上面链接)中读取到全局WinRPM.sources变量中。我们将编辑此变量的内容以指向新的工作 URL。(这通常是一个糟糕的想法,直接进入模块的内部并进行更改。)

julia> WinRPM.sources[:] = replace.(WinRPM.sources, "Leap_42.3" => "Leap_15.3")
2-element Vector{String}:
 "https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_15.3"
 "https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_15.3"

  • AWinRPM.update()现在应该可以工作,并将内容下载到本地缓存中。

我使用的是 0.6.4 版本,因为 Cobra 不适用于下一个版本。

我希望您在这里指的是 Julia 1.6.4,或者堆栈中其他版本的 0.6.4。如果您指的是 Julia 版本 0.6.4,那么您可能会面临更多问题,并且很难获得对这样一个旧版本的支持。

于 2021-12-03T15:57:10.530 回答