Ldd path resolves to system


I am trying to build an AppImage of my Qt based tool to be used in a Docker image. I don’t want to change the image in order to support my tool and even if that were possible, the image contains an older version of Qt on which many things depend. Using an AppImage seems like a good fit in this case.

I’m using Ubuntu 18.04 so I couldn’t build an AppImage out of the box due to backwards compatibility constraints so I made a dev Docker image based on 16.04 for the purposes of building my AppImage.

The AppImage works fine on my host system but when I try to use it in the Docker image it tries to use the system installed version of Qt and fails.

I used the ./tool.AppImage --appimage-mount to look at the binary and ldd resolves the Qt libraries to /usr/lib/x86_64-linux-gnu/libQt... in the Docker whereas on the host it resolves correctly to /tmp/.mount_tool-9874u/./lib/libQt....

I guess this is something to do with ld.so.conf precedence rules? Or am I using AppImage incorrectly?

I build my AppImage in my dev Docker using export PATH=/path/to/local/Qt/gcc_64/bin:$PATH;linuxdeployqt-6-x86_64.AppImage --appimage-extract-and-run ./tool.desktop -appimage

Any help appreciated, thanks!

Hello @mukoan, thanks for reporting this. Something is definitely wrong if Qt gets resolved to /usr/lib.

Which tools did you use to produce your AppImage?

Can I inspect the problematic AppImage to see what is going on? You can reach out to me at probono at gmail dot com in case you don’t want to post it publicly.

Hi, unfortunately I am not allowed to share, even privately. I would appreciate any guidance to things I can check and we can take this to email if that works better for you. Thanks

Please reach out via mail to discuss what we can do. Thanks!