I would say a tool like this sounds even better than snaps or flatpaks. Perhaps no one thought of this? Because it sounds to me like a great idea waiting to be pulled off. I really don't wanna see any more curls or wgets in installation guides.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
People have tried and failed this concept for decades. It's not a new idea, but it's an incredibly large and complicated problem to solve, not only because package names and versions differ from distro to distro, or distro version to distro version, but the contents of the packages and what they support and are compiled with differ too.
In reality it's not possible to get perfect, but with an absurd amount of effort a subset of support could be made. Your program just wouldn't be able to have the same guaranteed feature set across distributions.
I think it is too complex. Most distributions don't have the same Linux directory structure and different versions of libraries. So you have to ship and maintain different versions of the same library. Nix and Guix are more or less a solution, I think.
I like how Guix does it. It's nominally a source based distro but their build farms provide binaries, so in many cases you don't even need to build anything from source. You can also supply transformation options such as "build from this git commit" or "build with this patch" if you need it.
You can even setup your own build farm if you so desire, or if you're using it in a research or commercial setting.
right. on top of package manager support there would need to be more rigid standardization of package names. I have run into dependency libraries with differing names across different package managers even though they are the same code so it's not as simple as dropping in apt install/pacman -S/emerge
I have also wondered this sometimes.
Pkgsrc does this. It's just a huge pain.
I think the main problem is dependencies. If a tool is supposed to compile any code for any distro, it needs to support many different package managers. And I would say that Docker or other container software effectively solves this problem (but still needs more work for desktop use).
The Nix package manager works on most distros and even on MacOS so most nixpkgs expresions work out of the box (except modules
which are intended to simplify system configuration and are tailored to NixOS)
On the GNU side of thing there is Guix but lacks non-libre software. (Same principles and also great)