Which Distro Do You Run? Why? 7
At a LUG meeting recently, someone asked which distributions I used and why. My choice of distro is not random by any means. It was a carefully thought out reason, which fits my requirements.
Which Linux distribution?
Picking a Linux distribution can be a trivial thing since it is very easy to switch between them. Even switching between different package managers like Debian-APT to Redhat RPM really is not that big of a deal anymore. There are many APT-to-RPM cheat-sheets available on the internet.
So my answer to the 1st question – which distros do I use is – Ubuntu LTS.
Why?
The answer to the 2nd question for – why? is a little more complicated.
- First, I prefer APT-based distributions because I ran RPM for a few years and was in RPM-Hell for much of that time. What is RPM-Hell? It is when the package manager becomes corrupted and cannot be used for any updates to the system. Once the system was hacked because of the RPM-Hell situation. I’d been unable to patch for a few months, yet kept the system on the internet. Burn me once, shame on you …. I’ll avoid RPM systems going forward for this reason, even though I’ve heard they don’t have the same problems anymore.
- Second, I wanted a distribution that was widely used, extremely stable, but not too far behind on packages. To me, that left Ubuntu and Slackware. Arch is too unstable and not widely used. Debian Stable was too far behind on packages and Debian Testing was too unstable. Slackware, which I ran for a number of years, is more like Arch and the package management basically sucks. Setting up a system with commonly needed stuff takes hours. Ubuntu was the answer for me.
- Third, Long Term Support? Why limit myself to a distro every 2 years? Simple. When I install a system, I’d like to use it for a few years. Non-LTS Ubuntu releases get between 6 months and 12 months of support. They are meant to be used until the next release only – usually just 6 months. When running servers, swapping out the OS becomes a huge issue. Heck, swapping out the OS even after 2 years is a hassle to be avoided. For my needs, Ubuntu LTS support for 5 years provides the best mix of stability AND long term patches. It lets me decide when to migrate the OS since Ubuntu LTS releases happen every April of even years. For example, 8.04, 10.04, 12.04 and there will be another LTS release in April of 2014 … 14.04. Count on it. I do.
I’ve played with non-LTS releases from Ubuntu a few times. For a short-term desktop, that can be fine, but for a server, forget it. I won’t even consider it anymore. I’ve been burned by crap releases from Canonical where trying something new was more important than stability. I need stability more than anything else. Check out my other article here Why Ubuntu Users Should Run an LTS Release to learn more.
Ubuntu? Srsly?
Why use Ubuntu at all? Certainly Canonical has made choices that are anti-user recently, right? Well, that is true, but Canonical hasn’t changed the underlying packages for the OS. They still follow Debian enough that the base OS is great. Swapping out an entire OS just for a GUI seems stupid to me. Sorry to all the Mint people. I run servers, not desktops. Desktop users have very different requirements from me, but I can easily have whatever desktop installed and running on Ubuntu in about 5 minutes. Mint is also slightly illegal in my country, so there is that concern too.
My desktop machine(s) are Ubuntu Server with LXDE loaded. When I remote in using NX from a different continent, I use fvwm (an old school Window Manager) and no DE (Desktop Environment) at all. Much of what a DE provides, I find annoying anyway. I’ve been using the same ~/.fvwmrc file since around 1995 with very few changes. Fvwm is an amazing window manager – AMAZING. It provided virtual desktops and transparent layers years before anyone else did. At the NASA lab where I learned about it, everyone there used it regardless of OS being run – SunOS, Solaris, AIX, HP-UX, Irix, Linux – OSF, Digital UNIX – it didn’t matter, we all used fvwm. Check out a few screen shots here to be impressed: http://www.fvwm.org/screenshots/desktops/index.php?num=50 You can be as simple or complex as you wish with fvwm.
To load a new desktop environment on any APT-based system, it is trivial.
$ sudo apt-get install lxde
That’s it. Now at the GUI login screen, there is a way to select different DE/WMs – a list should be displayed. Pick it. Yes, you have to logout and login, but there isn’t any need to restart the OS. All the dependencies are pulled in automatically. With LXDE, almost all the dependencies already exist on an Ubuntu install already. Want xfce instead? You can figure out what to change in that command, I hope. Want KDE, Gnome3, any other DE? I’m sure you can figure it out. No need to replace an entire OS just to change the GUI – this isn’t OSX or Windows-whatever. You can even load Unity if you like, cough.
Servers and Lite-Desktops
Also, I don’t only use Ubuntu, though it is used on 30+ servers and 3 desktops. I use TinyCore inside a VM for online banking. It is very fast and so limited in capabilities that I can’t imagine someone finding a hackable back door. It runs Firefox and Chromium great and starts almost instantly. Everything we want from a banking OS – small, fast, hard to hack, limited other uses. Perfect. I’ve liked TinyCore for a few years
- Minimalistic Linux – TinyCore 3
- What’s in my VirtualBox List?
- Learning Linux-Easy to Hard
My Mom ran Lubuntu (my choice, not hers) for the last 3 years after her Windows XP system was hacked. Originally, her PC was a Pentium4, but it was upgraded to a Core i7 machine with a workstation-class GPU last fall. She didn’t want any more cheese, so Lubuntu stayed. Sadly, my Mom died earlier this month, so we’ve lost another Linux user.
Conclusion
Ok, there you have it, my reasons for picking Ubuntu LTS releases.
You probably have different reasons and might have made a different choice. I don’t think there are any wrong answers.
So, which distribution(s)s do you use and why?
For servers I use either Debian Stable or Ubuntu server LTS, depending on my mood. I’ve played around with Scientific Linux off and on, but not put it in any real environment yet.
For desktop distros, I’ve not really been tied to any. I’ve never been fond of GNOME or Xfce personally. In the past I’ve been pleased with Lubuntu, OpenSuse, and Mint, content with Kubuntu, and drifting somewhere in between with Arch depending on the day of the week. Right now on my main PC I have Windows 7 Pro as my default OS (dual boot with Arch). Not really for any technical reason right now, but just out of inertia from when I was playing games.
I was pretty well put off by the whole Mir fiasco, though I haven’t used Ubuntu Desktop in some time due to neither being a fan of gnome or Unity. While it is easy to switch DEs, some distros just do a better job at making a DE feel like a first-class citizen. KDE on ubuntu hasn’t felt first-class in some time (at least, not to me), and KDE is my preferred DE.
TinyCore on a VM is a really nice idea!
I’ll have to disagree with you on Arch being unstable. Sure, it takes a little more maintenance and it’s not as easy as Ubuntu to set up, but with Arch you only get what you want, which cannot be said about Ubuntu, Mint, etc. And pacman is the best package manager out there, hands down.
A question about Ubuntu Server: where does it differ from the other editions? I know it’s not just a minimal/clean install without DEs and such, but what does it ship with?
Sorry to hear about your mother.
TinyCore rocks! for what it does.
I tried Arch for a week last year. The install took me back to Slackware installs. Everything had to be selected, configured, tweaked. It just wasn’t worth my time. Plus the entire rolling-release bothers me. Things break too often. These days, I’m an end-user, not a developer and tester. Arch was just too much time. It didn’t like that every Arch server could have different packages and that I’d need to be on-my-toes to refuse updates carefully – or risk system stability. For a company server, I just don’t see the reason to ever trust Arch. Nothing against the design philosophy at all, it is more suited for developers than systems admins, that’s all.
In my younger days as a software developer, I would have killed to have a distro like Arch!
With larger distros, like Ubuntu, I can easily remove the items I don’t want.
$ sudo apt-get purge nano
is an example – about the first thing I do on every Linux machine here – even before I tweak the sudoers, /etc/hosts, or even my ~/.bashrc files.
Ubuntu Server has different installation options and definitely do not come with any GUI at all. During the install, it is possible to select a number of different, yet common, server setups. LAMP stack, file/print, virtualization host, MySQL or just the ssh-server. Even if I’m setting up file/print, I only start with the ssh-server, then I use Ansible to configure the base OS like I need it.
My Ansible-fu is weak, but getting stronger. Eventually, I’ll be able to use Ansible to bring up every VM/physical server here with all the programs and settings desired from almost a bare install. THAT will be cool. Best of all, it will wipe all the crap that I don’t want off too. ;)
When a total install takes 15 minutes and wiping crap off that I don’t want takes another 5, that is still 10x quicker than the initial Arch install and tweaking for me. It is a matter of efficiency.
Plus, I like APT.
There are times when the bloat of Ubuntu Server gets me down. I have a low power i386 machine here that I’d like to use for a NAS or router. It only has 512MB of RAM and 512MB of disk. It runs Ubuntu Server from the alternate CD, but there isn’t enough storage for an install. I tried to get pfSense working on it, but it would never boot post-install for some unknown reason. I’ve deployed pfSense in the field successfully – amazing router software. I looked at Debian-minimal for this hardware, but priorities changed and I got sidetracked. It has been a few years since that time. I see that old 386 (12W) machine almost every day and want to use it for something. OTOH, there are 2 Core 2 Duos and a Core i7 laying around here unused. Making some use of Mom’s old Core i7 is a priority. That box should be faster than all the other machines here, by far.
I knew there would be interesting responses here. Great answers guys!
Forgot to check out if you replied, thanks for the answers!
I agree, for servers I wouldn’t pick Arch either. But when it comes to my netbook and desktop, I can’t really spend more than a week with any distro other than Arch. I absolutely love pacman! Sometimes it’s a pain in the ass to tweak everything, but it’s great to know everything is just the way you want.
What got me confused about Ubuntu Server is the fact that you use it on your desktops (and possibly your laptops), and the ‘Server’ name tag really makes me think there’s something more to it than the common server setups you mentioned or meta-packages.
Why don’t you opt for a clean Ubuntu install using the alternate CD or the mini ISO (which has around 30Mb and requires an internet connection to download everything), since both of them let you choose exactly what you want in it, and nothing else?
And since you’re worried about stability, why not Wheezy? It’s solid as a rock. Is it because it’s rolling?
Why not run Wheezy? Old packages. The last time we had to wait for a stable Debian, I think it was 6+ yrs between releases. That’s my feeling – probably not the truth. I know there’s a way to include newer packages, by pointing to “Testing”, but that defeats the purpose for a stable release. I did run a Debian desktop install about a year ago. Lots of things were just wrong. To avoid proprietary software, they rebranded lots of commonly used tools … for what appeared to be no reason. There was probably a very subtle reason that I missed.
Why not use the alternate Ubuntu installer? We all have different levels of bloat that we will tolerate. It is a trade-off for convenience. I like using the server version on my daily driver – networking works a specific way, nginx works a specific way, things are where they should be (or were I’m used to them being). Enough commonly used tools are installed, but not too many. Trade-offs.
For me, it is easier to remove 20 things than to add 150.
Ubuntu Server is slightly different from desktops. No network manager – THANK GOD!!!!!! Plus, I don’t want anything that uses mono in any way. Removing Mono on current Ubuntu desktops causes all sorts of – it will never work – warnings. According to Canonical, the kernel used on both server and desktop are identical since 12.04. Hopefully, the network stacks are tuned differently. l)
John, you’ve convinced me to give Ubuntu Server a shot, since I’m trying to give a new life to an old laptop. Despite some issues with the installation (USB stick unresolved issues), everything else is okay.
What do you usually trim off of a clean Ubuntu Server install?
I shouldn’t have to convince anyone to use Ubuntu Server. The stability and features ought to get you to WANT to use it. This is your decision, not mine.
First, I only install the ssh-server during setup. Never anything else.
Second, I push my ssh keys to the box.
Third, I remove nano. Can’t stand that editor. This step is actually inside the next one now …
Fourth, I point Ansible at the machine to patch, install ~10 packages, ~/.bash_aliases, and a few other settings for internal apt-cache, internal ntp server, email aliases, hosts, logwatch, sudoers, remove remote root, install backup user + script, and enable the firewall … you get the idea.
It is enough stuff and details that I don’t want to do it manually, but not so much that any huge orchestration is needed. I like knowing that rerunning the same script puts everything back. As I build the server, I try to put everything into a hostname-specific ansible task and make a list of the config files changed over the setup process to be added to Ansible for ownership. This really is not all that hard. The end goal is to have a box that I can rebuild from nothing in a month with just the data being backed up. That’s the goal. NONE of my boxes are to that stage yet, through automation. I can restore from backups, but I really want to get where doing it with data and Ansible works. Deploying 5 identical servers in this way is easier than restoring 5 boxes from a single backup. There are many other scenarios where building a box automatically can pay off too.