I have this problem only on CentOS 7.7 (on Fedora 33 and 35 it all works as expected). My appimage app for some reason tries to open system libQt5Core.so.5
, libsystemd.so.0
, and some others, while loading most other libraries from the appimage as intended.
I ensured to have RPATH
(i.e., not even RUNPATH
: I achieved it by using patchelf --force-rpath --set-rpath
) set up correctly for all the executable and libs. Below, I show the situation for my appimage after I extracted it with --appimage-extract
option and applied patchelf
to set RPATH
:
[jenya@localhost bin]$ ldd myapp
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by ./myapp)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Widgets.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15.2_PRIVATE_API' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Widgets.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Gui.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15.2_PRIVATE_API' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Gui.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15.2_PRIVATE_API' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Sql.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Sql.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Network.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15.2_PRIVATE_API' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Network.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15.2_PRIVATE_API' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Test.so.5)
./myapp: /lib64/libQt5Core.so.5: version `Qt_5.15' not found (required by /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Test.so.5)
linux-vdso.so.1 => (0x00007ffcc2592000)
libQt5Widgets.so.5 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Widgets.so.5 (0x00007f2048415000)
libQt5Gui.so.5 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Gui.so.5 (0x00007f2047d9c000)
libQt5Sql.so.5 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Sql.so.5 (0x00007f2048d47000)
libQt5Network.so.5 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Network.so.5 (0x00007f2048b98000)
libQt5Test.so.5 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Test.so.5 (0x00007f2047d41000)
--->libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007f2047894000)
libstdc++.so.6 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libstdc++.so.6 (0x00007f2047663000)
libm.so.6 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libm.so.6 (0x00007f204751a000)
libgcc_s.so.1 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libgcc_s.so.1 (0x00007f20474fe000)
libc.so.6 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libc.so.6 (0x00007f204732c000)
libpthread.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libpthread.so.0 (0x00007f2047308000)
libGL.so.1 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libGL.so.1 (0x00007f204726e000)
libpng16.so.16 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libpng16.so.16 (0x00007f2047233000)
libz.so.1 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libz.so.1 (0x00007f2047218000)
libharfbuzz.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libharfbuzz.so.0 (0x00007f2047146000)
libdl.so.2 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libdl.so.2 (0x00007f204713e000)
libgssapi_krb5.so.2 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libgssapi_krb5.so.2 (0x00007f20470e5000)
libssl.so.1.1 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libssl.so.1.1 (0x00007f2047042000)
libcrypto.so.1.1 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libcrypto.so.1.1 (0x00007f2046d3e000)
libsystemd.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libsystemd.so.0 (0x00007f2046c78000)
libicui18n.so.50 => /lib64/libicui18n.so.50 (0x00007f2046879000)
libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007f2046500000)
libicudata.so.50 => /lib64/libicudata.so.50 (0x00007f2044f2c000)
libpcre2-16.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libpcre2-16.so.0 (0x00007f2044ea1000)
libgthread-2.0.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libgthread-2.0.so.0 (0x00007f2044e9b000)
libglib-2.0.so.0 => /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libglib-2.0.so.0 (0x00007f2044d5e000)
../lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f2048b71000)
However, I have the libQt5Core.so.5
, where it should be:
[jenya@localhost bin]$ ls /home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Core.so.5
/home/jenya/Downloads/squashfs-root/usr/bin/./../lib/libQt5Core.so.5
Besides, I have ensured to have RPATH
indeed, rather than RUNPATH
:
[jenya@localhost bin]$ readelf -d ./myapp | grep PATH
0x000000000000000f (RPATH) Library rpath: [$ORIGIN/../lib]
[jenya@localhost bin]$ readelf -d ../lib/libQt5Widgets.so.5 | grep PATH
0x000000000000000f (RPATH) Library rpath: [$ORIGIN]
How can this be and how can this be fixed? Thank you for attention.