Reputation: 155
I wanted to start using dedicated environments for all my julia projects, but activating the new environment and using packages (eg. Plots.jl) results in Precompiling that fails with the following error:
Activating environment at `~/Documents/baro/Project.toml`
julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]
ERROR: LoadError: InitError: could not load library "/home/marius/.julia/artifacts/08ab4b2de494e1d61e581ab1fbd610b0b4d1876f/lib/libavdevice.so"
libx264.so.157: cannot open shared object file: No such file or directory
Stacktrace:
[1] dlopen(::String, ::UInt32; throw_error::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109
[2] dlopen at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
[3] __init__() at /home/marius/.julia/packages/FFMPEG_jll/tCUYA/src/wrappers/x86_64-linux-gnu.jl:231
[4] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:697
[5] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:781
[6] _require(::Base.PkgId) at ./loading.jl:1006
[7] require(::Base.PkgId) at ./loading.jl:927
[8] require(::Module, ::Symbol) at ./loading.jl:922
[9] include(::Module, ::String) at ./Base.jl:377
[10] top-level scope at none:2
[11] eval at ./boot.jl:331 [inlined]
[12] eval(::Expr) at ./client.jl:449
[13] top-level scope at ./none:3
during initialization of module FFMPEG_jll
in expression starting at /home/marius/.julia/packages/FFMPEG/vocw2/src/FFMPEG.jl:3
ERROR: LoadError: Failed to precompile FFMPEG [c87230d0-a227-11e9-1b43-d7ebe4e7570a] to /home/marius/.julia/compiled/v1.4/FFMPEG/TGvga_eB360.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
[6] include(::Module, ::String) at ./Base.jl:377
[7] top-level scope at none:2
[8] eval at ./boot.jl:331 [inlined]
[9] eval(::Expr) at ./client.jl:449
[10] top-level scope at ./none:3
in expression starting at /home/marius/.julia/packages/Plots/LWw1t/src/Plots.jl:15
ERROR: Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to /home/marius/.julia/compiled/v1.4/Plots/ld3vC_eB360.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
This also happens for some other packages like ControlSystems. The julia version is 1.4.2 but I was able to reproduce this error with 1.5.0 and on a different computer with 1.3.1 on it. Both systems are runnning Ubuntu 20.04 LTS.
What I tried so far was:
Pkg.build()
Pkg.instantiate()
Any help to get the packages running will be greatly appreciated as I really like the idea of having dedicated environments for every project. Also on 1.3.1 even after switching to the default environment the error is still occuring.
Upvotes: 0
Views: 2246
Reputation:
The issue seems to lay in the FFMPEG package.
The following solved the issue for me:
Remove FFMPEG. Then delete the folder which is given in the error message. In your case: "/home/marius/.julia/artifacts/08ab4b2de494e1d61e581ab1fbd610b0b4d1876f/lib/libavdevice.so"
Then add FFPEG again which results in a change in the Manifest.toml which does not happen if you just remove FFMPEG:
Updating `~/.julia/environments/v1.3/Manifest.toml`
[1270edf5] ↓ x264_jll v2020.7.14+0 ⇒ v2019.5.25+2
Try: using FFMPEG, Plots
.
I was able to precompile Plots then.
Upvotes: 2