Author(s): Karsten Günther , Author(s): Christoph Langner

Reviews

For several years, Arch Linux [1] has enjoyed great popularity with experienced users. The Linux-from-Scratch-based system [2] relies on simple concepts and thus runs very quickly; Arch offers users convenience and a very large software pool with its iconic package manager Pacman. Because Arch uses a rolling release schedule, the software is always up to date. (See the box titled "Rolling Release.") The key disadvantage of Arch is that it isn't especially beginner friendly.

Rolling Release Because Arch and Arch derivatives have rolling releases, new program versions are continuously added to package management and not just at fixed cycles. Continuous updates are a big advantage, because you always work with the latest versions of the software installed on your system. However, rolling release updates have their problems: It is not without reason that the major distributions, such as Debian, Ubuntu, Red Hat, and SUSE reject this principle. Maintaining a rolling release in a way that prevents problems with major updates to system software is a huge and difficult task. Essential components, such as the kernel, GLib, drivers, and important libraries, are too closely interlinked. For this reason, you need to be prepared to tolerate some minor issues with uncustomized versions. For example, the current ZFS module requires a slightly newer version of the kernel than the one currently installed. You could solve this problem at installation time by customizing the PKGBUILD file and changing the version numbers that were changed. Of course, this kind of troubleshooting is wholly inconsistent with the "user-friendly" image of Manjaro or Antergos.

The quest for a friendlier Linux with the benefits of Arch has led to a new generation of Arch-derivative distros. A pair of popular Arch-based systems are Manjaro [3] (pronounced as in "Kilimanjaro") and Antergos [4] (formerly Cinnarch).

Both Antergos and Manjaro offer their own graphical installation tools and have their own graphical package managers. Like all Arch-based distributions, they provide standard desktops such as Gnome, KDE, and LXDE (Figure 1).

Figure 1: You have the choice of KDE, Xfce, and Openbox on Manjaro.

Simple Arch

Manjaro builds on Arch Linux; it offers some adaptations, such as its own software repository and its own tools; below the surface, however, Manjaro is a lot like Arch. For example, you can also install software from the Arch user repository on Manjaro. Antergos is also very similar; in fact, Antergos retrieves its software directly from the Arch repositories.

Manjaro and Antergos focus on the user experience. You'll find evidence of this user emphasis in the graphical installation routines, the choice of desktop environments, the graphical package manager, and the preinstalled multimedia codecs. Therefore, Manjaro, in particular, is perfect for an introduction to the Arch Linux universe. If you want the real Arch Linux later on, you can convert a Manjaro system into a classic Arch [5].

Both Manjaro and Antergos give the user a choice of several kernels – the current kernel, often a preview of the next version, and sometimes older, very stable versions. This choice of kernels thus offers the latest features and drivers for current hardware or, alternatively, just great stability and continuity.

Manjaro boasts particularly good hardware detection based on mhwd – a self-developed command (see "Hardware Detection with Mhwd"). Mhwd detects the hardware installed on your computer and configures it at run time. The program is still in development, though, so not everything works correctly as yet. The Manjaro wiki [6] describes this command in detail.

Hardware Detection with Mhwd The mhwd command is controlled by several options. For example, -h displays a short help, and --pci or --usb restricts output to the appropriate devices. The most important options are -lh (show hardware), -la (display drivers), and -l (display configurations). The -d switch shows detailed information. In addition to the actual mhwd command, there are several variants of this program. The most important of these is mhwd-kernel , which lets you manage the kernels that Manjaro provides. Using the -l option shows the available kernels, -li shows the kernels on the system, -i installs a new kernel, and - r removes a kernel. The tool ignores kernels that come from the Arch User Repository (AUR). You use the package manager to manage these.

Based on experience with installations on three different machines, hardware detection on Manjaro is of a similar standard as on Ubuntu: Almost everything is correctly detected, and much is correctly configured automatically. In some cases, older, not particularly well supported hardware needs some manual work and experimentation. Manjaro's hardware detection may not be better than Ubuntu's, but it is not significantly worse.

In contrast to Antergos, Manjaro uses its own repositories, to which new software is added only after in-house testing. This procedure ensures high system stability of Ubuntu caliber, but this also delays the delivery of critical updates. You can additionally retrieve missing or updated software directly from the Arch Linux repositories. Nevertheless, this approach has caused some criticism to be levied at Manjaro, which fully forks the Arch packages for only very minor changes.

The Arch User Repository (AUR) entices users with many current packages and new developments, but installing programs from this source also entails some risks. AUR provides considerably more software than Manjaro or Antergos, but it might not be so well tested. If you install software from AUR, scripts automatically build from the source. In most cases, this works without any problems, but we will return to this subject in the course of this article.

Note that AUR provides PKGBUILD scripts that let you install software, mostly from source code, that is not in the official Arch repositories. This software include applications that are not included in the Arch repositories because of their licensing or recent programs that have not yet made their way into the official repositories.

For many packages, you will see several different versions. For example, the current stable version of GIMP 2.8.10 is available, as well as the developer version 2.9.1 (installing this can involve some extra mileage). Also, some older versions are still included in AUR. This situation makes AUR less clear to use than the Manjaro repositories. You will not find any developer versions there.

