AppImage

Linuxdeploy fails to run on fresh Ubuntu 14.04 [Solved]

Hi guys,

I am trying to build and create an AppImage of my own software using the oldest possible linux distro. It would seems that Ubuntu 14.04 is chosen by other AppImage users, and since it is sufficiently old regarding the final linux distributions I am targeting, I am using also this Ubuntu version.

However, It seems that the current version of linuxdeploy available there https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage

doesn’t run on a fresh Ubuntu 14.04:

osboxes@osboxes:~/$ chmod +x linuxdeploy-x86_64.AppImage 
osboxes@osboxes:~/$ ./linuxdeploy-x86_64.AppImage 
./linuxdeploy-x86_64.AppImage: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./linuxdeploy-x86_64.AppImage)
./linuxdeploy-x86_64.AppImage: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./linuxdeploy-x86_64.AppImage)
./linuxdeploy-x86_64.AppImage: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./linuxdeploy-x86_64.AppImage)

I am surprise of this because it would seem that an update of the system is needed, thing that I would prefer not to do, since I want to create a AppImage(s) that include the oldest possible versions of the system libraries in order to maximise compatibility. So a system update should be avoided as much as possible.

Is there a way to run linuxdeploy without updating the system? I tried to build linuxdeploy taken from this repo on the same system but cmake complains that cmake version is too old (CMake 3.2 is required and the available version is 2.8.12.2). So we fall on the same problem: A system update seem to be required to rebuild linuxdeploy.

I am sure I miss something but I don’t see. Any help from you guys?

I finally built and installed CMake 3.5.2 (CMake 3.2 is actually not enough for some linuxdeploy’s submodules):

sudo apt-get install build-essential
wget http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar xf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./configure
make
sudo apt-get install checkinstall
sudo checkinstall

Then built linuxdeploy and also the appimage plugin with success.

But now, when I run linuxdeploy, the appimage plugin complain about missing patchelf:

Setting rpath in ELF file AppDir/usr/lib/libpng12.so.0 to $ORIGIN 
ERROR: Could not find patchelf 
ERROR: Failed to set rpath in ELF file: AppDir/usr/lib/libpng12.so.0 

however, patchelf is not part of Ubuntu 14.04. It looks like I need to upgrade to 14.10 to have the package but I would rather prefer not to do this.

Anyone has experience running linuxdeploy + appimage plugin on Ubuntu 14.04?

I finally downloaded and compiled patchelf and now everthing works appimagetool-x86_64.AppImage must also be installed.

However… I just found that the CentOS AppImage (linuxdeploy-centos6-x86_64.AppImage) of linuxdeploy works directly on Ubuntu 14.04.

So next time, I will just have to download the right version of the linuxdeploy image instead of installing all dependencies and the build.

I don’t know why there are 2 builds, but I have asked here:

1 Like