在尝试为某些Julia程序包运行Pkg.add(...)时,我们遇到以下错误:
ERROR: Build process failed.
build!(::Array{String,1}, ::Set{Any}, ::String) at ./pkg/entry.jl:629
build!(::Array{String,1}, ::Set{Any}, ::String) at ./pkg/entry.jl:626 (repeats 2 times)
build!(::Array{String,1}, ::Dict{Any,Any}, ::Set{Any}) at ./pkg/entry.jl:637
build(::Array{String,1}) at ./pkg/entry.jl:652
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:572
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
[1] sync_end() at ./task.jl:287
[2] macro expansion at ./task.jl:303 [inlined]
[3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
[4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
[5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
[6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
[7] add(::String) at ./pkg/pkg.jl:117
有趣的是,如果我们尝试为同一程序包重新运行Pkg.add(...),它将起作用! 例如,运行Pkg.add(“ DataArrays”)失败,首先出现上述错误,但重新运行同一命令后,它已正确安装。
底层C / C ++库是否可能引起问题?
环境:
使用Debian GNU / Linux 8.6(jessie)Julia 0.6.3的Docker
答案 0 :(得分:1)
julia的早期版本不太稳定... 我解决各种问题的方法是rm -rf〜/ .julia 以便重新安装并重建所有软件包...我不知道为什么,但是可以正常工作
无论如何,julia现在是v1.1.0(在dev中,在v1.0.1中已发布) 建议升级
答案 1 :(得分:0)
您也可以尝试使用0.7版,因为此交叉版本应该与0.6和1.0代码都基本兼容