13 Jul 2008

Linux guru? then switch to Arch Linux!

It’s official, I’ve ditched Debian (and Ubuntu) completely. All my computers are now running Arch Linux.

Why did I switch?

It’s more stable, faster, updated more frequently and more customisable.

Let me explain some of the main differences.

First off, Arch is intended to be simple. Not simple meaning easy, but simple meaning clean.

In Ubuntu, a fresh install leaves you with video drivers for intel, nvidia, ati (the OSS variants) etc..

With wireless drivers for broadcom, intel, atheros etc..

Additional to webcam drivers, scanners, printers etc..

But, I happen to know what video card I have, the wireless card I have, the printer I have, and don’t need a stupid scanner. So, why have all these unnecessary modules and daemons loaded up. They’re only using up resources (yes, I know, memory is cheap, but there are other side effects).

In Arch Linux, after installing (in which you choose which modules and daemons are loaded on boot), you’re given a blank terminal screen. You log in as root, and have to create a user with adduser, install Xorg, gnome, firefox, etc.. (

Basically, you have to choose everything. It’s not that hard though, As installing ‘gnome’ and ‘gnome-extra’ will include all the basic stuff like epiphany, gedit, the gnome games etc.. You don’t have to individually install every little package.

This brings me to the package manager. I’ve long said that APT (the package manager of Debian and its derivatives) is fantastic. I’ve always wondered how people manage with the awfully slow yast and RPM junk. OpenSuse and Fedora are so slow by comparison. I still stand by this, but there’s now something even more fantastic than APT. It’s called Pacman. It works very similarly to apt-get in debian, but it’s actually faster!

I’ll compare doing a complete system update with Pacman vs APT

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade


sudo pacman -Syu

The ‘S’ is to sync, the ‘y’ is to update repositories, and the ‘u’ is to upgrade the system with the newly sync’d repositories.

So, to install firefox, you’d just type

sudo pacman -S firefox

So, it’s pretty easy to switch over. If you fiddle about a bit, you can also make bash-completion work. There is no GUI available for Pacman by default (there are unofficial programs that do it) but this doesn’t matter, as learning a few terminal commands is really pretty easy.

Another thing I like is the simplicity of the repositories. They have the following:

Core: all the core stuff to getting a system working, like the Kernel, and a few other basics.

Extra: extra stuff like firefox, etc..

Community: with stuff done by the community (obviously not officially supported)

Then there are some testing and unstable repo’s if you’re so inclined. (and you can also easily make you own repository).

Pacman is designed to be simple, so it uses wget libdownload to download files (which is nice, as this gives a nice progress bar while downloading), but, it is modular, so you can change it to use a download manager (such as wget or aria2 etc..) that will thread the downloading across different mirrors.

It just seems genius to reuse as much freely available code as possible. Why rewrite your own downloading program to update repositories when extremely stable download managers already exist. Since Pacman uses the system available libdownload, this means that if the libdownload devs provide an update, it directly helps improve Pacman (who doesn’t like free bug fixes!)

By minimising unneeded modules and Daemons I’m able to boot Arch Linux in about 17 seconds. Isn’t that amazing? That’s about half of what ubuntu used to take. (Don’t even get me started on vista, which I’ve seen take 2 mins to boot up, and just as much to shutdown).

But, The main reason I switched was for an entirely different reason.

Arch Linux uses a rolling release system, with new packages provided daily.

This means that there are no deadlines. When a new package gets released, it is compiled by a dev, put in the testing repo, and if no problems are found, moved to a stable repo within a few days (the amount of days it’s in the testing repo depends on how ‘risky’ it is. i.e. cups would go straight through, but grub, or a kernel would likely take longer).

So, what’s the beauty of this? Well, Most (almost all) stable linux distros do a regular release every 6-12 months, with no updates in between (except bug fixing and security fixes). That means you’ll get updated from firefox 2.0.14 to firefox 2.0.15, and 2.0.16 etc.., but they’ll never give you a new version like firefox 3. To do this, they set a deadline (or freeze, as they call it) which means, they’ll accept updates until a certain day (usually ranging from a few weeks, to a little more (again, depending on the risk). So, if Ubuntu wants to release 8.10 at the end of October 2008, they’ll include whatever package is the latest as of a couple of months before (dates for that can be found here. This was always really, really annoying for me. To know that you aren’t going to get any updates for 6 whole months. Even if there’s a new program that has tons of amazing new features.

In particular, I’ll be watching OpenOffice 3’s release. It’s going to be good. Very good. The problem is that they’re planning on releasing it in Sept of this year. Just 7 weeks before Ubuntu 8.10. If everything goes according to plan, it’ll make the ‘freeze’ but, if it gets delayed by a month, Ubuntu users will essentially have to wait 7 months till Ubuntu 9.04 comes out to use it.

Annoying? YES!

So, with Arch Linux, I’ll probably get OpenOffice 3 a few days after it’s released (whenever that is).

This isn’t a big deal for some stuff, but, for apps that get updated quite frequently, like pidgin, 6 or 7 months can be upto 4 releases out of date.

Additional to that, there are some things that really NEED to be updated. For example, in the case of pidgin, it is an unofficial IM client for Google Talk, Yahoo, MSN, ICQ etc..

Sometimes some of those protocols change (like it did recently with both yahoo and ICQ) This means that pidgin has to change a few things, and release an update, or you’ll no longer be able to sign in. Since generally this update would violate the ‘freeze,’ those updates aren’t included until the distros next release, making the program pretty useless.

Yes, Arch is a little tricky to get right, but there is some AMAZING documentation available, that

walk you through, step-by-step, what you should do, and (more importantly) why you should do it a certain way.

There are beginner's guides, more advanced guides, and really specific info on configuring printers, graphics cards, wireless, sound etc..

What’s the last bit of great news?

You’ll never need to reinstall again. You just have to run ‘sudo pacman -Syu’ every now and then, and you’ll automatically be updated to the latest version. It only takes a couple of hours to get everything up, and then you’ll never need to do it again.

(for the observant among you, I’m an alpha tester for the dropbox linux client.)

Highly recommended!

As a word of caution, I’d recommend that people consider using Arch only after they’ve used a more user friendly distro for a while (preferably a year or more). Sure, the wiki is good enough that a n00b could plod along through it, but most of the benefits of Arch would not be apparent to them anyway.

Oh, as a side-note, Arch always (I believe) packages stuff with no (or minimal) patches. This means you get the official gnome release, without the changed logo’s, and without anything else changed. (just the mandatory included wallpapers). The benefit of this? There’s less chance to screw something up. Ubuntu and Debian devs have made a few disastrous mistakes by making changes to the source code (the obvious openssl problem). I mean, seriously, the developer of the app knows his own app better than some random ubuntu dev.

p.s Just as I finished writing this, I noticed Linus released 2.6.26! Thanks to arch, I’ll be using that pretty soon 🙂