Opinion: Distributions that only change non-system pre-installed software or desktop environment should instead be packages or scripts
The majority of Linux distributions out there seem to be over-engineering their method of distribution. They are not giving us a new distribution of Linux. They are giving us an existing distribution of Linux, but with a different distribution of non-system software (like a different desktop environment or configuration of it)
In many cases, turning an installation of the base distribution used to the one they're shipping is a matter of installing certain packages and setting some configurations. Why should the user be required to reinstall their whole OS for this?
It would be way more practical if those distributions are available as packages, preferably managed by the package manager itself. This is much easier for both the user and the developer.
Some developers may find it less satisfying to do this, and I don't mean to force my opinion on anyone, but only suggesting that there's an easier way to do this. Distributions should be changing things that aren't easily doable without a system reinstall.
Suppose kubuntu, ubuntu, lubuntu, xubuntu were packages to be installed on top of debian.
How would you do that? Debian would not create and maintain a "core debian" variant just to be installed then receive the extra packages. Would the *ubuntu packages replace, instead of add on top of default debian packages?
Then where would the updates come from? Both debian and *ubuntu repositories?
What about dependencies? Would debian have to coordinate with all *ubuntu maintainers (and they too, between them) for compatibility tests every time debian needed to update one of its packages? Or they'd just update and *ubuntu would have to scramble to release fixes for what had been broken?
Not to mention convenience; would you have to download debian, download *ubuntu, install debian, then your *ubuntu?
Why not then package the "core debian", with the tested component versions that work with the *ubuntu packages you're downloading? Hey, and what about script the installation to install both "core debian" parts and then *ubuntu automatically? That's an innovative idea indeed. No, wait, isn't it sort of what they already do today?
It's not like there's a Linux headquarters with a centralized organization that releases all multiple distros just to feed the hobby of distro hoppers. Distros are maintained and packaged by different people, and it's already a lot of trouble to keep each part in sync.
Debian would not create and maintain a "core debian" variant just to be installed then receive the extra packages
Debian server minimal, is kind of a "core Debian". There are netinst versions that can be even smaller. The Debian base image for Docker is even smaller than all that.
There is also an Ubuntu minimal install that you could call "core Ubuntu".
But more importantly, and I can't stress this enough: YOU CAN SWITCH DISTROS WITHOUT REINSTALLING. Might need to do some cleanup afterwards, but it's perfectly doable, more so between Debian based ones.
Uninstalling the entire kubuntu package, while reverting to “core Debian” and then installing the Ubuntu package would be more complicated and time-consuming than installing a new OS.
Just partition off your /home and a reinstall won’t be that big a deal.
A minimal install like debian base already has a things that may differ from distro to distro. Or are you equating "distro" with window manager and GUI customizations? Even the kernel binaries may differ from distro to distro.
Ubuntu has significant differences from Debian so it wouldn't make much sense to be able to install it as a "flavor" of Debian. However, *Ubuntu are pretty much already metapackages on top of regular Ubuntu. So instead of having different installers for each one, you could just make it an option during install and provide an easy means to add/switch other options later
Yes, if all *ubuntu variants were maintained by Ubuntu maintainers. But since that's not the case, again, it would be complicated for releasing.
Many distros already offer window manager options when installing, but that's inside the same distro, not bits and pieces of different distros with possibly different release cycles and dependencies.
One distro may not wish to be "absorbed" by the other.
How would you do that? Debian would not create and maintain a “core debian” variant just to be installed then receive the extra packages.
To be honest, I do not fully understand your question here. Could you rephrase?
Would the *ubuntu packages replace, instead of add on top of default debian packages?
They must not replace. If they are merely installing KDE on top of Ubuntu, then theres nothing to do here. The work is already done for us. But if it is doing more than taht, then they should be different packages building on top of the default debian packages for KDE et al.
Sort of like how LunarVim is a distribution of NeoVim. It is the same NeoVim, but with pre-configurations and plugins shipped OOTB, and it can be packaged separately.
What about dependencies?
Thats the beauty of this. Package managers are already equipped with dependency management. It is far easier to manage dependencies with a package rather than rolling out your own distribution. It is literally one of the biggest reasons why we use package managers to begin with. We dont want dependency hell!
Would debian have to coordinate with all *ubuntu maintainers (and they too, between them) for compatibility tests every time debian needed to update one of its packages? Or they’d just update and *ubuntu would have to scramble to release fixes for what had been broken?
This is a debian specific question, so I will try to answer more generally. It would just have to be done in the same way any package is maintained on that distribution. And this varies by distro; some distributions have different workflows for their package maintenance. The point is that we make use of these already defined workflows that have worked for decades and been iterated on. It is much easier to package than to create a new distribution.
Not to mention convenience; would you have to download debian, download *ubuntu, install debian, then your *ubuntu?
Instead of installing *ubuntu, you install Debian, then run one command: sudo apt install *ubuntu. I see these as nearly equivalent. Moreover, it could be made to be an option in the distribution's installer, sort of like EndeavourOS and Fedora do it.
Why not then package the “core debian”, with the tested component versions that work with the *ubuntu packages you’re downloading?
That can be what I mean with it being an option in the installer. But if you mean maintaining a whole separate distribution just for this, well ... you are maintaining an entirel separate distribution just for this ... instead of just maintaining a package.
You fail to realize that each distro is maintained by different people. Your reasoning would make sense if the "core debian" was maintained and packaged by the same people who maintained and packaged *ubuntu.
The end user would download "core debian" from debian, and the *ubuntu "flavor" from *ubuntu. Installing debian then going "apt install kubuntu" wouldn't work because kubuntu is not in the debian repository.
If debian changed their downloadable "core debian", it could make it incompatible with what's in the kubuntu repository. They are not maintained by the same employees of "Linux inc."
I think your focus is on ease for distributors rather than ease for users. Unless they had a series of checkboxes to choose your flavour, most won't like it and it won't gain traction.
It's a bit like "why cannot people cook food in a restaurant to their liking rather than a chef doing all these meals and variations?". People just wanna eat.
If you're basing your distro on another distro, you'll need to modify your dependencies to fit the existing packages anyway. It seems like the only difference is which repo the additional packages are being fetched from.
I don't see how this is more difficult on the user. It is running a simple command, and for a GUI package manager it would be a single button click, just like you'd do it in a graphical installer. It would indeed be almost like a series of check boxes.
As a user, it is much easier to check a box than reinstall my entire OS
I realize now that you think the only difference between distros is the GUI. Some may be simply that, or close to that (kubuntu x ubuntu for example), but it's not always the case.
So your original post shouldn't be about "distros" but GUI options. Some distros indeed let you choose from different WM, but as I've been repeating, in this case they're packaged and tested by the maintainers of THE SAME DISTRO.
I do agree with you that it's a cool option. It would require a distro to prioritise that and architect that in a way that seamlessly switches. Maybe there is a gap for something like that if the UI is nice.
Actually, on reflection, I think Mint did have an option from login screen to use KDE or Cinnamon.
Not GP, but NixOS makes it easy to make new distros from a NixOS configuration, with ISOs and everything. See for example SnowflakeOS. This is IMO healthier than all the Arch clones etc., since all differences from the base OS are easy to spot, there is little duplication of effort, and it possible to revert to a base NixOS from e.g. SnowflakeOS if a user so would desire.
If what you proposed was put into practice, we wouldn't have hundreds of distributions. I think the amount of distributions that exist may actually be overwhelming to a new user. If there were only a few distributions to choose from, you wouldn't have so many people distro hopping, which is a waste of time (in most cases). You don't like the desktop environment? Install something else. You don't like floating windows? Use a tiling window manager.
I think it's about controlling others. Not in an evil or conniving way, but rather that a lot of devs "don't want other people forcing design decisions on them" when in reality they're just replacing one set of design decisions with another.
There used to be a distribution called Symphony OS. It was a unique desktop paradigm (not my favorite mid '90s buzzword, but I think it fits) that I was interested in trying out. It's long gone by this point, but it would have been nice to be able to just install the DM like Gnome, KDE, or whatever without having to do a full install.
Well there are/were systems like that, Crunchbang bring the one that pops into my mind most immediately, but there are others. I think they’re the minority though, even something like MX which you might say is just Debian with a nice xfce has the option of not using systemd, pop and mint don’t ship with snaps…so a bit more than just themeing…where to draw the line?
Just taking whatever is easier. If your changes are easily packageable, then it should be a package. Changing systemd is probably not easily packageable. It's probably possible, but it's something where its not worth the effort.
Removing snaps? I feel like I'd prefer Mint to package its stuff as a package and leave removing snaps up to the user. But I vaguely remember that mint changes some repos too?