Rocky Linux vs. Red Hat regression: error while loading shared libraries: libaws-cpp-sdk-transfer.so

I have installed latest version of relation database IBM Db2 v11.5.9.0 latest version released few days ago on:

  • Rocky Linux 8.8
  • Rocky Linux 9.2
  • Red Hat 8.8
  • Red Hat 9.3
    on all above Linux systems I have updated to the latest update (sudo dnf -y update).

On all of above four Linuxes I have successfully installed IBM Db2 database, installation validation is successful, but when I try to start IBM Db2 server with “db2start” command on both Red Hats database starts without an issue, but on both Rocky Linuxes I get the same error:

db2start: error while loading shared libraries: libaws-cpp-sdk-transfer.so: cannot open shared object file: No such file or directory

It looks like some library is missing. I have search for above library, but can’t find any candidate package to install. From the name it is strange there is “sdk” in the name and from “libaws” it may be some Amazon service or something.

Any idea how to fix this problem?

It looks to me as some regression in Rocky Linux vs. Red Hat.

By the way I can successfully install one minor previous version so v11.5.8.0 works fine on Rocky Linux.

Most likely a package is missing that isn’t installed. Easiest way is on one of your RHEL systems do:

find / -name libaws-cpp-sdk-transfer.so

once you have found the file and have the full path to it, then do:

rpm -qf /path/to/libaws-cpp-sdk-transfer.so

to find out what package installs it. Then you can install that package on Rocky. I have tried using commands like:

dnf provides */libaws-cpp-sdk-transfer.so

but nothing is showing up on the repos installed on my system. A search on pkgs.org seems to only find entries for Arch Linux and FreeBSD for example aws-sdk-cpp for Arch. The other potential is the file is provided in the IBM DB2 install, but somehow not in a path where it can be found for some reason.

1 Like

@iwalker, thanks a lot for idea. I have solved the problem.

On both Red Hat 8.8 and Red Hat 9.3 the same result is returned
sudo find / -name libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/20.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/22.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/18.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/7.6/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/SLES/12.4/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/SLES/15.1/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/libaws-cpp-sdk-core.so

All above are files, expect the last one is symbolic link. On Rocky Linux symbolic link is missing!!!
Probably I know why. Most probably installation checks what is current Linux distribution name and according to RHEL, SLES or UBUNTU created symbolic link. Because Rocky Linux can’t be found in one of them no symbolic link is created.

On Red Hat 8.8 and Red Hat 9.2 I have checked paths of symbolic links and created them appropriately.

On Rocky Linux 8.8:

cd /opt/ibm/db2/V11.5.9fp0/lib64
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-core.so     libaws-cpp-sdk-core.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-kinesis.so  libaws-cpp-sdk-kinesis.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-s3.so       libaws-cpp-sdk-s3.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-transfer.so libaws-cpp-sdk-transfer.so

On Rocky Linux 9.2:

cd /opt/ibm/db2/V11.5.9fp0/lib64
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-core.so     libaws-cpp-sdk-core.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-kinesis.so  libaws-cpp-sdk-kinesis.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-s3.so       libaws-cpp-sdk-s3.so
sudo ln -s /opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-transfer.so libaws-cpp-sdk-transfer.so

And then I have started IBM Db2 database with usual “db2start” command and Db2 starts up successfully.

INTERESTING: Bug to bug compatibility is not always enough that application runs successfully on Rocky Linux, because application can check for example /etc/os-release file and then do something according to the output.

Thanks for help,
Regards

3 Likes

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