3 ms·
As few things as possible. People can install software themselves. IMHO, linux distributions are an odd thing in the software world. It's basically people taki
by jillesvangurp 4y ago
As few things as possible. People can install software themselves.
IMHO, linux distributions are an odd thing in the software world. It's basically people taking it upon themselves to take other software and repackage it for their distribution. That made some sense 30 years ago when you had to install linux from a CD (or floppies) and people necessarily had to package things up to fit on those CDs. But these days, that's much less of a thing.
The recent trends of distributions supporting things like docker, flatpak, snap, etc. enables software producers to package things up once and have them work on many distributions. So, there's less need to rely on package managers and their maintainers to figure out how to package up other people's software. Of course some of these things aren't perfect. But there's a large ecosystem of software that you can get this way that no longer requires packaging up. And even things like docker you can actually get via snap.
So, the fewer packages in a linux distribution, the better. Less that can go wrong, less space used on disk, less work to build and package things up, less hassle to update things, etc. All good things. Add the rest yourself as needed.
- viraptor 4y ago> and repackage it for their distribution There's no "re" in there. They decide how to package it for their distribution. The idea that you can take something non-trivial and just install it without issues across multiple systems is flawed. There's a lot of work involved in getting things to work together correctly. (If you don't think that's true, see how many of the current 4k broken packages can you fix in nixos https://hydra.nixos.org/jobset/nixpkgs/trunk https://hydra.nixos.org/jobset/nixpkgs/trunk ) Upstream software often has assumptions about how things work in your system. It's often not correct. > But there's a large ecosystem of software that you can get this way that no longer requires packaging up. Making non-trivial things work correctly in docker, snap, or flatpak is packaging. You effectively still target a specific distribution with a specific setup. It takes work, it takes maintenance, and it likely will degrade over time as your host changes as well.
- TheCoreh 4y ago> The idea that you can take something non-trivial and just install it without issues across multiple systems is flawed Why? If anything, the fact that you can't is the real flaw
- viraptor 4y agoSome examples I fixed just this week: - feature name changed, feature autodetection fails, package doesn't build anymore - new version of the package requires a new Apple SDK which is not used by default in the system yet - SDL gets updated which bumps the minimal required Apple SDK version. The package depending on SDL declares lower minimal SDK which fails at linking - package requires a specific flag when building with latest GCC, but that flag doesn't exist for clang, so it fails the build - new C++ standard adds std::bind which breaks unscoped calls to bind. Upstream didn't force an older standard, so build breaks on clang update. - Makefile makes assumptions about HOME being writable during a build. - build system assumes where the completion files will go And those are still the trivial problems. Some of those are fixable upstream, some will be "don't care" for the author or the package is already abandoned. Some exist because the author doesn't have particular hardware to test on. It's on the distributions to make it work for you regardless.
- pdimitar 4y agoThen the much better cause to fight for is to make this packaging and installing not resemble splattering a bucket of paint on the wall (installing stuff in /usr, /bin, /etc and so forth). The Linux distros did a good job packaging stuff but in the end it's all a very wasted effort that should have gone to unifying the way stuff is installed so we could all be more productive after. I can dream, I know. Some people will likely pull out a gun if you say that /usr/bin should exist only as a collection of symlinks.
- jillesvangurp 4y agoI'm not arguing that packaging shouldn't be done but that it should be done, and is in fact commonly done by upstream developers. What things like docker, snap and flatpak allow is packaging things up in a distribution independent way. Which means it can be done by the developers of the software directly. Of course the landscape is a bit fragmented and you could also see this as yet another package variety to support and there is the usual bit of tribalism around which to use and not to use. But overall, it means a lot of software is now available that you would in the past have had to install via distribution specific packages.
- mananaysiempre 4y ago> It's basically people taking it upon themselves to take other software and repackage it for their distribution. That made some sense 30 years ago when you had to install linux from a CD (or floppies) and people necessarily had to package things up to fit on those CDs. That might have been the original reason, but another has emerged in the meantime: distro maintainers are simultaneously unattached enough to the software to make decisions to make for the users instead of the authors and technical enough to actually implement those decisions[1]. OK, no, not really, they also very much implement their own vision of what users should want, but there are (still) enough distros that a user can choose one that fits them once and not be forced to pick or abandon individual programs. In that respect even Flatpak et al make things worse—unsurprisingly, given that Flatpak (AFAIK) is GNOME people saying they should make distro-style decisions, and nobody else should be able to. (Of course, in other respects—such as being able to install arbitrary things from the ’net—Flatpak et al do make things better.) https://drewdevault.com/2021/09/27/Let-distros-do-their-job.html https://drewdevault.com/2021/09/27/Let-distros-do-their-job....
- ilyt 4y agoRight. Build the environment from scratch and I bet you will immediately find newfound adoration for the work distro makers do. That kind of utterly ignorance driven complaints are nothing new
- worksonmine 4y agoWhile I like the idea of flatpak and docker for isolation the ability to include libraries make developers lazy. Now libraries with vulnerabilities are up to the developer to update because you have several versions on the same system and they're no longer forced to make their package work with the latest patched version. Great in theory, not so much in practice.
- orev 4y agoYou have completely misunderstood the purpose of distributions. The packaging of software for easy installation is certainly a benefit, but by FAR the primary purpose of (enterprise) distributions is to ensure all those packages are tested to work with each other to provide a usable and stable platform to build on. You can’t just have packages changing to random versions whenever a developer feels like it, as it would break other things using the same package. Easy examples would be conflicts in Python 2 vs 3 scripts, different versions of glibc, etc. Containers are just an admission that developers are so resistant to working with others that now we have to essentially install a full custom Linux distro for every app, and at that point you’re relying on that same developer to also provide updates to not only their own software, but all dependencies included in the binary blob.