-
Notifications
You must be signed in to change notification settings - Fork 28
Description
I'm on Archlinux (using the distro-built package) and I'm currently trying to import the Arpack module but getting an error with a missing library:
ERROR: LoadError: InitError: could not load library "/home/pengwyn/.julia/artifacts/8a63e55e4ce37cc04c039ac5f48c2a8b8e9b3b37/lib/libarpack.so"
libopenblas64_.so.0: cannot open shared object file: No such file or directory
From what I understand, this is an artifact being loaded by Arpack_jll, which itself depends on OpenBLAS_jll which should include the dependency of libopenblas64_.so.0. However, the issue appears to be the system (i.e. the external dlopen, not the internal Julia dlopen) is looking for the library and can't find it.
I can confirm that a unspecific dlopen of libopenblas64_.so works (presumably because this is cached?) but trying to dlopen libopenblas64_.so.0 fails:
julia> using OpenBLAS_jll
julia> using Libdl
julia> dlopen("libopenblas64_.so")
Ptr{Nothing} @0x00005611d02e57b0
julia> dlopen("libopenblas64_.so.0")
ERROR: could not load library "libopenblas64_.so.0"
libopenblas64_.so.0: cannot open shared object file: No such file or directory
If I manually include the artifact lib directory into Libdl.DL_LOAD_PATH then I am able to do an in-Julia dlopen("libopenblas64_.so.0") successfully, but importing the Arpack_jll module still fails, I guess because this is part of the system library lookup.
The only way I've been able to make this work so far, is to make sure the artifact lib directory is in the LD_LIBRARY_PATH environment variable before starting Julia.
I can confirm that importing Arpack works using the official Julia binaries because libopenblas64_.so.0 is present in /usr/lib/julia, although that's not a solution for me as it breaks my code for interfacing with some other programs.
My version info (thanks to Tamas_Papp and Elrod on Discourse)
(@v1.4) pkg> st --manifest Arpack
Status `~/.julia/environments/v1.4/Manifest.toml`
[7d9fca2a] Arpack v0.4.0
[68821587] Arpack_jll v3.5.0+2
[8f399da3] Libdl
[37e2e46d] LinearAlgebra
julia> versioninfo()
Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
julia> using LinearAlgebra; BLAS.vendor()
:openblas