Installation

While Antergos only offers an install image [7] with the Gnome shell as the desktop environment (Figure 2), you have different options in Manjaro. Depending on which desktop you prefer, you can download images for the Xfce, Openbox, or KDE versions [8], which are only suitable for DVDs because of their size.

Figure 2: Antergos completely relies on the Gnome shell as a desktop environment.

If you want to avoid burning a DVD, then you can copy the downloaded image to a plugged-in USB stick mounted as /dev/sdx by typing

dd bs=4M if=manjaro*.iso of=/dev/sdx

For details, see the Manjaro Forum [9] or use apps like the USB creator provided by Ubuntu.

Thanks to the graphical installation routines by Manjaro (Figure 3) and Antergos, manually installing these Arch derivatives is quite easy: The setup program is similar in many parts to Ubuntu or other established distros, so there is no need for detailed explanations here; however, the options of these installers are limited.

Figure 3: Manjaro offers a graphical installation routine, as does Antergos.

Installing with the text-based setup tool is somewhat rustic but also much more detailed. Manjaro offers two variants of this: The testing installer supports computers with UEFI BIOS and SSD-optimized Btrfs; the stable installer, which is reminiscent of Debian (Figure 4), is better tested, and therefore more recommended.

Figure 4: Two different versions of the text-based installation routine are offered.

Even without in-depth technical knowledge, the installation works without a graphical environment. Caution is, as always, advised when partitioning the hard disk: Delete the incorrect partition, and your data will be lost. Alternatively, you can partition your hard drives with GParted or the GParted Live CD.

Package Managers

The package system plays a central role within a distribution because it ensures a smooth install – which is relatively easy – and replaces installed packages in case of updates – much more complex. Arch Linux relies on a special package format comparable to that of Debian or Ubuntu. It is based on XZ compressed TAR archives, supplemented by some control files [10].

If you are migrating from a different distribution, commands like apt-get install , yum search , or zypper dup are probably pretty familiar. You can see the main Pacman [11] features compared with those from apt-get or dpkg in Table 1. In the Arch wiki, you will also find a very well made compilation under the Pacman Rosetta [12] entry, which translates each call to the Fedora, SUSE, or Gentoo syntax.

Table 1 Pacman Overview Pacman Command Debian/Ubuntu Counterpart Function Installation and Updates pacman -Syu apt-get update && apt-get dist-upgrade Update package sources and install updates pacman -S <package> apt-get install Install or update packages pacman -Ss <package> apt-cache search Find installable packages pacman -Sg Show package groups pacman -Sg <packagegroup> Display the content of a package group pacman -Si <package> apt-cache show Display information for non-installed packages pacman -Sw <package> apt-get --download-only Download without installing pacman -Sy apt-get update Update package database pacman -Syy Rebuild package database Removing Packages pacman -R <package> apt-get remove Uninstall package pacman -Rd <package> Remove package without taking dependencies into consideration pacman -Rs <package> Remove package with dependencies pacman -Rss <package> Remove package with all dependencies (and their dependencies) Queries pacman -Q dpkg --get-selections Display installed packages with version numbers pacman -Qs <package> aptitude search '~i(~nexpr|~dexpr) Find installed package pacman -Qi <package> dpkg -s Display information on installed packages pacman -Ql <package> dpkg -L Display installed package files pacman -Qo </Path/to/file> dpkg -S Display package to which the file belongs pacman -Qu apt-get upgrade Find updates for installed packages Other Actions pacman -Qk debsums Check installed packages pacman -Qdt Display orphaned packages pacman -Scc apt-get clean Delete package cache ( /var/cache/pacman/pkg/ ) pacman -Sc apt-get autoclean Delete obsolete packages pacman -U <packagefile> dpkg -i && apt-get install -f Install local package pacman-optimize Optimize package database * The most important options, such as -S or -Syu, can be displayed by typing yaourt or pacaur.

All Arch Linux-based distributions rely on the same package manager used by the classic Arch Linux: Pacman. In terms of function, it corresponds to dpkg for Debian and Ubuntu and is thus predominantly used for internal tasks. However, it also assumes a further role by taking over many of the functions of apt-get .

Manjaro and Antergos provide simple graphical front ends as Pacman add-ons. Manjaro relies on Pamac Manager here (Figure 5), whereas Antergos uses PacmanXG (Figure 6). You also have the yaourt command-line utility, which we will look at in more detail later on and is designed especially for installing software from AUR. Despite all the advantages of the front ends, users will not escape the pacman command in some cases. A number of special actions are only possible with this program.

Figure 5: In contrast to Antergos, Manjaro relies on the Pamac Manager – and in-house development.

Figure 6: Antergos simplifies package management, otherwise based on text and commands, with PacmanXG.

To update the entire system, you will probably want to use pacman. The easiest way to do this is with pacman -Syyu . The pamac-manager tool automatically does something similar at boot time, but it fails if it finds dependencies that it cannot resolve. Using pacman, you perform the update in several steps and initially skip the problematic packages. Once the updates for the missing packages are complete, you can then catch up.