Julia error on startup

Problem

Starting Julia causes this error:

$ julia
┌ Error: Error during initialization of module CHOLMOD
│   exception =
│    could not load library "libcholmod"
│    libcholmod.so: cannot open shared object file: No such file or directory
└ @ SparseArrays.CHOLMOD /usr/share/julia/stdlib/v1.9/SparseArrays/src/solvers/cholmod.jl:243
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.2 (2023-07-05)
 _/ |\__'_|_|_|\__'_|  |  Fedora 40 build
|__/                   |

julia>
$ rpm -q julia
julia-1.9.2-4.fc40.x86_64

Cause

Not yet known.

Related Issues

Workarounds

None yet.

From Proposed Common Issues to Ask Fedora

Do you have the suitesparse package installed on your system?

Never mind, it looks like julia has a bundled copy of suitesparse. The real problem is that /usr/lib64/julia has several broken symlinks. This is a packaging bug. Go to https://bugzilla.redhat.com/ and file a bug against the julia package asking for the broken links to be fixed.

It looks like somebody is working on it, but the builds have been failing: julia | Package Info | koji

2 Likes

Thank you very much much for finding the problem! :slight_smile:

Well, if my brain had been functioning correctly, I would have first checked https://bugz.fedoraproject.org/julia, which turns up this bug: https://bugzilla.redhat.com/show_bug.cgi?id=2274270. It sounds like the situation is challenging to fix.

Quoting Julia Downloads:

Please do not use the version of “Julia” shipped by unix package managers.

Many unix package managers ship broken and/or significantly out of date versions of Julia. Please use juliaup or download the official binaries instead.

Some languages built around open source numerical codes and file formats require libraries built using options that are often not supported in linux distros, so have moved from distributing source packages that can be built and linked to distro libraries on multiple linux distros to providing binary packages that include libraries built with configurations needed by the language. Anaconda Python is an example of this.

Such languages are supported by a community of users. The community benefits when everyone is using the same binaries from reduced issues related to distro choices for library configurations.

My personal opinion is that distros need to focus on standardized for basic services – networking, filesystems, graphics hardware support, sound, and input devices. Users who rely heavily on Python, Julia, that have active cross-distro communities should consider using the 3rd party cross-distro packages for the benefits of participating in a large and focused community.