-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arch Linux: bundled runtime fails with `CURL_OPENSSL_4' not found/can't connect to GKS socket #528
Comments
Installing the AUR package is only an additional alternative to install the GR runtime. If you would like to also use GR without Julia, this is the recommended way. If you only want to create plots in Julia, you can use the pre-built binaries and don't get in touch with C-GR at all. I have tested the GR installation both on a fresh Manjaro XFCE and an Arch with XFCE desktop and cannot reproduce the problem. Since the problem is related to curl -L https://google.de ? |
Running $ curl -L https://google.de outputs some html to the console as expected. The different $ locate libcurl.so
/opt/mambaforge/lib/libcurl.so
/opt/mambaforge/lib/libcurl.so.4
/opt/mambaforge/lib/libcurl.so.4.8.0
/usr/lib/libcurl.so
/usr/lib/libcurl.so.4
/usr/lib/libcurl.so.4.8.0
/usr/lib/julia/libcurl.so
/usr/lib/julia/libcurl.so.4
/usr/lib/julia/libcurl.so.4.8.0
$ pacman -Qo /usr/lib/libcurl.so /usr/lib/julia/libcurl.so /opt/mambaforge/lib/libcurl.so
/usr/lib/libcurl.so is owned by curl 8.4.0-2
/usr/lib/julia/libcurl.so is owned by julia-bin 1.9.3-1
/opt/mambaforge/lib/libcurl.so is owned by mambaforge 23.3.1.1-1 (Note that I'm using the AUR julia-bin package as recommended in the Arch Wiki.) $ ldd /usr/gr/bin/gksqt | cut -d\( -f1 | sort > ldd_ext
$ ldd ~/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/bin/gksqt | cut -d\( -f1 | sort > ldd_int
$ diff ldd_int ldd_ext
13d12
< libdl.so.2 => /usr/lib/libdl.so.2
54d52
< libpthread.so.0 => /usr/lib/libpthread.so.0 The difference does not seem to be related to If I remember correctly, this problem had already come up some months ago, but fixed itself with some Arch and/or Julia update, but unfortunately I can't remember the details. Is there anything else I can do to help to debug this? |
Here are the $ julia -e 'delete!(ENV, "GRDIR"); using GR; GR.GRPreferences.diagnostics()'
┌ Info: GRDIR Environment Variable
└ get(ENV, "GRDIR", missing) = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6"
┌ Info: GR Preferences
│ binary = nothing
└ grdir = nothing
┌ Info: resolved_grdir
│ resolved_grdir = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6"
│ isdir(resolved_grdir) = true
└ isdir.(joinpath.((resolved_grdir,), ("bin", "lib", "include", "fonts"))) = (true, true, true, true)
┌ Info: GR_jll Preferences
│ libGR_path = nothing
│ libGR3_path = nothing
│ libGRM_path = nothing
│ libGKS_path = nothing
│ gksqt_path = nothing
└ grplot_path = nothing
┌ Info: GR_jll Overrides.toml
│ overrides_toml_path = "/home/sandig/.julia/artifacts/Overrides.toml"
│ isfile(overrides_toml_path) = false
└ get(gr_jll_override_dict, "GR", nothing) = nothing
┌ Info: GR_jll
│ GR_jll.libGR_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR.so"
│ GR_jll.libGR3_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so"
│ GR_jll.libGRM_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGRM.so"
│ GR_jll.libGKS_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGKS.so"
│ GR_jll.gksqt_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/bin/gksqt"
└ GR_jll.grplot_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/bin/grplot" $ julia -e 'ENV["GRDIR"] = "/usr/gr"; using GR; GR.GRPreferences.diagnostics()'
┌ Info: GRDIR Environment Variable
└ get(ENV, "GRDIR", missing) = "/usr/gr"
┌ Info: GR Preferences
│ binary = nothing
└ grdir = nothing
┌ Info: resolved_grdir
│ resolved_grdir = "/usr/gr"
│ isdir(resolved_grdir) = true
└ isdir.(joinpath.((resolved_grdir,), ("bin", "lib", "include", "fonts"))) = (true, true, true, true)
┌ Info: GR_jll Preferences
│ libGR_path = nothing
│ libGR3_path = nothing
│ libGRM_path = nothing
│ libGKS_path = nothing
│ gksqt_path = nothing
└ grplot_path = nothing
┌ Info: GR_jll Overrides.toml
│ overrides_toml_path = "/home/sandig/.julia/artifacts/Overrides.toml"
│ isfile(overrides_toml_path) = false
└ get(gr_jll_override_dict, "GR", nothing) = nothing
┌ Info: GR_jll
│ GR_jll.libGR_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR.so"
│ GR_jll.libGR3_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGR3.so"
│ GR_jll.libGRM_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGRM.so"
│ GR_jll.libGKS_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/lib/libGKS.so"
│ GR_jll.gksqt_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/bin/gksqt"
└ GR_jll.grplot_path = "/home/sandig/.julia/artifacts/7f59a0ec3d19c98dce30a3ba8ea9cbd8824ce4a6/bin/grplot" |
Did you switch to the GR system binary? using GR
GR.GRPreferences.use_system_binary("/usr/gr"; force = true) The diagnostics should look like this: using GR; GR.GRPreferences.diagnostics()
┌ Info: GRDIR Environment Variable
└ get(ENV, "GRDIR", missing) = "/usr/gr"
┌ Info: GR Preferences
│ binary = "system"
└ grdir = "/usr/gr"
┌ Info: resolved_grdir
│ resolved_grdir = "/usr/gr"
│ isdir(resolved_grdir) = true
└ isdir.(joinpath.((resolved_grdir,), ("bin", "lib", "include", "fonts"))) = (true, true, true, true)
┌ Info: GR_jll Preferences
│ libGR_path = nothing
│ libGR3_path = nothing
│ libGRM_path = nothing
│ libGKS_path = nothing
│ gksqt_path = nothing
└ grplot_path = nothing
┌ Info: GR_jll Overrides.toml
│ overrides_toml_path = "/home/sandig/.julia/artifacts/Overrides.toml"
│ isfile(overrides_toml_path) = false
└ get(gr_jll_override_dict, "GR", nothing) = nothing
┌ Info: GR_jll
│ GR_jll.libGR_path = "/usr/gr/lib/libGR.so"
│ GR_jll.libGR3_path = "/usr/gr/lib/libGR3.so"
│ GR_jll.libGRM_path = "/usr/gr/lib/libGRM.so"
│ GR_jll.libGKS_path = "/usr/gr/lib/libGKS.so"
│ GR_jll.gksqt_path = "/usr/gr/bin/gksqt"
└ GR_jll.grplot_path = "/usr/gr/bin/grplot"
(binary = "system", grdir = "/usr/gr", libGR_path = nothing, libGR3_path = nothing, libGRM_path = nothing, libGKS_path = nothing, gksqt_path = nothing, grplot_path = nothing, overrides_toml_path = "/home/sandig/.julia/artifacts/Overrides.toml", gr_jll_override_dict = Dict{String, Any}()) |
Oh, my bad. I had incorrectly assumed that setting the environment variable would be sufficient. Including GR.GRPreferences.use_system_binary("/usr/gr"; force = true) results in the output that you posted. |
Aha! I just noticed that the
The package So it looks like this was not a GR problem after all. Thanks for your help and sorry for the noise. |
GR.jl stopped working on Arch Linux with the bundled runtime, but works with GR compiled from source.
Reading the other issues here (e.g., #319), it seems that installing the gr-framework AUR package is the recommended way of using GR.jl on Arch? If so, maybe it would be helpful to put this information in some more prominent place in the README? (Apologies if it already is there and I just missed it).
Details when using the bundled runtime:
With runtime built from source everything works:
Package versions:
The text was updated successfully, but these errors were encountered: