LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 06-22-2022, 08:50 PM   #1
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Rep: Reputation: Disabled
GDAL install fails due to missing shared library libIlmImf


I did an system update via
Code:
slackpkg upgrade-all
and GDAL stopped working.

Later I used R and one of the libraries I needed indicated a problem with GDAL. I exit R.

I use
Code:
gdalinfo
and get this error:
Quote:
gdalinfo: error while loading shared libraries: libIlmImf-2_5.so.25: cannot open shared object file: No such file or directory
I searched online for "libIlmImf" and results point to OpenEXR. I use
Code:
slackpkg search openex*
and that returned:
Quote:
[ installed ] - openexr-3.1.5-x86_64-1
Not sure where to find that package, I used a find statement and
Code:
less /var/lib/pkgtools/packages/openexr-3.1.5-x86_64-1
reveals no libIlmImf. Neither does a find statement with "libIlmImf".

I'm trying to get the GDAL version on sbopkg, 3.5. It installs, but that's when I get the error. I don't know how to repair this issue.
 
Old 06-22-2022, 10:55 PM   #2
3rensho
Senior Member
 
Registered: Mar 2008
Location: Deutschland
Distribution: Slackware64-current
Posts: 1,026

Rep: Reputation: 618Reputation: 618Reputation: 618Reputation: 618Reputation: 618Reputation: 618
Did you try just rebuilding GDAL after the upgrade-all? I have found that when a previously running program fails after an update with the missing .so version error, rebuilding the app often fixes it.
 
2 members found this post helpful.
Old 06-23-2022, 01:30 AM   #3
henca
Member
 
Registered: Aug 2007
Location: Linköping, Sweden
Distribution: Slackware
Posts: 983

Rep: Reputation: 671Reputation: 671Reputation: 671Reputation: 671Reputation: 671Reputation: 671
Quote:
Originally Posted by Tsuga View Post
I searched online for "libIlmImf" and results point to OpenEXR.

Code:
less /var/lib/pkgtools/packages/openexr-3.1.5-x86_64-1
reveals no libIlmImf. Neither does a find statement with "libIlmImf".
On my Slackware 14.2 system it really does seem that libIlmImf used to belong to the openexr package:

Code:
/var/log/packages/openexr-2.2.0-x86_64-2_slack14.2:usr/lib64/libIlmImf-2_2.so.22.0.0
/var/log/packages/openexr-2.2.0-x86_64-2_slack14.2:usr/lib64/libIlmImf.la
/var/log/packages/openexr-2.2.0-x86_64-2_slack14.2:usr/lib64/libIlmImfUtil-2_2.so.22.0.0
/var/log/packages/openexr-2.2.0-x86_64-2_slack14.2:usr/lib64/libIlmImfUtil.la
However, things can change between versions, especially between major versions. Your gdal installation seems to depend upon a version 2 of openexr and you seem to have a version 3 of openexr installed.

regards Henrik
 
2 members found this post helpful.
Old 06-23-2022, 10:18 AM   #4
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
What henca said is also true for Slackware64 15.0 + Multilib:

Code:
# whatprovides  libIlmImf
# Package: /dld/15.0/slackware/slackware-15.0-64/slackware64/l/openexr-2.5.7-x86_64-5.txz
-rwxr-xr-x root/root   3127176 2022-01-27 13:36 /usr/lib64/libIlmImf-2_5.so.25.0.6
-rwxr-xr-x root/root    176032 2022-01-27 13:36 /usr/lib64/libIlmImfUtil-2_5.so.25.0.6

# Package: /dld/15.0/multilib/15.0/slackware64-compat32/l-compat32/openexr-compat32-2.5.7-x86_64-5compat32.txz
-rwxr-xr-x root/root    182568 2022-01-27 22:24 /usr/lib/libIlmImfUtil-2_5.so.25.0.6
-rwxr-xr-x root/root   3147044 2022-01-27 22:24 /usr/lib/libIlmImf-2_5.so.25.0.6
However, in Slackware64 Current, ~/l/openexr-3.1.5-x86_64-1.txz no longer includes libIlmImf ...

HTH

-- kjh
 
Old 06-23-2022, 02:10 PM   #5
ArTourter
Member
 
Registered: Oct 2010
Location: Frome, UK
Distribution: Slackware, CentOS, Rocky
Posts: 66

Rep: Reputation: 29
Hi,

I assume from the issue you are having and the discussion in the thread that you have upgraded your slackware install to -current from 15.0. After doing such an upgrade you will have to rebuild all your sbo packages.

sbo (and therefore tools such as sbopkg) do to track slackware library changes and so you have to do that yourself. This is especially relevant with current since .so lib version bumps are very frequent. Remember that slackbuilds.org only provide scripts to build the packages and not the packages themselves.

Also, don't forget that slackbuilds.org does not officially support -current, however in this case I do happen to also use current so I test my packages on both -stable and -current. As @3rensho said in the forum, you need to rebuild gdal against the new versions of the dependent libraries (in your case, at least openexr and poppler). Note that poppler is one of these that tends to bump the .so lib version on a very regular basis so you will need to rebuild gdal (and any open packages you have that rely on it) every time it is updated.

Hope this helps
 
2 members found this post helpful.
Old 06-23-2022, 02:21 PM   #6
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Original Poster
Rep: Reputation: Disabled
lol. I thought I was on 15. I honestly didn't realize that using upgrade-all would change the OS version. I thought it just updated packages, not the OS. ArTourter's explanation explains why QGIS isn't working now too. Oy vey. Thanks, everyone, for your help!

I got the GDAL to work, but after changing the libproj.so with a "ln -s" call from the version now installed (25) to the version that GDAL was looking for (22).
 
Old 06-24-2022, 03:26 AM   #7
ArTourter
Member
 
Registered: Oct 2010
Location: Frome, UK
Distribution: Slackware, CentOS, Rocky
Posts: 66

Rep: Reputation: 29
Quote:
Originally Posted by Tsuga View Post
lol. I thought I was on 15. I honestly didn't realize that using upgrade-all would change the OS version. I thought it just updated packages, not the OS. ArTourter's explanation explains why QGIS isn't working now too. Oy vey. Thanks, everyone, for your help!

I got the GDAL to work, but after changing the libproj.so with a "ln -s" call from the version now installed (25) to the version that GDAL was looking for (22).
Upgrade-all will upgrade according to the mirrors you are pointing at. If your are pointing at the currrent tree, it will upgrade to currrent.

As for proj, please don't do this. Proj was updated and bumped the so lib version. Please rebuild the gdal package, do not simply install the old one! Same goes for qgis. Once these packages are rebuilt you will no longer have the missing lib/wrong lib version problems.

Greg
 
1 members found this post helpful.
Old 06-24-2022, 08:13 PM   #8
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Original Poster
Rep: Reputation: Disabled
Sorry. What does "rebuild" mean? Does that mean to get the sbopkg package and just let it build that way? Or get the source from https://trac.osgeo.org/gdal/wiki/DownloadSource and build that?
 
Old 06-25-2022, 01:27 AM   #9
Tonus
Senior Member
 
Registered: Jan 2007
Location: Paris, France
Distribution: Slackware-15.0
Posts: 1,407
Blog Entries: 3

Rep: Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514
Rebuild is just redo the sbopkg process : it will fetch source code of theprogram, build it and install the package.
 
2 members found this post helpful.
Old 06-25-2022, 09:26 AM   #10
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Original Poster
Rep: Reputation: Disabled
Thanks, Tonus.
 
Old 06-25-2022, 01:17 PM   #11
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Original Poster
Rep: Reputation: Disabled
I got my sbopkg package problem fixed and sbopkg is synced with remote repo again.

I used
Code:
sqg -a
to build the queue files. In sbopkg, I uninstalled PROJ and GDAL. I used
Code:
sbopkg -i GDAL
to install PROJ and GDAL again. The install has just finished and I tested with
Code:
gdalinfo
and I still get this error:
Quote:
gdalinfo
gdalinfo: error while loading shared libraries: libproj.so.22: cannot open shared object file: No such file or directory
This result seems contrary to what ArTourter indicated. What should I do to get GDAL and PROJ to play nice?
 
Old 06-25-2022, 01:40 PM   #12
ponce
LQ Guru
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 7,113

Rep: Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185
I just tried to build geos, proj and gdal on a clean system and everything went fine, also when I run gdalinfo
Code:
$ gdalinfo 
Usage: gdalinfo [--help-general] [-json] [-mm] [-stats | -approx_stats] [-hist] [-nogcp] [-nomd]
                [-norat] [-noct] [-nofl] [-checksum] [-proj4]
                [-listmdd] [-mdd domain|`all`] [-wkt_format WKT1|WKT2|...]*
                [-sd subdataset] [-oo NAME=VALUE]* [-if format]* datasetname

FAILURE: No datasource specified.
my guess is that you have installed on your system some optional dependencies of gdal that use proj too like, for example, libspatialite and, in this case, you have to rebuild those too, together with all of its dependencies (removing everything first), before rebuilding gdal.

this is one of the reasons why, whenever you have to build something from SBo, it's advisable to do it, together with all of its dependencies, on a full and clean (no other packages installed) operating system (usually virtual machines and/or chroots are used for the scope).

Last edited by ponce; 06-25-2022 at 01:44 PM.
 
1 members found this post helpful.
Old 06-25-2022, 03:09 PM   #13
Tsuga
Member
 
Registered: Jul 2020
Distribution: Slackware64 15.0
Posts: 63

Original Poster
Rep: Reputation: Disabled
Okay. Thanks again, Ponce. I don't know why this is happening. Everything was working fine. Last week sometime, I ran
Code:
slackpkg update
slackpkg install-new
slackpkg upgrade-all
Then the R problem started. It's unclear to me what happened. Well, I guess I should go and reinstall all the sbopkg packages. I appreciate the help, Ponce.
 
Old 06-26-2022, 05:13 AM   #14
ponce
LQ Guru
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 7,113

Rep: Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185Reputation: 4185
Quote:
Originally Posted by Tsuga View Post
Okay. Thanks again, Ponce. I don't know why this is happening. Everything was working fine. Last week sometime, I ran
Code:
slackpkg update
slackpkg install-new
slackpkg upgrade-all
Then the R problem started. It's unclear to me what happened. Well, I guess I should go and reinstall all the sbopkg packages. I appreciate the help, Ponce.
libraries upgrades are normal if you run Slackware current so you have to be prepared to rebuild whatever third-party package needed.
Slackware current is not a rolling release like archlinux, it's where development of the newer release of Slackware happen, it's not meant for general use.
if you need stability use the latest stable release, 15.0: in your case, if you have set a mirror for current in /etc/slackpkg/mirrors, instead of a downgrade to 15.0, maybe a reinstall is cleaner.
 
1 members found this post helpful.
Old 06-26-2022, 05:24 AM   #15
henca
Member
 
Registered: Aug 2007
Location: Linköping, Sweden
Distribution: Slackware
Posts: 983

Rep: Reputation: 671Reputation: 671Reputation: 671Reputation: 671Reputation: 671Reputation: 671
Quote:
Originally Posted by Tsuga View Post
I guess I should go and reinstall all the sbopkg packages. I appreciate the help, Ponce.
Maybe you will have to do that everytime you update current. Maybe you only need to fix those packages which needs fixing.

You can use tools like ldd or grep to find which dependencies different binaries or libraries has.

The below example is from a Slackware 14.2 system (sometimes life really gets a lot easier when running a stable version of Slacwkare)

