|
|
Log in / Subscribe / Register

Distributions

The grumpy editor's Arch Linux experience

By Jonathan Corbet
April 1, 2015
The Arch Linux distribution has been on your editor's radar for a few years now. Arch is arguably not one of the mainstream distributions, but it clearly has a dedicated following and it is often mentioned at gatherings of developers. Recently, frustration with the distribution running on the desktop machine reached a point where a jump into the unknown seemed attractive; one day later, that machine was running Arch. Now, with a few weeks of experience to draw on, a report seems warranted.

Arch Linux 0.1 was released in 2002; it was a completely new distribution, built from scratch rather than being based on an existing distribution. So, naturally, it has its own ways of doing things and its own package manager; we can never have enough package managers, after all. Arch is purely community-based; there is no company sponsoring its development in any significant way.

This distribution is not for everybody; it is, instead, clearly aimed at users who know Linux relatively well and are not looking for a lot of hand-holding. There is not much in the way of helpful graphical administration tools, and there is no attempt to create a base distribution that is ready for any particular task beyond running a shell. Rather than provide a finished house, Arch consists of a pile of building materials and the tools needed to assemble them into almost any needed form. Unlike Gentoo, Arch does not (usually) require users to compile their own software, but the two distributions are similar in a number of other ways.

Installation

The Arch experience starts with installation, which is not a matter of inserting the media and answering a few simple questions. The Arch installation media, instead, boots to a shell prompt; it is then up to the user to configure networking, partition the target storage device(s), mount those partitions in the proper places, do the base system install (using the pacstrap command), configure the boot loader, and reboot. Then it's a matter of configuring the rest of the system to actually do something useful. The full installation instructions are worth a look, in that they typify the feel of Arch Linux in a number of ways: there is a fair amount of work to do, things can go wrong in a number of places, there is a great deal of flexibility, and the documentation is extensive and helpful.

The quality of Arch's documentation is worth a special mention, actually. Your editor has noticed for years that searches for a wide range of Linux-related issues often turn up pages on the Arch Linux site. The Arch community clearly puts quite a bit of time into maintaining this documentation and the result is almost invariably complete and helpful. That is a good thing, because one ends up digging into the documentation rather more often than with other distributions.

One of the final installation steps throws the user into a text editor to verify that the GRUB2 configuration file makes sense for the target system (assuming, of course, that GRUB2 was chosen as the boot loader; there are other alternatives). Your editor has never quite reached the point with GRUB2 where anything really makes sense at a first glance. In this case, the file "looked OK" but failed to boot the system. Fortunately, the Arch install media also makes a fine recovery system; once your editor was able to communicate the true location of the root partition to the bootloader, things went a lot more smoothly.

Packages

A basic Arch installation doesn't actually do much, though, so one has to go through the process of installing the packages needed to get some real work done. That meant learning the pacman package manager, but, before even that, there was the challenge of getting the wired network connection working. The networking configuration documentation is an impressive tome in its own right; the instructions for setting up a static, wired connection involve typing in two shell scripts and a systemd unit file by hand. One could install NetworkManager, Connman, or Wicd to automate this task, but that does not appear to be the Arch way; why bother with a network management daemon for a static wired connection when something simpler will do?

The package manager does most of the things that one would expect from such a tool, but its syntax isn't meant to be picked up quickly. Almost everything of interest is a variant on "pacman -S"; a bare -S will install a package, -Ss searches for a package -Syu updates all packages, etc. It is fast and functional, seemingly spending a lot less time messing around with metadata than yum or apt-get do, but it does take a little while to get started with.

One key aspect of Arch's design would appear to be a much looser coupling between packages. On many distributions, it can be dismaying to see how many seemingly unrelated packages a simple installation can drag in; that doesn't happen with Arch. If you attempt to remove Samba from a Fedora system, it will try to take the entire desktop environment with it; Samba will not be installed on an Arch system in the first place unless it has been explicitly requested, and desktop environments are happy to muddle along without it.

