So... which version of Linux should I install on my brand new machine?
Click here to vote!
I'm often asked this question: "Hey, you're a Linux dude right? What Linux should I use? I have this friend who recommends (insert distro here) and I want to know what you think?" I usually reply with the same question: what do you want to do? So I decided to write this as a guide to what type of Linux you should choose.
My History with Linux
I should probably preface this article with a little bit of my history with Linux, in case you're reading this and you don't know me (very likely). You can skip this if you don't care.
I started out using Linux around 1996. My first Linux was Slackware 4, a set of CDs I purchased at Egghead Software (yep, I'm old). A friend of mine told me about this Unix like thing that was so great and I just had to try it and he thought I would love it.
I read a lot about Unix and was very curious about it. I had a shell account at my internet provider and I'd tinkered around, yet at first, I was a bit hesitant. "Why would I need this?" His reply was simply: "Because you hate Windows 95 so much and love DOS, you'll love this". So I bought it. He was right.
I took an old hard drive I had and installed it. I fought with it for hours, then days. I finally got a desktop up and running. I have no idea what drove me in this time, but I had to figure out how to make this system work, and it was difficult.
I had to know so much about my hardware! Simple things were suddenly hard again. But I pushed through, and I got my desktop up. And I started building some silly scripts for fun. The system was fast, and I could change nearly everything about it.
It had a built-in C compiler? I just bought some really expensive Borland package for this I could barely figure out. But this OS had a compiler built-in? A free Image editor? I was hooked!
For years after that, I experimented with tons of Distributions. Even BSD Unix ones. My "main computer" was always a dual boot, and some of them were pure Linux. Most of the early 2000s, I avoided Windows completely. So by year, I can break it down to my "main machine", it would be:
- 1996-1999: Slackware
- 1999-2002: Redhat (and FreeBSD)
- 2003-2005: FreeBSD / Knoppix
- 2005-2009: Gentoo
- 2009-2011: Linux Mint
- 2011-2018: Arch Linux / Debian
I've used 50 or more distributions in my time, but this was what was running on my "main machine" I used for work, or browsing, or development or whatever. Obviously Arch had the longest run so far, mainly because I could just configure it and forget about it for long periods of time.
But the main distro for my "real work" the last few years has been Arch Linux.
Enough about me, let's talk about what you should use.
So What Do You Want to Do?
I'm going to put these in categories based on common needs. There is some overlap here, and with enough effort, any of these Linux distributions will work for your desired needs. One of the great things about Linux is you can make it whatever you want. But some distributions do a lot of that work for you or have a design that works better towards certain goals. I'll present these in categories based on the easiest path to reach your goals.
I'm a Linux Newbie Just Getting Started
For a long time, I recommended Ubuntu for this. As far as ease of use and compatibility it was great. But I avoid Ubuntu now. I still use it for demos in my courses and articles because so many people use it, but I am not a fan of the way they run this distribution, the built-in Amazon adware, and Unity is annoying.
So if you're just starting out I recommend:
It's kind of a cheat because Linux Mint is built off Debian, but Mint looks prettier and has some nice cross-platform stuff.
Use these distributions if you want:
- A Windows-like experience
- Something simple to install
- Something reliable
- Something "Linux like" that doesn't deviate from the norm
- Something that "just works"
Ok so that last one is really important. It just works. These distributions are mostly plug and play. Set them up, and forget about it. I have become increasingly reliant on Debian for my development machines because at times I don't care about the OS and I don't want it to get in my way. When I'm in a mood where I just want to build things, it can't be beat.
If you're just starting out, this course on Linux Installation and Initial Configuration may help you out a lot.
I Want to Learn More About Linux and My Hardware
Maybe you're in the mood to play and experiment. You want to challenge yourself and force yourself to learn by doing. That's great, it's exactly what I did.
If you want to challenge yourself and learn I recommend:
- Arch Linux
- Slackware Linux
- Gentoo Linux
- FreeBSD Unix ( Not Linux, but fits into this category )
Each of these distributions requires a lot of configuration, hardware discovery, and compiling of source code. With Gentoo, you have to compile everything. It's a great way to have absolute full control over your operating system.
Use these distributions if you want:
- Full control of your computer and OS
- To learn about Linux internals
- A lean and mean optimized system
This comes at a cost: mainly your time. A full install of these can take hours. On the plus side, they tend to run forever.
I had an Arch Install on a Lenovo that took the better part of a Saturday to configure, and let's say another 10 hours or more spread out after that. It ran nearly effortlessly for 5 years (until the laptop hardware died). I only had to do a few updates once in a while, but I used it reliably every day for 5. Long. Years. So in a way you can look at it as an investment.
I want Cutting Edge Stuff
Ok maybe you want the latest greatest software and you don't care how stable it is. You want to do some kernel hacking or some other cool thing that some coder committed yesterday.
To hell with stability and security you want the newest thing now.
Use these distributions if you want:
- To trade risk for the newest stuff
- The latest and greatest features always
- Fun configuring things to work with breaking changes
To be fair I've personally used Arch and Gentoo without significant stability problems, but I was risking using the bleeding edge stuff on rolling releases.
I Just Want to Get Some Work Done
Ok maybe you don't really care about the OS particulars and just want to GSD (Get Stuff Done). Maybe you have some Node or GoLang apps you want to build and heard Linux is the best for it.
These are great for getting work done:
Use these distributions if you want:
- Smooth operation with low maintenance
- Minimal configuration
- Things that just work mostly automatically
- Compatibility with hardware and software
As I said I often use Debian these days as I'm usually just making something and don't really feel like tinkering around and optimizing. It's stable, fast, and stays out of my way. I'm writing this article in Debian 9 right now.
I Want to Set Up a Server
Maybe you want to set up a web server or virtual host and don't know what to use. The first one on this list is the dominant distribution for web hosting, so if you want something that mimics the site that's hosting your software try CentOS (or learn Docker!)
These are solid and reliable for web hosting:
- CentOS
- Red Hat Enterprise
- Debian
- FreeBSD ( Not Linux, but fits into this category )
Use these distributions if you want:
- Stability
- Security
- Support from other people using it for the same reason
I believe any Linux distribution can be used for web hosting effectively, but some take more work than others.
I Want the Most Performance Possible
So if you're one of those types who want to squeeze out every ounce of performance (I've been there) these are great for you. Some of these require compiling all the source code to produce binaries optimized for your processor(s). Fun stuff!
- Clear Linux
- Arch Linux
- Gentoo Linux
- FreeBSD ( Not Linux, but fits into this category )
Use these distributions if you want:
- Fast performance
- High Load Computing
Keep in mind that hardware has reached a performance point where these don't matter quite as much as they used to. 15 years ago you could hack a kernel and dial in your services and see a big boost. These days, the difference is negligible. Any Linux will be pretty snappy.
I Want a Secure Desktop
Maybe you want to set up a system that's hard to break into, for whatever reason. There are a couple of distributions with security as a top focus. If you're really concerned about locking down your main machine, these are great ones to look at.
- TAILS Linux
- Alpine Linux
- CoreOS
- TENS Linux
- Tin Hat Linux
- OpenBSD ( Not Linux, but fits into this category )
Use these distributions if you want:
- Security
- Anonymity
I Want a Minimal Computer System
Ok, sometimes you just want something lean and mean that gets a certain job done. I definitely understand this. Maybe you have an old Pentium you want to re-purpose. Sometimes the OS is just a small part of your goal and you want the bare minimum.
Use these distributions if you want:
- Something that will run on old hardware
- Something minimal as possible
Conclusion
I hate to sound like a broken record, but you could just pick out one of these Linux distributions and make it whatever you want. That's the nature of Linux, its customizable to the furthest degree. But these are great distributions for getting started fast.
If you want to learn more about Linux, Pluralsight has a ton of Linux Courses including a really good one for starting out, Linux Installation and Initial Configuration
If you think I've missed the mark or left out a distribution feel free to leave me a message in the comments, or yell at me on Twitter.
And whatever you do, if you reached this page because you're curious about Linux, try it out!! Now! These days you can download something like VirtualBox (free of charge) and try it out before really committing to anything. It's definitely worth your time to check it out!
Oldest comments (59)
Solus is a nice one for beginning linux users.
+1 for Solus! I enjoyed my time with Solus during my quest for a distro.
Yep. Couldn't be any happier with it. 🙂
This is a great read - thank you for writing it!
I'm trying to choose between Gentoo and Slackware, but I find it hard to compare them. Any advice?
I've used both, I like Gentoo better and is the one I've used for longer, I'm writting from Gentoo actually. Slackware uses older versions and has no official dependency manager wich to me is a dealbreaker nowdays, I don't want to deal with dependencies and personally don't care to take care of it, you can always get a non-official one but why tho. Gentoo has a bad rep as being very hard to install, but to me is just like Arch, compilations may take a while but you don't have to be watching the screen, you can do its thing while you sleep, and you can install it from any existing Linux so you can do it at your own pace and even between reboots, you just chroot and keep going, and after your first you just backup /etc and keep your /home separated and you are done, Gentoo install in a few minutes and let it compile before you go to bed in the monring it should be almost ready. Kernel config can be hard if you haven't done it but genkernel can make it automagically if you are not ready to do it manually (I recommend the automated way in your first install on new PC and then play with it manually), you can even use the automated one as starting point to start "cleaning". I thing the rep of Gentoo being hard is mainly to scare new people and for Gentoo users to feel powerful, is not that hard, just follow the excelent handbook. Aside the install, is rock solid. To me, the only reason to move away from Gentoo is that gets boring, in a good way, after 5+ years from your last install, almost no trouble (I say almost just in case, I can't recall any incident) you can get the hop itch, fool around with other distros but I always get back to the trusty Gentoo. Is also worth mentioning that big packages have binaries too, so if you don't think compiling Libreoffice is worthwhile (I don't) you can just install the binary. I certainly don't recommend Gentoo to everyone, you have to be kinda weird for it, but if you suspect you may be weird enough to say Arch is not enough control or lightweight enough; welcome! :)
As I said I used Gentoo for years. It usually took me a whole weekend to install.
But back then, the performance advantages were great, and I really wanted to dial it in.
These days, I don't find it worth my time to compile everything. Optimized or not, I don't notice a day to day difference that's worth that kind of time.
My move to Arch was based on the fact that I still wanted to hand pick everything that goes into my system and optimize it, without spending an entire weekend.
That being said it depends on how often you cycle machines. If you're planning on putting together a system that you'll use the next few years, that time spent might be worth it because a Gentoo system well done is really, really solid. I just ordered an i9 64gig workstation that I know I'll use the next 5-7 years and I'm considering putting Gentoo on that one.
As far as Slackware, I haven't really used it in so long I don't have much of an opinion on it. There were things I really liked about Slackware, but package management wasn't one of them.
Picking a distribution is tricky, it's often times down to a personal preference, like choosing what to eat or what car you drive.
First off, I love the article! My experience with Linux has been similar, I started ~1996 with Slackware on floppies, and my first CD distros were the ones I ordered online through cheapbytes. I was a Slackware user for years then recently (2012-2013) switched to ArchLinux. Like the author, I preferred to customize my software setup.
Now, for your question. Slackware to me, has always felt like traditional Unix, while Gentoo is much more progressive. This is just how it "feels" to me, if I had to select one for you, I'd look at other things you prefer to get a feel of which type of user you'd be.
Nice one, Jeremy... lemme add this one:
I Want to Save Myself The Headache
Use Ubuntu
Pop has had fewer headaches for me so far.
I've been using Pop too, but didn't see it on the lists in the article.
My profile is: user who wants to migrate away from Windows and all that baggage.
I've really enjoyed Pop OS, it made it to switch.
I've been looking at POP, but I haven't tried it. As a rule I only included distros in this article that I've spent real time with over the years.
It's on my list.
After only 4 months of usage, I really like POP. So far I had zero problems.
Ubuntu and no Headaches? Sounds nice but is far from reality 😂. I switched because of their unreliability...
I've been satisfied using Ubuntu without Unity and using LXDE instead (Lubuntu). Unity is absurdly slow and a memory hog.
I only had headache using Ubuntu. When something breaks in it, seems like your diving into a mess of stuff you can't relate and can't find what is really breaking your system. I had more joy using Fedora. But that's my experience, I've met people which had far worse experiences using Fedora.
Have you tried MX for new users?, I've heard good things. I've used a mix of Arch, Void and Gentoo for the past 10 years so, when asked for a Distro for new people is sometimes difficult. Do you have experiences with Steam and Lutris out of the box in various distros? sometimes some 32bit libs that Steam uses couse troubles.
I haven't tried MX but I'll add it to my queue of things. I'm not really a gamer so I haven't tried Steam though I might with my next machine.
Used to use Fedora but a year or so ago switched to Ubuntu. Great drivers, auto-updates and everything just works :) So yeah, if you don't want to spend time on configuring your OS, go with Ubuntu.
Also worthy of note: Ubuntu has dropped Unity since 18.04 (so the April 2018 Long Term Support release), running gnome 3 instead.
I was going to say this exact thing.
Curious why Debian is in the first category and not the second one. My PC hardware is less than 8 years old and I still have to add the nonfree firmware to my Debian installs for graphics to work. To me that means it doesn't "just work".
Nvidia?
No, Radeon HD 6670
Just curious why you didn't put Manjaro on here. It's the easy to use arch. Ease of install is great.
My reasoning for that is I don't really know much about Manjaro and I wanted to only speak to distros I have experience with. I actually read an article about Manjaro and spun up a VM with it last night. I may play around with it and add it to the list. An easy to install Arch could be pretty appealing.
It really is. Your Linux/bsd history is almost identical to mine over about the same amount of time. I've finally settled on a desktop distro. I'd never use it for a server, but it's great to have a full desktop distro after clicking a few buttons and then have Pacman, pamac, and sure right there. It's really the best Linux experience I've had in YEARS.
Nice. Yes, pacman is one of the things I really love about Arch. It works so consistently easy. I know others have had issues with it but I've been really lucky apparently.
I would like to add, if you're looking to play games on Linux, Manjaro is your best choice. Thanks to Manjaro Hardware Settings installing the proprietary drivers for your GPU is a breeze. Plus you get all the Arch goodness, including the support if can't find a solution on the Manjaro Forum, the Arch solutions work exactly as well.
I have had, and tried a ton of distros. I have used Fedora for the longest (26, 27 and 28), tried Debian, Ubuntu and PopOS, even Kali (for... reasons). And none compares to using Manjaro, it has been a great experience so far, and the first distro that made me completely switch from Windows.
I started with debian (school stuff) and then I've discover ubuntu and pop os. Ubuntu it's pretty nice to use
I am currently using Linux mint for Android development in android studio everything works fine now. I had a lot of issues in Windows, mainly while building,but now I am happy.
Should I switch to Debian or fedora,are they even better?
If Mint is working for you now, there's not much to gain other than small differences. Mint is Debian under the hood. So you're using a different GUI over Debian now.
I used Mint for a long time and really liked it. It's very solid and looks nice to boot.
hello, I don't understand.
what do you mean by "Linux Mint is Debian under the hood"?
in today's date, you meant Linux Mint 19.2 Tina Cinnamon based on Ubuntu is configured like Debian OR Linux Mint Debian Edition 3 Cindy Cinnamon is Debian under the hood?
thank you
awaiting your reply
Ubuntu is actually based on Debian, so, Ubuntu is Debian under the hood, so, Mint is Debian under the hoodie-hood...
In other terms, a syllogism: Ubuntu is based on Debian, Mint is based on Ubuntu, so Mint is super-based on Debian :)
Yep, and you can even get LMDE which is directly based on Debian
Interesting you list Alpine as a security distro (and it is: there's sod all on it you could use as a tool for exploits...) but not as a minimal install. Everything I've seen Alpine used for the selling point has been container size.