this post was submitted on 02 Nov 2023
27 points (96.6% liked)

Linux

47837 readers
1367 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

What solutions out there can package software in the native package format? I only found fpm (effing package management) and OBS (Open Build Service) so far.

Edit history:

  • 2023-11-02: Change title from "How to package software for many distributions?" to "How to package software for many distributions in their native package format?"
  • 2023-11-02: Highlight the word native.
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 11 months ago* (last edited 11 months ago)

fpm is not a complete solution. It just creates a package from your files, however you need to build them in the environment of the distribution where it is supposed to work, with the same versions of dependencies. OBS is the best solution I know, but with it you need to write packaging scripts compatible with each distro you are targeting. It is quite time consuming and requires a good knowledge of native packaging tools.

You can also use any CI system that is able to execute builds in containers with your target distros. This requires a bit more scripting (just a bit), but modern CIs are easier to setup than OBS in case you need your own instance. This also allows you to use your favorite VCS and workflow you are comfortable with.