This aspect of Arch is pleasing in a number of ways; it reduces the amount of unused cruft on the disk and the number of mysterious processes running in the system. But it has its downside as well: programs can behave strangely if the packages they need for a specific functionality are not there. For example, your editor's first attempt to run "git gui" yielded this output:

    /usr/lib/git-core/git-gui: line 10: exec: wish: not found
    fatal: 'gui' appears to be a git command, but we were not
    able to execute it. Maybe git-gui is broken?

The relevant page in the Arch Linux documentation leads one to the answer quickly enough: "If you want to use Git's built-in GUI tools (e.g. gitk or git gui), make sure you have installed the tk package, or they will refuse to start with a cryptic error". On many other distributions, the graphical Git tools would have pulled tk in with them; on Arch, if one wants tk, one has to install it separately. In general, it seems to be necessary to spend a fair amount of time figuring out which packages are missing and filling them in; it gets a bit tiresome at times, especially when it's not clear which packages are missing.

Arch is a rolling distribution, meaning that it has no fixed release points. Instead, packages are updated when the upstream projects make their releases. These updates often come quickly: the Firefox 36.0.4 release showed up as an update one day after its release, for example. So an updated Arch system will always be running current software. That is one of the features your editor was looking for, and Arch seems to deliver nicely. Users who want a stable system where things don't change may want to look at a different distribution, though.

The package selection in Arch is broad indeed; almost anything one might want seems to be there, though one has to dip into the Arch User Repository (AUR) for much of it. The AUR is the equivalent of Ubuntu's PPA mechanism; it's a way for users to upload packages that are not part of the core repository. There is a difference, though, in that an AUR package is really just a recipe for downloading and building the program locally. By default it's a bit of a cumbersome, manual process, but tools like aurget make things easier.

Arch Linux was slow to sign its packages as a defense against tampering, but the main repository is now completely signed and signatures are checked at installation time. The story with AUR packages is a bit less clear; installing those requires trust in both the distribution system and the developer creating the package. There is a set of several dozen "trusted users" who are tasked with watching over the AUR system, but that is a small group given the thousands of packages uploaded there.

Running Arch

For a desktop system, a desktop environment was a logical place to start; the system initially didn't even have the X window system on it. The lack of a default-installed desktop does not imply a lack of desktop support, though; the list of supported desktop environments is extensive. Arch's packaging of GNOME works mostly as expected, with few surprises. The networking configuration dialog did not work — an unsurprising outcome given the absence of NetworkManager. There is also more than the usual amount of messing around required to install a minimal set of fonts. Beyond that, though, things seem to work nicely.

Your editor was especially pleased to find that the venerable xv image viewer/editor is available; few distributions carry it these days. Also nice is that, unlike some distributions, Arch has no problem with shipping potentially patent-encumbered software like codecs. So tasks like playing MP3 files, for example, just work. One interesting surprise was that Arch uses Python 3 by default. There is full support for Python 2 still, but it must be installed explicitly and Python 2 scripts that start with #!/usr/bin/python will fail to run.

Security support for Arch seems to be a bit of a hit-and-miss affair. For some vulnerabilities, like the "high priority" unzip code-execution flaw, Arch was nearly two months behind Fedora. For others, like the latest (as of this writing) OpenSSL vulnerabilities, instead, Arch was one of the first out of the gate. Others do not appear at all; from the posted alerts, for example, one would conclude that Arch has not had a kernel vulnerability since last November — an unlikely scenario. It seems that, to a fair extent, Arch is relying on its rolling package updates to just pick up security fixes as they happen.

Concluding thoughts

What is the end result? Arch Linux will be remaining on the desktop system for the foreseeable future. Now that the system is configured, stable, and productive, the time spent getting it into that state seems like a relatively small cost to pay. The desktop machine at this point is a joy to work with; it has just what is needed installed, and the distribution machinery itself almost never seems to get in the way. The system even feels faster and more responsive than it was before — though, lacking any objective measurements, your editor is more than prepared to concede that this difference might be entirely illusory.

Arch Linux is clearly a good option for its target audience: users who know Linux well, want to run up-to-date software, and are willing to put some time into setting the system up. It could also be a good choice for users who want to learn more about what is going on at all levels of the system rather than sticking with the graphical administration tools provided by the distributor. This is true for two reasons: setting up Arch forces the acquisition of a certain amount of in-depth knowledge, and the documentation makes that information relatively easy to find when the need arises. On the other hand, users who would prefer to avoid the need to acquire that knowledge are likely to be happier with a number of the available alternatives.

Arch Linux demonstrates nicely the value of the Linux ecosystem. It will never bring about the long-awaited Year Of The Linux Desktop; there are other distributions that are happy to focus on that goal. But, if those distributions were all we had, an important subset of the Linux user base would be poorly served. By focusing on users with a more technical mindset and the time to apply it, the Arch community has created a highly capable tool that can be easily adapted to a wide variety of needs.

Comments (47 posted)

Brief items

Distribution quotes of the week

My personal experience is that, when I have a difficult or complex dependency issue on a system, the *second* solution offered by aptitude is usually better than the only solution offered by apt-get (mostly because apt-get usually gives up), but the *first* solution offered by aptitude is usually awful and sometimes actually destructive. I always found that pattern strange and kind of amusing, but it's surprising how reliable "run aptitude and take the second thing it suggests" is in resolving weird dependency problems.
Russ Allbery

Got an RC bug you cannot live with?
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Fix it. Fix it now! :)

Niels Thykier on behalf of the Debian release team

Comments (none posted)

Release for CentOS Linux 7.1

CentOS Linux 7.1-1503 is available. "This merges in all base, updates, and CR (continuous release) components released in the month of March 2015. If you have been using the CR repos on your previous CentOS Linux 7 install, you already have all the components used to compose this new release." See the release notes for more information.

Full Story (comments: none)

Ubuntu 15.04 (Vivid Vervet) Final Beta released

The final 15.04 beta is available for Ubuntu Desktop, Server, Cloud, and Core products, as well as the Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu Kylin, Ubuntu Studio, Xubuntu, and Ubuntu MATE flavors. The final release is expected on April 23.

Full Story (comments: none)

Distribution News

Debian GNU/Linux

Imagination Technologies donates MIPS-based machines to Debian

Imagination Technologies has donated several MIPS-based machines for Debian development. "[T]hese include substantially faster Loongson 3A (mipsel) and Cavium Octeon II (mips) servers. The brand new machines include three Loongson LS3A-RS780E development boards, one Lemote 3A ITX and three EdgeRouter Pro 8 port machines."

Full Story (comments: none)

Debian Installer Jessie RC 2 release

A second release candidate of the Debian 8.0 "jessie" installer is available. This release has a few improvements, bug fixes, and hardware support changes. There are 75 languages supported in the release.

Full Story (comments: none)

Jessie Release Date

The Debian release team has set a target release date of April 25 for version 8.0 "jessie". "The intention is only to lift the date if something really critical pops up that is not possible to handle as an errata, or if we end up technically unable to release that weekend."

Full Story (comments: none)

Fedora

Announcing the release of Fedora 22 Alpha for AARCH64 and POWER64

Fedora 22 Alpha is available for the AARCH64 and POWER 64 secondary architectures. "We need your help to make Fedora 22 the best release yet, so please take some time to download and try out the Alpha and make sure the things that are important to you are working well. If you find a bug, please report it – every bug you uncover is a chance to improve the experience for millions of Fedora users worldwide."

Full Story (comments: none)

Newsletters and articles of interest

Distribution newsletters

Comments (none posted)

RancherOS: A Minimal OS for Docker in Production (InfoQ)

InfoQ takes a look at RancherOS. "RancherOS was designed to run Docker containers immediately on top of the kernel, namely those providing core Linux services to the users. Those services run inside (system) containers. Users can then create their own Docker (user-level) containers, as in any other Linux distro. In order to allow for isolation between system and user-level containers, two different Docker daemons are required ("system docker" is the first process started by the kernel while "user docker" runs in a special system service container created by "system docker")."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>


Copyright © 2015, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds