Julia - 如何在 Julia 版本 0.6.4 中更新 WinRPM

Julia - how to update WinRPM in julia version 0.6.4

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

Pkg.add("COBRA")

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

INFO: Building WinRPM

WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download

WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download

INFO: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

WARNING: Unknown download failure, error code: 2148270086

WARNING: Retry 1/5 downloading: https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

直到:

WARNING: Unknown download failure, error code: 2148270086

WARNING: Retry 5/5 downloading: https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

WARNING: received error 0 while downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml

在这些错误之后,我检查了 link 并且我发现来源已经不存在了。 那么我 运行 这个命令如上所述:

WinRPM.update()

但是它抛出了这个错误:

ERROR: UndefVarError: WinRPM not defined

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

正如您所提到的,问题在于原始来源 used by the package aren't valid URLs anymore. The proper way to solve this is to open a pull request with the package to change the URLs (which I've now done here)。作为权宜之计,这里有一个暂时解决此问题的 hacky 方法:

  • 做一个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"

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

I'm using version 0.6.4 because Cobra does not work on the next versions.

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