Are separate builds required for all Linux distributions?



  • I'm new to Linux so I'm not sure about compatibility between different distributions.

    I've found that if I build a statically linked Qt executable on Debian it runs correctly of Mint and Ubuntu. Mint is based on Ubuntu, which itself is based on Debian, so that's probably why that works.

    It is okay to just use one build for all three distributions, or is it best to do a separate build for each one?

    If one build is okay, are there any other situations like Debinan/Ubuntu/Mint where one build will cover multiple distributions?

    Finally, do you need to do new builds of your application for each new major Linux version release? For example, when Debian 9 or Mint 19 are released will I have to do a new build for them or will the current build continue to work?

    I'm a bit of a Linux newbie so I'm not to sure how thing work. Thanks for your help.





  • I'm relieved to read that I'll only have to do four builds (well, eight with 64bit and 32bit versions).

    Thanks a lot for the information and article.



  • @Elsworth55 That's an old article and things aren't that simple. There are at least three systems nowadays which try to solve this problem (and some other problems, too): Flatpak, ubuntu snaps and AppImage. Despite of the base distributions and the standard file system organization you can't guarantee that certain libraries are actually installed on the target. And 4x8 is quite much, you have to install 8 distros in some way or another to do the compilation, and the most tedious part is learning each packaging system. It's better to learn only one system and do two compilations, 32 and 64 bits. At the moment Flatpak seems to be the best overall system, ubuntu does good hyping and marketing with their product, and AppImage is the most straightforward way to go. See for example http://www.phoronix.com/scan.php?page=news_item&px=Snaps-v-Flatpaks-Linux-Distros.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.