SCS not properly installed

I am trying to add QuantumInformation.jl package in julia. But I am getting the following error:

ERROR: The following 1 direct dependency failed to precompile:

SCS [c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13]

Failed to precompile SCS [c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13] to "/home/devanshu/.julia/compiled/v1.10/SCS/jl_hqLW5o".
ERROR: LoadError: SCS not properly installed. Please run Pkg.build("SCS") and restart julia
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] top-level scope
   @ ~/.julia/packages/SCS/28Svy/src/SCS.jl:6
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /home/devanshu/.julia/packages/SCS/28Svy/src/SCS.jl:1
in expression starting at stdin:
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Types.jl:70
  [2] precompile(ctx::Pkg.Types.Context, pkgs::Vector{…}; internal_call::Bool, strict::Bool, warn_loaded::Bool, already_instantiated::Bool, timing::Bool, _from_loading::Bool, kwargs::@Kwargs{…})
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:1659
  [3] precompile(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{_from_loading::Bool})
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:159
  [4] precompile
    @ ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:147 [inlined]
  [5] #precompile#114
    @ ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:146 [inlined]
  [6] #invokelatest#2
    @ ./essentials.jl:894 [inlined]
  [7] invokelatest
    @ ./essentials.jl:889 [inlined]
  [8] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1963
  [9] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1812
 [10] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [11] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [12] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1803
 [13] macro expansion
    @ ./loading.jl:1790 [inlined]
 [14] macro expansion
    @ ./lock.jl:267 [inlined]
 [15] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1753
 [16] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [17] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [18] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1746
Some type information was truncated. Use `show(err)` to see complete types.

And when I do Pkg.build("SCS") I get the following

Pkg.build("SCS")
    Building SCS → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/936d43feaceae3290472ddf800b496be094d727b/build.log`
ERROR: Error building `SCS`: 
ERROR: LoadError: LibraryProduct(nothing, ["libscsindir"], :indirect, "Prefix(/home/devanshu/.julia/packages/SCS/28Svy/deps/usr)") is not satisfied, cannot generate deps.jl!
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] write_deps_file(depsjl_path::String, products::Vector{LibraryProduct}; verbose::Bool, isolate::Bool)
   @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/Products.jl:419
 [3] top-level scope
   @ ~/.julia/packages/SCS/28Svy/deps/build.jl:94
 [4] include(fname::String)
   @ Base.MainInclude ./client.jl:489
 [5] top-level scope
   @ none:5
in expression starting at /home/devanshu/.julia/packages/SCS/28Svy/deps/build.jl:94
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Types.jl:70
  [2] (::Pkg.Operations.var"#67#74"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String})()
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1157
  [3] withenv(::Pkg.Operations.var"#67#74"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, ::Pair{String, String}, ::Vararg{Pair{…}})
    @ Base ./env.jl:257
  [4] (::Pkg.Operations.var"#117#122"{String, Bool, Bool, Bool, Pkg.Operations.var"#67#74"{…}, Pkg.Types.PackageSpec})()
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1825
  [5] with_temp_env(fn::Pkg.Operations.var"#117#122"{…}, temp_env::String)
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1706
  [6] (::Pkg.Operations.var"#115#120"{…})(tmp::String)
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1795
  [7] mktempdir(fn::Pkg.Operations.var"#115#120"{…}, parent::String; prefix::String)
    @ Base.Filesystem ./file.jl:766
  [8] mktempdir(fn::Function, parent::String)
    @ Base.Filesystem ./file.jl:762
  [9] mktempdir
    @ ./file.jl:762 [inlined]
 [10] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Pkg.Types.Project; preferences::Dict{…}, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1753
 [11] build_versions(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}; verbose::Bool)
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1138
 [12] build_versions
    @ ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1056 [inlined]
 [13] build(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}, verbose::Bool)
    @ Pkg.Operations ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:996
 [14] build(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; verbose::Bool, kwargs::@Kwargs{io::Base.TTY})
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:1056
 [15] build(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{})
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:159
 [16] build(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:148
 [17] build
    @ ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:147 [inlined]
 [18] build(pkg::String)
    @ Pkg.API ~/julia-1.10.3/share/julia/stdlib/v1.10/Pkg/src/API.jl:146
 [19] top-level scope
    @ REPL[4]:1
Some type information was truncated. Use `show(err)` to see complete types.

Actually, everything was working fine when I was using julia-1.9, but when I tried to install the latest version, I ran into this issue.

What is the output of:

versioninfo()

What is the output of

using Pkg
Pkg.status()

?

It doesn’t appear to be possible to install the latest version of QuantumInformation on macOS linux and Julia v1.10, so Julia’s package manager is trying to install a very old version of SCS.jl (v0.6.6!) that is no longer supported.

(qi) pkg> add QuantumInformation@0.4.10
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package GPUCompiler [61eb1bfa]:
 GPUCompiler [61eb1bfa] log:
 ├─possible versions are: 0.1.0-0.26.4 or uninstalled
 ├─restricted by julia compatibility requirements to versions: 0.22.0-0.26.4 or uninstalled
 └─restricted by compatibility requirements with CUDA [052768ef] to versions: [0.8.1-0.10.0, 0.11.1-0.12.9, 0.13.3-0.17.3] — no versions left
   └─CUDA [052768ef] log:
     ├─possible versions are: 0.1.0-5.3.3 or uninstalled
     ├─restricted by julia compatibility requirements to versions: [2.3.0, 2.5.0-5.3.3] or uninstalled
     └─restricted by compatibility requirements with TensorOperations [6aa20fa7] to versions: 0.1.0-3.13.1, leaving only versions: [2.3.0, 2.5.0-3.13.1]
       └─TensorOperations [6aa20fa7] log:
         ├─possible versions are: 0.6.1-4.1.1 or uninstalled
         └─restricted by compatibility requirements with QuantumInformation [3c0b384b] to versions: 3.0.1-3.2.5
           └─QuantumInformation [3c0b384b] log:
             ├─possible versions are: 0.4.0-0.4.10 or uninstalled
             └─restricted to versions 0.4.10 by an explicit requirement, leaving only versions: 0.4.10

You could open an issue at GitHub - iitis/QuantumInformation.jl: A Julia package for numerical computation in quantum information theory, or stick to using Julia v1.9.

1 Like
julia> versioninfo()
Julia Version 1.10.3
Commit 0b4590a5507 (2024-04-30 10:59 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, haswell)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)

julia> Pkg.status()
Status `~/.julia/environments/v1.10/Project.toml`
  [8bb1440f] DelimitedFiles v1.9.1
⌅ [31c24e10] Distributions v0.23.12
  [cc61a311] FLoops v0.2.1
⌃ [3c0b384b] QuantumInformation v0.4.6
⌅ [c946c3f1] SCS v0.6.6
  [10745b16] Statistics v1.10.0
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`

1 Like

Hi, thanks for the reply. But I am not using macOS. I am using Ubuntu.

1 Like

I see that now you replied with versioninfo() :smile:

Same answer still applies: QuantumInformation is broken on Julia v1.10.

You need at least SCS v1.0.0 in your Pkg.status().

1 Like

Thanks! I guess I will stick to julia-1.9.0.

But please create a bug report!

1 Like

I have added an issue here.

1 Like