Alternative solutions

Autopackage is a tool for creating portable application, that can be run on the wide range of the Linux distributions.

But still binary portability is not an easy thing - http://autopackage.org/docs/devguide/ch07.html.
So what can be done if executable created with autopackage not portable enough ?

Statifier and Ermine

There are two packagers

Those programs use different approach: them create from dynamically linked executable and all it's libraries one file.
This file can be copied to another machine without need to drag any library with it.

Statifier and Ermine feature comparison can be found here.

What are pros and cons of this approach ?

Pros

  • Same packed executable able to run on wide range of Linux distribution no matter what libraries installed.
  • Executable packed on x86 able to run on x86_64 system without 32-bit compatibility libraries installed.
    • There are executables packed on RedHat 7.3 x86 that run on Fedora 8 x86_64.
  • Because all libraries are packed there is no way those application can be broken by host's libraries update.
  • It's simple - to pack executable no source code (and build tool chain) required.

Cons

  • Executables are huge.
  • Because all libraries are packed update for host libraries doesn't fix bug/security problem in packed applications.
  • Less effective usage of physical memory system wide.

Statifier/Ermine and Autopackage

Autopackage allows to build application with fewer dependencies. Packing this application with statifier/Ermine should result in smaller executable.