0

I'd like to create a deb package for an application so that it can be conveniently installed and updated on Debian and Ubuntu systems. However, the application depends on newer releases of some common libraries that, although the libraries themselves are packaged by Debian and Ubuntu, the particular versions that my application depends on aren't yet officially supported by any distribution nor are they available as deb packages. They are only available as source packages that I have to build myself to get my application to link to them.

Additionally, the deb package is planned to be distributed only in-house, and there is no plans or expectations to release the deb to the public. If there was then complying with the distro's packaging guidelines and supporting official packages would be a requirement.

IIRC with the Windows OS family this problem is mitigated by shipping dependencies along with the application and storing them in the same folder where the application's executable files are stored. However, I have no idea how this problem is supposed to be handled in linux in general and in Debian and Ubuntu in particular.

Does anyone know what's the best strategy to create a deb package that also bundles newer versions of libraries that are preinstalled in Debian and Ubuntu?

RAM
  • 2,257
  • 2
  • 19
  • 41

1 Answers1

0

While researching for a way to bundle third-party shared libraries in a deb package I've stumbled on this stackoverflow question on how to pack shared libraries into an ELF file.

Creating a self-contained linux executable appears to be an interesting alternative to bundling third-party libraries. Tools such as ELF Statifier appear to do this job quite nicely.

Bundling third-party libraries in the same deb package still sounds like the correct way to generate a package under these circumstances, and of course considering that the required version of these third-party libraries isn't distributed or available through any third-party repository. Although adding a deb package as a dependency is a far better alternative, in some scenarios and usecases this option isn't available.

Thus, while a solution for the problem of bundling third-party shared libraries is still not available then using tools like ELF Statifier appear to be the next best thing.

RAM
  • 2,257
  • 2
  • 19
  • 41