AppImage

Created AppImage on Mint, does not run on newer non-Debian distros - [Solved]

#1

Hi, I created an AppImage from my code at


creating BscanFFTwebcam.AppImage using a manual process of creating an AppDir.

The AppImage was created on Linux Mint 18.1, running glibc 2.23

As listed in the docs, I removed the glibc associated libraries from the dependencies. If required, I can list out all the 150 or so libs which were included, as was listed by ldd

I tested the AppImage by booting a laptop into various distros using a live bootable usb.
The created AppImage runs OK on Ubuntu 16.04, and also runs OK on Fedora 24. But it does not run on Fedora 27 or 29, OpenSuse 42.2 or OpenSuse Leap 15.0. These have glibc versions newer than the 2.23 on my Mint machine which was used to create the AppImage. Error messages were quite similar to the ones below:

OpenSuse 13.2 error is

BscanFFTwebcam.bin: relocation error:
/tmp/.mount_BscanFl6zEAz/usr/lib/libpthread.so.0: symbol __libc_vfork,
version GLIBC_PRIVATE not defined in file libc.so.6 with link time
reference

Fedora 27 error is

BscanFFTwebcam.bin: relocation error:
/tmp/.mount_BscanFOK8VdL/usr/lib/libpthread.so.0: symbol
__libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file
libc.so.6 with link time reference

and so on.

Is there something I can do to make the AppImage work with newer distros?

Please let me know if more information is needed.

#2

I noticed that I had not removed all the libs from


from my AppDir/usr/lib
I now did a diff of ls of my lib directory and the excludelist, and removed more libs, like
libusb-1.0.so.0
libz.so.1
etc.

So, now all the libs in the excludelist are excluded. But still, the AppImage does not run on OpenSuse Leap 15.0 (did not test the other distros, since this one gave a similar error) -

./Bscan*mage
BscanFFTwebcam.bin: relocation error:
/tmp/.mount_BscanF6j1Sp3/usr/lib/libpthread.so.0: symbol
__libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file
libc.so.6 with link time reference

There are similar errors reported by other users, like

There, probonopd recommended using Ubuntu 14.04 with Qt5.8+
Is that advice valid for all AppImage builds? Or is that only for apps using Qt?
My app uses opencv, and I have bundled the opencv 3.3 libs.

#3

Please delete all libraries listed on https://github.com/AppImage/pkg2appimage/blob/master/excludelist from your AppImage and try again.

Tools like https://github.com/probonopd/linuxdeployqt can automate this for you (also for non-Qt apps).

Example: https://github.com/probonopd/linuxdeployqt#using-linuxdeployqt-with-travis-ci

#4

Hi probono,

Yes, I did delete all the libs listed at https://github.com/AppImage/pkg2appimage/blob/master/excludelist

After deleting, I again created an AppImage, and the error message from OpenSuse Leap 15.0 was as I mentioned in my previous message,
relocation error:
/tmp/.mount_BscanF6j1Sp3/usr/lib/libpthread.so.0: symbol
__libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file
libc.so.6 with link time reference

#5

Can you build on Ubuntu trusty, e.g. using Travis CI or GitLab CI?

#6

Thanks probono. Will try to do this on a live cd of Ubuntu 14.04. It may take a few days, because I have to learn how to build using Travis CI or GitLab CI.

#7

Oops. I see that Travis is a hosted service. So I don’t even need a live CD of Trusty. Cool. Let me check it out.

1 Like
#8

Thanks to probono’s tip, I have now successfully created an AppImage using trusty on Travis CI, using linuxdeployqt instead of manually creating the AppDir, and the resulting AppImage is working fine. Thank you, probono. The travis yml file used for this is available at

1 Like
#9

Thanks. Added to https://appimage.github.io/BscanFFTwebcam/.