4

I make support for cross platform desktop application based on Qt for Linux distributions. Currently I support of building installation .deb packages than can be used on Ubuntu systems.

I build 2 installation packages for every new version of our application: one package for amd64 systems, and another one - for i386 (that for some reasons doesn't work on amd64 systems).

For doing this I have to compile my application and build package on separate machines. Also I am going to start supporting the application on arm systems that as I understand also needs separate package type. How can I handle with this?

Besides that not all Linux distributions can use .deb packages for software installation. For example Fedora. On that case I need to build .rpm installation package. And so on... Recently I used alien to convert my .deb package to .rpm and install it on Fedora. I was able to install it but found some small problems with installed application.

So I need some universal way to make installation file for my application that can be used on almost all Linux distributions (or on most of them).

Can anybody give me some advice on it.

How can I build one installation package for different architectures? What is the way to make my package runnable on different Linux distributions?

I would appreciate any help or useful link connected to my problem.

  • 2
    The best option for the users is to provide them native packages. The format of the package (DEB, RPM etc) is not everything, there also libraries and programs upon which you're building your software and possible different conventions for the file locations. Anyway, you might want to check out the openSUSE Build Service. The openSUSE Build Service is the public instance of the Open Build Service (OBS) used for development of the openSUSE distribution and to offer packages from same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions. – Cristian Ciupitu Jun 10 '14 at 11:35
  • For Fedora and RHEL there's the copr service. – Cristian Ciupitu Jun 10 '14 at 11:43
  • For anything but the simplest packages, I've not found shortcuts to work well. I suggest including proper, handwritten Debian and RH/rpm packaging, and consider providing others on request. At least for Debian, debhelper has got quite good at automating packaging. In particular, check out dh, man dh. Thats the packaging approach du jour. – Faheem Mitha Jun 10 '14 at 13:05
4

fyi. openSUSE Build Service is excellent, for packages without convoluted dependencies; I've been using it to deliver qtop for multiple distributions, with good success: http://cern.ch/fotis/QTOP/ http://download.opensuse.org/repositories/home:/georgatos/ You can produce all packages via: a tarball-generating Makefile, then kick OBS for the rest.

The issue though gets more complicated if you have dependencies that have varying names across distros or, different packaging schemes (Boost comes to mind, which sometimes is broken up in pieces). If you have such situation, providing a universal solution is more tricky. AFAIK, in the later case you will need to deliver more programming skills, to automate the above.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.