5 ms·
Your post seems to suggest that you won't be developing for Linux and just need something that's a good virtualization host and all-round desktop. In this case,
by notalaser 10y ago
Your post seems to suggest that you won't be developing for Linux and just need something that's a good virtualization host and all-round desktop. In this case, any distribution that you can get along with will do. Especially if you don't have much experience with Linux, Ubuntu and Fedora are both excellent choices. I tend to recommend the latter over the former.
If you do actually need to develop for Linux, I would suggest something with a rolling release model, otherwise it won't be long before you'll need to start compiling things from source because you need a more recent version of <something> than your distro is packaging.
"Rolling release" means that there is no Arch Linux 1, 2, 3 and so on, as in Fedora's case. Arch periodically releases an install image, which you use to bootstrap your system, but the latest tested version of every package is what's available in the package repository, for everyone, and as soon as a newer version is packaged, you can install it. This seems to be the best way to guarantee that you get the latest packages and the most stable system that you can get with them (spoiler alert: it's not that stable, but not disastrously unstable, either; I've ran rolling release distros on my laptop for years).
Arch is an usual recommendation in this case. Red Hat Enterprise Beta, uh, I mean, Fedora, is also a good choice -- it's not a rolling release, but it regularly ships with very recent packages. It's also a testbed for new technologies, and does have the advantage that you get a fully setup (and generally mostly working) system from the beginning.
If you're a more experienced user, you might want to have a look at Gentoo and Void Linux.
- djsumdog 10y agoI've been using Gentoo since 2002 I think. It's a great distribution for developers, especially if you're developing Linux packages. It's very easy to create your own local overlay and test your package changes against a system, without needing your own custom repo or VM. I'm glad you mentioned Void too. I'm currently using that on my router. I like how Void is systemd free and Gentoo makes it optional. If you try building a Linux From Scratch (LFS), think of Gentoo as LFS with package management.
- notalaser 10y agoI took Void for a spin on my desktop because, as much as I like OpenBSD, I do occasionally need to touch stuff that's Linux-only. It's like a breath of fresh air, really. I can go about and mind my own business, as if all the mind-boggling complexity that's been steadily poured into the Linux cup during the last 3-5 years or so has been nicely tucked away under the rug or just thrown out. Not having systemd isn't such a big deal to me, but it helps. I had to learn it at $work a while ago so it doesn't baffle me anymore. I get why it's so appreciated by DevOps and software outsourcing companies, but it doesn't do anything I need. I can live with it (and I have), but it helps if I don't need to. Gentoo is great, but with Linux land being the way it is lately, I wouldn't recommend it to anyone who's not very familiar with it. Asking someone to get a working system with Grub 2, xdg-* and the like using nothing but the Gentoo handbook and the Gentoo forum is more or less the equivalent of sending someone to fight World War II with a fork.
- Macuyiko 10y agoLikewise, Void takes some getting used to, though - meaning its package manager (I was used to apt-get). The manual partitioning also was quite cumbersome for me, even though I've done a lot of fdisk fiddling when I was younger. The main issue for me was the lack of clear documentation regarding this phase [1]. However, I took it as a "forced learning" opportunity and spend a day fiddling with it until I got it working, from which point onward it really is a fast and lean system to work with, very BSD-ish in style, that doesn't get in your way. I love it. My only alternative nowadays would be Manjaro-OpenRC. [1]: If I remember correctly, you can screw up the rest of the partition management step if you select the incorrect "label type" (gpt or dos), with no clear way to revert your selection.
- notalaser 10y ago> The manual partitioning also was quite cumbersome for me, even though I've done a lot of fdisk fiddling when I was younger. The main issue for me was the lack of clear documentation regarding this phase [1]. The way I do it, lately, and for pretty much any Linux system I use, is to just use LVM for everything except the /boot partition which I leave unencrypted. I think you can have an encrypted /boot but with Grub 2 being the way it is, I don't want to bother with it, my threat model is pretty much thieves stealing my computer, I don't need much plausible deniability. The only install-time inconvenience with this is that the manpages for LVM-family commands (lv, pv, vg*) are nothing short of terrible. They're pretty much the equivalent of the // add 1 to i comments next to i++. You don't necessarily "screw up" if you pick the "wrong" label type. You can actually convert between the two (e.g. https://wiki.archlinux.org/index.php/Fdisk#Convert_between_MBR_and_GPT https://wiki.archlinux.org/index.php/Fdisk#Convert_between_M... ) . Also, I don't know if the functionality was eventually merged, but a while ago, you had to be careful to use the "correct" set of utils for the partition table type you used (e.g. fdisk for MBR, gdisk for GTP, cfdisk for MBR, cgdisk for GPT and so on)..
- rmattes 10y ago> If you do actually need to develop for Linux, I would suggest something with a rolling release model, otherwise it won't be long before you'll need to start compiling things from source because you need a more recent version of <something> than your distro is packaging. It depends on your requirements. If you constantly find yourself needing the latest and greatest upstream software releases, then yes, use a rolling release. But if not, rolling releases can make your life much more painful. If you're not paying attention when you update your system, then each update is a roll of the dice as to whether your software will still build or run afterwards, as any update could introduce incompatible changes to packages your software depends on. A distribution with a release model (usually) tries to maintain API and ABI compatibility for the duration of a release, so you can update with more confidence that it you won't have to re-build or port your code as a result. There's trade-offs between stability and shininess across the spectrum of distributions with rolling releases, with frequent releases, and with long release cycles. As long as you're aware of that, you can decide for yourself how frequently you want updates, and therefore the type of distribution you should run. > Red Hat Enterprise Beta, uh, I mean, Fedora I really wish people would stop making comments like this. I volunteer a significant amount of my free time and effort to improve Fedora, and I see a lot of others in the Fedora community doing the same. I can't speak for anyone else, but I'm doing it to make Fedora better, not to crowd-source Red Hat development for free. Fedora is a first-class distribution in its own right, with an open, inclusive, and independent community. Reducing it to a beta distribution for Red Hat glosses over that fact, which I find very unfortunate.
- notalaser 10y ago> I really wish people would stop making comments like this. I didn't mean to imply that Fedora isn't a first-class distribution in its own right. In this post's context, I see why it would look that way, and I apologize for it. I don't mean to belittle the work you folks are doing, and I know that the Fedora project is more than just the distro, and that the distro itself is more than just Red Hat's testbed for new features. I don't run Fedora on any of my home computers anymore. I ran it up to Core 3, I think, having ran Red Hat Linux before. But I've always "ran into" Fedora computers as part of my work and occasionally ran it on my company-issued laptop at $work. While Red Hat's presence can account for some of your stranger choices, it cannot be the only reason behind your success (and I honestly don't think it is). The origin of my snarky comment is that to many of us outside the Fedora community, it often feels like a lot of things are finding their way into Fedora largely because they need more ample testing. The fact that they're so active and so pushy means that most of them are from Red Hat. I have very few fond memories about dealing with very early breakage from NetworkManager, PulseAudio, systemd and so on. All of them are now successful technologies, but they were not "ready" by any responsible use of the word when they were first included or enabled by default in Fedora. Wayland is, to some degree, an exception, but only because it has already seen wide enough deployment in the embedded/infotainment area that, for once, the desktop is not the earliest adopter. This is one of the reasons why I recommended Fedora as a development distribution (my wording probably didn't really look like a recommendation, sorry!). At $work, I already work on Linux software; I don't want to deal with more Linux craziness at home, so I tend to stay way from bleeding edge stuff. But if you do need to keep in touch with what's happening in the Linux world, Fedora is the most stable way of doing it that's also reasonably low-maintenance (the second best option, IMHO, is Gentoo). Staying up-to-date with all these changes is very important, IMHO. For better or for worse, very important pieces of a modern Linux system, like systemd and GTK, are making a lot of breaking changes in-between releases. Running a bleeding-edge system is about the only reasonable way of becoming "passively" acquainted with them, and is a great way of weeding out the subtle bugs that they introduce.