So this is a struggle that the linux community has been going through for a few years now, and the crux of the issue is this: Most software licenses do not allow you to compile their software with your own for free. This is a problem in situations where software you want to use is expecting another piece of code to be available, such as an audio middleware like pulseAudio for example. The way this has traditionally been solved on linux systems is through the package manager, which would install these dependencies separately, and the distro maintainer would have a list of supported software that worked with the whole system and they would be updated automatically.
But a few things have changed:
As more people adopt linux, if they find software that isn't available through their package manager they will try to get it from the source. If the developer does not have a build for your distro tested and available, there is a good chance it won't work. These leads to complaints and undue support requests.
Containerization hit the scene. Containerization allows software to be run in it's own evironment, possibly locked off (sandboxed) from the rest of the operating system. This is good, especially for corporate uses since you can use outdated software without the risk of the whole machine/server/network being compromised (in theory)
So developers are looking for ways to make software work on any distro without a whole lot of extra work, businesses want software that doesn't cost a lot to secure, and lawyers want to make sure their software is not compiled as someone else's code. That's where things like flatpak, appimage, and snap come into play. These are all containers that package the program with its dependencies in a virtual environment. They are, in a way, vying for dominance right now. But the downside is, of course, having multiple copies of the same software on one machine and software updates are more confusing.
So this is a struggle that the linux community has been going through for a few years now, and the crux of the issue is this: Most software licenses do not allow you to compile their software with your own for free. This is a problem in situations where software you want to use is expecting another piece of code to be available, such as an audio middleware like pulseAudio for example. The way this has traditionally been solved on linux systems is through the package manager, which would install these dependencies separately, and the distro maintainer would have a list of supported software that worked with the whole system and they would be updated automatically.
But a few things have changed:
So developers are looking for ways to make software work on any distro without a whole lot of extra work, businesses want software that doesn't cost a lot to secure, and lawyers want to make sure their software is not compiled as someone else's code. That's where things like flatpak, appimage, and snap come into play. These are all containers that package the program with its dependencies in a virtual environment. They are, in a way, vying for dominance right now. But the downside is, of course, having multiple copies of the same software on one machine and software updates are more confusing.