我是Julia的新手,我想使用COBRA包。为了添加COBRA,我使用命令:
Pkg.add("COBRA")
但在运行时,我会遇到以下错误:
信息:构建WinRPM
警告:跳过repodat/repomd.xml,不在缓存中--调用WinRPM.update((下载
警告:跳过repodat/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
警告:下载时收到错误0https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
在这些错误之后,我检查了链接,发现源已经不在了。所以我运行了这个命令,如上所述:
WinRPM.update()
但它抛出了这个错误:
错误:UndefVar错误:WinRPM未定义
请帮助我将COBRA添加到Julia。我使用0.6.4版本,因为Cobra在下一个版本上不起作用。(Windows 10(如有任何帮助,我们将不胜感激。
正如您所提到的,问题是包使用的原始源不再是有效的URL。解决这个问题的正确方法是打开一个带有包的pull请求来更改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"
WinRPM.update()
现在应该可以工作了,并将内容下载到本地缓存中
我使用的是0.6.4版本,因为Cobra在下一个版本上不起作用。
我希望你指的是Julia 1.6.4,或者堆栈中其他版本的0.6.4。如果你指的是Julia版本0.6.4,那么你可能会面临更多的问题,并发现很难获得对这样一个旧版本的支持。