Libjpeg.so.9: cannot open shared object file: No such file or directory

Hi Root experts,

I recently installed ROOT from binary on my Fedora 37 machine.
I installed with this command:
`

cmake -DCMAKE_INSTALL_PREFIX=…/root_install/ -DPYTHON_EXECUTABLE=/home/My_Username/anaconda3/bin/python …/root

`
The install worked, and I’ve been using ROOT and pyROOT successfully, however I am encountering an error when trying to run a pyROOT script that opens a TCanvas. The error is this:

cling::DynamicLibraryManager::loadLibrary(): libjpeg.so.9: cannot open shared object file: No such file or directory
Error in TInterpreter::TCling::AutoLoad: failure loading library libASImage.so for TASImage
cling::DynamicLibraryManager::loadLibrary(): libjpeg.so.9: cannot open shared object file: No such file or directory

Reading this forum post I confirm that libAfterImage is not installed in /usr/lib, which is problematic. libAfterImage is installed, if I try to dnf install libAfterImage it warns me that the package is already installed.

I searched for libjpeg.so and found multiple locations, below are the results:

(base) steven:~$ find -name libjpeg.so*
./Documents/arduino-1.6.13/java/lib/amd64/libjpeg.so
./cmsShow-11.1.2/slc7_amd64_gcc820/cms/fwlite/CMSSW_11_1_2_FWLITE/external/slc7_amd64_gcc820/lib/libjpeg.so.8.2.2
./cmsShow-11.1.2/slc7_amd64_gcc820/cms/fwlite/CMSSW_11_1_2_FWLITE/external/slc7_amd64_gcc820/lib/libjpeg.so.8
./cmsShow-11.1.2/slc7_amd64_gcc820/cms/fwlite/CMSSW_11_1_2_FWLITE/external/slc7_amd64_gcc820/lib/libjpeg.so
./cmsShow-11.1.2/slc7_amd64_gcc820/external/libjpeg-turbo/2.0.2-bcolbf3/lib64/libjpeg.so.8.2.2
./cmsShow-11.1.2/slc7_amd64_gcc820/external/libjpeg-turbo/2.0.2-bcolbf3/lib64/libjpeg.so.8
./cmsShow-11.1.2/slc7_amd64_gcc820/external/libjpeg-turbo/2.0.2-bcolbf3/lib64/libjpeg.so
./anaconda3/lib/libjpeg.so.9
./anaconda3/lib/libjpeg.so.9.5.0
./anaconda3/lib/libjpeg.so
./anaconda3/pkgs/jpeg-9e-h5eee18b_1/lib/libjpeg.so.9
./anaconda3/pkgs/jpeg-9e-h5eee18b_1/lib/libjpeg.so.9.5.0
./anaconda3/pkgs/jpeg-9e-h5eee18b_1/lib/libjpeg.so
./anaconda3/pkgs/jpeg-9e-h7f8727e_0/lib/libjpeg.so.9
./anaconda3/pkgs/jpeg-9e-h7f8727e_0/lib/libjpeg.so.9.5.0
./anaconda3/pkgs/jpeg-9e-h7f8727e_0/lib/libjpeg.so
./anaconda3/pkgs/jpeg-9d-h36c2ea0_0/lib/libjpeg.so.9.4.0
./anaconda3/pkgs/jpeg-9d-h36c2ea0_0/lib/libjpeg.so.9
./anaconda3/pkgs/jpeg-9d-h36c2ea0_0/lib/libjpeg.so
./anaconda3/pkgs/jpeg-9b-h024ee3a_2/lib/libjpeg.so.9
./anaconda3/pkgs/jpeg-9b-h024ee3a_2/lib/libjpeg.so.9.2.0
./anaconda3/pkgs/jpeg-9b-h024ee3a_2/lib/libjpeg.so

So it looks like it’s installed by anaconda? Though I want it to be a global install.

Lastly, I also ran ldconfig and got this:

(base) steven:$ ldconfig -p | grep libjpeg
libjpeg.so.62 (libc6,x86-64) => /lib64/libjpeg.so.62
libjpeg.so.62 (libc6) => /lib/libjpeg.so.62

I am certainly not an expert in Linux, though I would like to learn more about what I did wrong during my install and/or how I can fix it now. Please let me know what more information I can provide to help.

Thank you
-Steven

ROOT Version: 6.29/01
Built for linuxx8664gcc on Mar 06 2023, 21:12:00
Platform: Fedora 37
Compiler: gcc (GCC) 12.2.1 20221121


Hi @SClarkPhysics,

It actually seems that libjpeg is provided by the system in the /lib64/ (x86_64) and /lib/ (i686) directories.

However, it seems that ROOT was linked against a different version of the library, i.e. libjpeg.so.9, which seems to be provided by anaconda3.

What I propose below is a (somewhat hacky) workaround, but I think it will work. You could try the following:

$ export LD_LIBRARY_PATH=$HOME/anaconda3/lib:$LD_LIBRARY_PATH
$ root

Cheers,
J.

This workaround worked, I am able to open a TCanvas and use graphics now. Thank you!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.