Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Building Linux packages for multiple distributions and versions

My company has a software product that's written in C for a Linux platform, built with autotools and distributed via binary packages. To make the binaries, we first produce a source RPM and then compile the source from the SRPM.

Currently we only provide RPM packages for 64-bit Fedora 10, but we want to start providing packages for multiple Linux distributions - 32-bit as well as 64-bit - and possibly different versions of each distribution as well (e.g. Fedora 11 as well as Fedora 10).

I've heard that the best way to produce builds for multiple Linux flavours is to have a single build server and use a different chrooted environment for each set of packages that you want to build. Does anyone have a good resource that explains this in more detail, maybe with examples of well known projects that use this build mechanism, or have a better alternative to achieve the same goal ?

like image 970
gareth_bowles Avatar asked May 12 '09 21:05

gareth_bowles


People also ask

Can you run multiple distros on Linux?

If you have been a Linux user for quite a while, you probably want to use multiple distros on your machine. Now it is possible because of a great tool called Distrobox. It allows you to create a container on your Linux system using Podman or Docker.

Do all Linux distros use the same package manager?

All Linux distributions have some form of a package manager. They all handle the same job, though: Installing applications. Upgrading applications.

What is Linux distro packaging?

The distro package ( distro stands for Linux Distribution) provides information about the Linux distribution it runs on, such as a reliable machine-readable distro ID, or version information. It is the recommended replacement for Python's original platform.


3 Answers

Maybe you can research the following projects to get started:

Novell Build service

Fedora Koji

like image 163
Bash Avatar answered Nov 16 '22 01:11

Bash


You can use LSB appchecker to test your application/dynlib/shell script compatibility. After that you can use RPM for all RPM distribution and use alien for all apt-get distribution and tar.gz for other

like image 41
Johan Moreau Avatar answered Nov 16 '22 01:11

Johan Moreau


Tools like checkinstall will help you to produce packages for different distros. Personally, if you are looking to integrate with existing package management systems, you will also want to host multiple repositories on your servers and provide packages there, then have users configure their package managers to pull the apps off your servers.

like image 24
sybreon Avatar answered Nov 15 '22 23:11

sybreon