I've been dailying the same Mint install since I gave up on Windows a few years ago. When I was choosing a distro, a lot of people were saying that I should start with Mint and "move on to something else" once I got comfortable with the OS.
I'm comfortable now, but I don't really see any reason to move on. What would the benefits be of jumping to something else? Mint has great documentation and an active community that has answers to any questions I've ever had, and I'm reluctant to ditch that. On the other hand, when I scroll through forums, Distro Hopping seems to be such a big part of the "Linux experience."
Can somebody ELI5 what the difference between Linux distros is? I’m ashamed to admit I don’t truly understand, aside from different package managers and DEs but even then there are only a handful of those.
Yes but they use different repositories with different maintainers. Think of a package manager like steam, epic, etc, except instead of games it's everything. Some package managers get different applications, some have different versions of the same applications. In the case of Debian/Ubuntu it's more like steam in China vs steam in the rest of the world. Same steam, different games, different maintainers of who decides what games get to go in which steam.
Generally end-user applications like Firefox would be the latest/same version, but system libraries might be a few versions different. Generally security patches are written for a few major versions of libraries/daemons at the same time. So features might be different but it's all the same security for the most part.
That's the major draw between one distro to another, they will have different philosophies on what to include, and what major version to use. Debian for example is much more reluctant to upgrade something unless there's a large demand for a new feature. The theory is it is more stable and consistent to use that way.
Ubuntu on the other hand features much more modern versions of libraries because they want to be more hip and modern, expecting users to learn new things more often because they think the new features are worth it and they want to support all the things.
Ubuntu on the other hand features much more modern versions of libraries because they want to be more hip and modern
You can use the "testing" release of Debian if you want newer stuff. It's still more stable than rolling distros. Packages have to be in the "unstable" release for 10 days with no major bugs to get promoted to testing.
The grand theory of classic package managers is the idea that lots of programs all need the same core libraries to function. An analogy would be like noticing most construction jobs need nails. So instead of making everyone bring their own copy of nails, resulting in dozens of redundant copies of it lying around, they have a single nails package that everyone can use.
But there are different versions of nails out there. Each version picks up unique new features, and drops legacy ones. Recent builds may incorporate and thus require the new features, making them incompatible with old versions of nails that don't have them. On the other hand, some builds may still use and rely on legacy features of nails, and are thus incompatible with the new versions. You may run into a scenario where you want Software A that needs nails version 14+, but also Software B that can only run on nails v <13, and you just can't, because they don't overlap.
Additionally, there may just be a totally different competing package out there, screws, that does largely the same job as nails, but in a completely different way that is totally incompatible with projects that expect nails. So if you need Software C that relies on nails, but also Software D that relies on screws, you might cause problems by installing both.
What a distro is is essentially a group of devs declaring that they are putting together some specific list of libraries (like, say, nails v14), and then sculpting up a bundle of software around those specific libraries. Can't cope with nails v14? That sucks. No package for you, then.
In that sense, distros are differentiated by what libraries and other low-level system softwares are available to the programs you wish to install on them. If you want your program to be available natively on every distro, it needs to be compatible with every competing set of libraries each distro has elected to use.
It is possible to just say "fuck it" to the distro's built-in libraries, and instead bundling the specific version of nails or screws or whatever you project needs directly with it. Build your own with blackjack and hookers, as it were. That's exactly what Flatpak does, among others. But it's trading flexibility for redundancy. In the age of cheap and plentiful storage memory, many people think this trade is well worth it. But it makes many formalists cringe.
It can sort of depend on the distro, there are a lot of Debian-based ones such as Debian (obviously), Kali, Ubuntu, and then ones based on Ubuntu like Mint and Pop!OS, those all largely work the same under the hood, ie you'd use .deb files and something like sudo apt-get install to install something.
Then there are Arch-based ones like Arch and Manjaro, which are a bit more different, you'd use pacman or yay or paru to install things instead, and they have things like the AUR, which is a big user-maintained repository or software that has just about everything on it.
Then you have the Fedora based ones and SUSE based ones, which are different again in other ways. And some more unique and weirder ones like NixOS which is having a bit of a moment, whereby you sort of configure the entire system in one single config file and rebuild it each time (as I understand it, that might be a bit off 'cause I'm still learning.)
So yeah it sort of depends. And then you have desktop environments like GNOME and KDE which aren't distros, but do affect how the whole system looks (and functions, to an extent.) And these are largely agnostic of the underlying distro, so you could have say a machine running Debian with GNOME next to a machine running NixOS with GNOME which would look very similar from the desktop but would be hugely different under the hood, and two machines running Arch, one with GNOME and one with KDE which would look totally different but be functionally the same.