skip to Main Content

I installed julia (v1.1.1) via as stated in [platform specific instructions(https://julialang.org/downloads/platform.html) on my CentOS machine using yum and epel.

Julia works fine, but when precompiling packages (using DataFrames for example), I get

[ Info: Precompiling GLM [38e38edf-8417-5370-95a0-9cbb8c7f171a]
ERROR: LoadError: No deps.jl file could be found. Please try running Pkg.build("Arpack").
Currently, the build command might fail when Julia has been built from source
and the recommendation is to use the official binaries from julialang.org.
For more info see https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5.

I don’t know enough about compilations, building from source, etc. to solve this. I guess it would work fine if I just download Julia from the main page and use it from within that folder. But I would prefer using it via package manager to automatically receive updates.

How do I solve this?

3

Answers


  1. Chosen as BEST ANSWER

    So I eventually solved this via help of the original julialang page. For some reason, Arpack can't be built if you install julia via # yum install julia (with epel enabled). Pkg.build("Arpack") fails.

    If you download julia from the official page and add it to path, it still throws the same error message. If you however start up julia and run Pkg.build("Arpack") beforehand, it works fine!


  2. Unfortunately this is expected since Arpack.jl expects OpenBLAS to be called libopenblas64_.so.0, while in Fedora/CentOS it is libopenblasp64_.so.0. You can work around the problem using sudo ln -s /lib64/libopenblas64p_.so.0 ~/.julia/packages/Arpack/*/deps/lib/libopenblas64_.so.0. I’ll try to find a solution with Arpack.jl developers.

    Login or Signup to reply.
  3. I confirm that @MilanBouchet-Valat solution works. Here is some details for Debian distribution.

    I have installed Julia using Debian 4.19.37-5 package manager (synaptic for instance). I have

    julia> versioninfo()
    

    prints

    Julia Version 1.0.4
    Platform Info:
      OS: Linux (x86_64-linux-gnu)
      CPU: Intel(R) Xeon(R) CPU E5-2603 v3 @ 1.60GHz
      WORD_SIZE: 64
      LIBM: libopenlibm
      LLVM: libLLVM-6.0.0 (ORCJIT, haswell)
    
    • The symptoms

    Under Julia I got the “expected” error when trying to install the Arpack package:

    (v1.0) pkg> add Arpack
    

    prints

     Resolving package versions...
      Updating `~/.julia/environments/v1.0/Project.toml`
      [7d9fca2a] + Arpack v0.3.1
      Updating `~/.julia/environments/v1.0/Manifest.toml`
     [no changes]
    

    then

    julia> using Arpack
    

    prints

    [ Info: Precompiling Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]
    ERROR: LoadError: No deps.jl file could be found. Please try running 
    Pkg.build("Arpack").
    
    Currently, the build command might fail when Julia has been built from source
    and the recommendation is to use the official binaries from julialang.org.
    For more info see https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5.
    
    Stacktrace:
     [1] top-level scope at /home/picaud/.julia/packages/Arpack/cu5By/src/Arpack.jl:19
     [2] include at ./boot.jl:317 [inlined]
     [3] include_relative(::Module, ::String) at ./loading.jl:1044
     [4] include(::Module, ::String) at ./sysimg.jl:29
     [5] top-level scope at none:2
     [6] eval at ./boot.jl:319 [inlined]
     [7] eval(::Expr) at ./client.jl:393
     [8] top-level scope at ./none:3
    in expression starting at /home/picaud/.julia/packages/Arpack/cu5By/src/Arpack.jl:16
    ERROR: Failed to precompile Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97] to /home/picaud/.julia/compiled/v1.0/Arpack/X5VZL.ji.
    Stacktrace:
     [1] error(::String) at ./error.jl:33
     [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1203
     [3] _require(::Base.PkgId) at ./loading.jl:960
     [4] require(::Base.PkgId) at ./loading.jl:858
     [5] require(::Module, ::Symbol) at ./loading.jl:853
    

    however

     pkg> build Arpack
    

    prints

      Building Arpack → `~/.julia/packages/Arpack/cu5By/deps/build.log`
    ┌ Error: Error building `Arpack`: 
    │ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/picaud/.julia/packages/Arpack/cu5By/deps/usr)") is not satisfied, cannot generate deps.jl!
    │ Stacktrace:
    │  [1] error(::String) at ./error.jl:33
    │  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/picaud/.julia/packages/BinaryProvider/TcAwt/src/Products.jl:414
    │  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
    │  [4] top-level scope at none:0
    │  [5] include at ./boot.jl:317 [inlined]
    │  [6] include_relative(::Module, ::String) at ./loading.jl:1044
    │  [7] include(::Module, ::String) at ./sysimg.jl:29
    │  [8] include(::String) at ./client.jl:392
    │  [9] top-level scope at none:0
    │ in expression starting at /home/picaud/.julia/packages/Arpack/cu5By/deps/build.jl:74
    └ @ Pkg.Operations /build/julia-gbfU8y/julia-1.0.4+dfsg/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1096
    
    • The diagnostic

    You can check that this is a dependance problem with:

    ldd ~/.julia/packages/Arpack/cu5By/deps/usr/lib/libarpack.so
    

    prints

        linux-vdso.so.1 (0x00007ffc179a1000)
        libopenblas64_.so.0 => not found            <----
        libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007feea073d000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feea05ba000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007feea05a0000)
        libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007feea0557000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feea0396000)
        /lib64/ld-linux-x86-64.so.2 (0x00007feea0c67000)
    

    Debian distro:

    find /usr/lib/ -name libopenblas*
    

    prints

    /usr/lib/x86_64-linux-gnu/libopenblas.so
    /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.6.a
    /usr/lib/x86_64-linux-gnu/libopenblas64_.so.0
    /usr/lib/x86_64-linux-gnu/julia/libopenblas.so
    /usr/lib/x86_64-linux-gnu/libopenblas.so.0
    /usr/lib/x86_64-linux-gnu/libopenblas.a
    /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.6.so
    
    • The “fix”

    With root privileges (su) create a symbolic links

    ln -s /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/lib/x86_64-linux-gnu/libopenblas64_.so.0
    

    Now it works

    pkg> build Arpack
    Building Arpack → `~/.julia/packages/Arpack/cu5By/deps/build.log`
    

    then

    using Arpack
    [ Info: Precompiling Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]
    

    are OK

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search