I’m ditching Windows in favor of Linux on my personal desktop. And so I’m looking for advice on which distro I should start with.
About Me
I use Linux professionally all the time but mostly to build ci/cd pipelines and for software development/operations. I’ve never been a Linux admin nor have I ever chosen the distro I use. I’m generally comfortable using Linux and digging into configs/issues as needed.
Planned Usage
I use this machine for typical home usage: Firefox, a notes app (currently Notesnook), maybe office style tools like word and excel. I also use this for gaming: Steam, Discord, etc. Lastly and least important, I use this for a small amount of dev work: VSCode, various languages, possibly running containers.
What I’m Looking For
I’d like an OS that’s highly configurable but ships with good default settings and requires very little effort to start using. I don’t want it to ship with loads of applications; I want to choose and install all of the higher level tools. Shipping with a configured desktop is perfectly fine but not required. Ideally, I can have all of this while still keeping the maintenance low. I think that means a stable OS, a good package manager, stable/automatic updates, etc.
Last bit. Open source is rather important to me. I prefer free and free.
Anyone have good suggestions??
Edit
I’m aware of tools like Distro Chooser. They’ve recommended Arch Linux and Endeavor OS to me so far. But I’m not ready to trust them yet. I’m looking for human input.
Edit 2: Hardware Info
I’m running on an ASUS ROG Strix GA15DK. It’s just over 2 years old. The hardware was shiny but not top-tier at the time. It’s not new at this point but also not old by Linux standards.
- AMD Ryzen 7 5800X Processor
- NVIDIA GeForce RTX 3070
- 16GB DDR4 3200 MHz RAM
Edit 3
It’s official. I installed EndeavourOS! I got it to work without any issues. Yup, first try. It definitely didn’t take me ~10 tries :D
Thanks for all the input all! Wonderful crowd here!!!
When you install, whatever you install, partition your drive so that
/home
is it’s own partition. Then if/when you reinstall, distrohop, whatever, you don’t have to worry about copying over your data. Just use the same/home
partition, and format the others. You can actually use this to try multiple distros at the same time - you can install them in different partitions, but have every install use the same/home
partition. This is a nice way to test new distros without blowing away your stable install.Now, for my distro recommendation - Ubuntu gets a lot of hate, but honestly, after 15+ years of Linux, and having tried Mint, Fedora, Arch, Manjaro, and many others, I always end up back on Ubuntu. It’s easy, it’s stable, and it stays out of my way.
The defaults are good, but you can customize as much as you want, and they offer a minimal install (as of 23.10, it is the default) which comes with very few applications, so you can start clean and choose all the applications you want.
Unless you are excited to tinker, I’d really recommend starting simple. Personality, I just want the OS to facilitate my other activities, and I otherwise want to forget about it. Ubuntu is pretty good for that.
When you share your /home, won’t you have to be pretty mindful/retest stuff just to make sure there’s no compatibility issues?
You mean with config files stored in your home directory? Or something else?
Right, I’d have to check to make sure there’s no incompatibility among versions or installed programs wouldn’t I? idk maybe it’s not that complex
It’s possible to hit issues, especially if different distros are using different major versions of desktop environments or applications, but in practice, I don’t think it’s something that really needs to be worried about.
If you were to upgrade/fresh install, and copy your home folder over, you’d have the same experience - it’s not much safer than sharing the home partition, except that you’re (hopefully) doing that less. You could still easily go from distro A using version 2 of something, to distro B using version 3, and then decide you don’t like it and try to roll back to distro A. If in the process your config was upgraded in place (as opposed to a new, versioned config being made*), you could have problems rolling back.
With configs, you can usually just delete them (or, less destructively, rename them, in case you decide you want them back), and let the application make a new default one for you. With other files (e.g. databases), you might be in more trouble. But a good application will tell you before doing an upgrade like that, and give you a chance to backup the original before upgrading in place. When asked, it’s probably a good idea to take a backup (and not just for this distro hoping case).
*For any developers reading this, this is the correct way to upgrade a config. Don’t be destructive. Don’t upgrade in place. Make a copy, upgrade the copy, and include a version in the file name. You can always tell the user, so they can remove the file if they want, but let them make the choice. If you can’t (e.g. the database scenario, which could be large), tell the user before doing anything, so they can choose whether or not to backup.
Ooohhhh I like that idea for testing! Thanks for the tip and the recommendation!
I used to do this when on Windows too: C was for the OS and apps, D was for user data. The same principle here - separating OS from data is a game changer - and even easier on Linux I think. Makes it so easy to wipe a partition and try something new.