Code:
ldd /usr/bin/gdalinfo
        linux-vdso.so.1 (0x00007ffc693ec000)
        libgdal.so.20 => /usr/lib64/../lib64/libgdal.so.20 (0x00007f17cc82c000)
        libproj.so.13 => /usr/lib64/../lib64/libproj.so.13 (0x00007f17cc5b2000)
        libpoppler.so.62 => /usr/lib64/../lib64/libpoppler.so.62 (0x00007f17cc124000)
        liblcms2.so.2 => /usr/lib64/../lib64/liblcms2.so.2 (0x00007f17cbecc000)
        libtiff.so.5 => /usr/lib64/../lib64/libtiff.so.5 (0x00007f17cbc51000)
        libnss3.so => /usr/lib64/../lib64/libnss3.so (0x00007f17cb92a000)
        libsmime3.so => /usr/lib64/../lib64/libsmime3.so (0x00007f17cb702000)
        libssl3.so => /usr/lib64/../lib64/libssl3.so (0x00007f17cb4ac000)
        libsoftokn3.so => /usr/lib64/../lib64/libsoftokn3.so (0x00007f17cb26e000)
        libnssutil3.so => /usr/lib64/../lib64/libnssutil3.so (0x00007f17cb03e000)
        libplds4.so => /usr/lib64/../lib64/libplds4.so (0x00007f17cae39000)
        libplc4.so => /usr/lib64/../lib64/libplc4.so (0x00007f17cac34000)
        libnspr4.so => /usr/lib64/../lib64/libnspr4.so (0x00007f17ca9f6000)
        libfontconfig.so.1 => /usr/lib64/../lib64/libfontconfig.so.1 (0x00007f17ca7b9000)
        libharfbuzz.so.0 => /usr/lib64/../lib64/libharfbuzz.so.0 (0x00007f17ca53b000)
        libglib-2.0.so.0 => /usr/lib64/../lib64/libglib-2.0.so.0 (0x00007f17ca204000)
        libfreetype.so.6 => /usr/lib64/../lib64/libfreetype.so.6 (0x00007f17c9f67000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f17c9cf1000)
        libjson-c.so.2 => /usr/lib64/../lib64/libjson-c.so.2 (0x00007f17c9ae7000)
        libgeos_c.so.1 => /usr/lib64/../lib64/libgeos_c.so.1 (0x00007f17c98b1000)
        libgeos-3.7.0.so => /usr/lib64/../lib64/libgeos-3.7.0.so (0x00007f17c94fd000)
        libwebp.so.6 => /usr/lib64/../lib64/libwebp.so.6 (0x00007f17c929d000)
        libsqlite3.so.0 => /usr/lib64/../lib64/libsqlite3.so.0 (0x00007f17c8fcb000)
        libexpat.so.1 => /usr/lib64/../lib64/libexpat.so.1 (0x00007f17c8d9e000)
        libxerces-c-3.1.so => not found
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f17c8b83000)
        libidn.so.11 => /usr/lib64/../lib64/libidn.so.11 (0x00007f17c8950000)
        libicui18n.so.56 => /usr/lib64/../lib64/libicui18n.so.56 (0x00007f17c84bf000)
        libicuuc.so.56 => /usr/lib64/../lib64/libicuuc.so.56 (0x00007f17c8126000)
        libicudata.so.56 => /usr/lib64/../lib64/libicudata.so.56 (0x00007f17c6743000)
        libopenjp2.so.7 => /usr/lib64/../lib64/libopenjp2.so.7 (0x00007f17c64e6000)
        libhdf5.so.10 => /usr/local/lib/libhdf5.so.10 (0x00007f17c604b000)
        libgif.so.7 => /usr/lib64/../lib64/libgif.so.7 (0x00007f17c5e43000)
        libjpeg.so.62 => /usr/lib64/../lib64/libjpeg.so.62 (0x00007f17c5ba9000)
        libpng16.so.16 => /usr/lib64/../lib64/libpng16.so.16 (0x00007f17c5975000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f17c576d000)
        libpcre.so.1 => /usr/lib64/../lib64/libpcre.so.1 (0x00007f17c54fb000)
        libcurl.so.4 => /usr/lib64/../lib64/libcurl.so.4 (0x00007f17c5269000)
        libssh2.so.1 => /usr/lib64/../lib64/libssh2.so.1 (0x00007f17c503b000)
        libldap-2.4.so.2 => /usr/lib64/../lib64/libldap-2.4.so.2 (0x00007f17c4df2000)
        libsasl2.so.3 => /usr/lib64/../lib64/libsasl2.so.3 (0x00007f17c4bd5000)
        liblber-2.4.so.2 => /usr/lib64/../lib64/liblber-2.4.so.2 (0x00007f17c49c7000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f17c47ac000)
        libxml2.so.2 => /usr/lib64/../lib64/libxml2.so.2 (0x00007f17c4448000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f17c4222000)
        libmysqlclient.so.18 => /usr/lib64/../lib64/libmysqlclient.so.18 (0x00007f17c3cc9000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f17c3aab000)
        libz.so.1 => /usr/lib64/../lib64/libz.so.1 (0x00007f17c3894000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f17c3690000)
        libssl.so.1 => /usr/lib64/../lib64/libssl.so.1 (0x00007f17c341c000)
        libcrypto.so.1 => /usr/lib64/../lib64/libcrypto.so.1 (0x00007f17c2fc4000)
        libstdc++.so.6 => /usr/lib64/../lib64/libstdc++.so.6 (0x00007f17c2c4a000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f17c2940000)
        libgcc_s.so.1 => /usr/lib64/../lib64/libgcc_s.so.1 (0x00007f17c2729000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f17c2360000)
        /lib64/ld-linux-x86-64.so.2 (0x0000562fb733e000)
        libxerces-c-3.1.so => not found
Above we can see that gdalinfo links to libproj, but is it really the binary that links directly to libproj or is it some other library?

Code:
grep libproj  /usr/bin/gdalinfo
Binary file /usr/bin/gdalinfo matches
Yes, it seems as if it really is the binary that directly links to libproj.

So, has the binary really recently been rebuilt from source?

Code:
ls -al  /usr/bin/gdalinfo
-rwxr-xr-x 1 root root 14608 Nov 19  2019 /usr/bin/gdalinfo*
No, my binary is from 2019. That was expected on my system where noone has messed with updating libraries and tried to rebuild packages from source. But how does things look on your system? Did you really rebuild gdal from source or did you just reinstall a previously built package?

regards Henrik
 
1 members found this post helpful.
  


Reply

Tags
sbopkg, slackbuilds



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] ./configure problem for libsf library due to apparently missing libdb library. vectrum Linux - Software 6 08-05-2011 02:11 PM
[SOLVED] Link shared library against other shared library Lobinho Linux - Newbie 2 05-28-2010 08:16 AM
gcc link shared library against another shared library qcp Linux - Newbie 1 07-25-2008 11:15 AM
Cinelerra and libIlmImf.so.4 KaYoS Slackware 2 10-30-2006 04:53 AM
Shared object library that uses another shared object library Nightfox Programming 1 02-15-2006 10:00 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:47 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration