Solved Make it work on different machines and distribuitions
-
Hello everyone!
I need to run my application on different Linux machines/distributions (Suse, RH and Ubuntu) where there is no QT build environment.
So far I have organized myself by doing a build on a dedicated VM for each distribution and install that. This works up to a certain point, because often the rutime environment has slight differences (different libraries versions) so the application sometimes becomes unstable.
I also tried to bring the application with all the libraries it depends on, but for some reason it doesn't work completely. There are always unexpected behaviors, although the application runs completely smoothly on every machine where the build is done.
What is the way developers solve this problem?
I've been looking for how to deploy, but there doesn't seem to be an automatic mechanism to generate the installation. I also tried static linking of libraries but without success.
Thanks to everyone who will devote some of their time to help me.
-
You can use AppImage, for example linuxdeployqt, linuxdeploy and other similar projects. AppImage automatically bundles all dependencies, so it should "just work" on any system (remember to compile and deploy on some OLD system, though).
A different approach (if your use case allows it) is to rely on system Qt and let RPM or DEB package manager automatically install the dependencies for you. Here, again, you need to compile on an OLD system and you may fall into pitfalls when a particular Linux distribution ships with outdated Qt or has some bugs in it.
So, all in all - no matter which way you go, there will be issues ;-)
-
You can use AppImage, for example linuxdeployqt, linuxdeploy and other similar projects. AppImage automatically bundles all dependencies, so it should "just work" on any system (remember to compile and deploy on some OLD system, though).
A different approach (if your use case allows it) is to rely on system Qt and let RPM or DEB package manager automatically install the dependencies for you. Here, again, you need to compile on an OLD system and you may fall into pitfalls when a particular Linux distribution ships with outdated Qt or has some bugs in it.
So, all in all - no matter which way you go, there will be issues ;-)