При попытке запустить Pkg.add (...) для некоторых пакетов Julia мы обнаружили следующую ошибку:
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 (Джесси) Джулия 0.6.3