Manjaro auf dem Raspberry Pi 4: Vorstellung, Test, Performance und Einstieg in GNU/Arch Linux sowie Rolling Releases

Als Video ansehen
Bereitgestellt über YouTube

Manjaro auf dem Raspberry Pi 4: Vorstellung, Test, Performance und Einstieg in GNU/Arch Linux sowie Rolling Releases

Manjaro ist eine seit 2011 existierende Linux-Distribution, die auf Arch Linux aufbaut. Das Manjaro ARM Team unterstützt mittlerweile auch den Raspberry Pi. In diesem Beitrag erfährst du, wie man Manjaro auf einem Raspberry Pi 4 installiert. Außerdem werden wir die minimale Installation ohne grafische Oberfläche anschauen und einen Vergleich mit anderen gängigen Betriebssystemen wie dem Raspberry Pi OS ziehen.

Was ist Manjaro für eine GNU/Linux Distribution?

Manjaro stammt aus dem deutschsprachigen Raum, der Hauptsitz befindet sich in München. Schon das ist eine Besonderheit: Die Liste der GNU/Linux Distributionen aus Deutschland ist überschaubar. Wirklich verbreitet sind von diesen (derzeit) 21 nur OpenSUSE und eben Manjaro. Als Basis dient Arch Linux. 2001 gegründet, setzt Arch Linux auf Rolling Releases: Es gibt keine festen neuen Betriebssystemversionen, wie bei Debian. Stattdessen werden alle Pakete einzeln und kontinuierlich aktualisiert. Größere Upgrades oder Neuinstallation entfallen dadurch.

Außerdem setzt Arch auf das KISS (Keep it simple, stupid = Einfach) Prinzip. Wobei mit Einfachheit nicht ein leichter Einstieg gemeint ist, sondern unnötige Ergänzungen oder Veränderungen im Bezug auf die Software: Man möchte die von Entwicklern veröffentlichten Programme so wenig wie möglich verändern, damit sie unter Arch Linux funktionieren. Das heißt beispielsweise keine eigenen Patche.

Die Distribution gilt daher als nicht übermäßig stabil. Es ist durchaus nicht ungewöhnlich, dass nach Aktualisierungen von Paketen Probleme auftreten. Arch Linux richtet sich an fortgeschrittene Anwender, die sich tief genug mit dem System auskennen, um mögliche Probleme zu lösen – und bestenfalls vor Aktualisierungen die Änderungen lesen, um dem vorzubeugen. Einen grafischen Installationsassistenten gibt es nicht.

Manjaro setzt den Fokus auf ein freies, benutzerfreundliches System, welches sowohl für Anfänger als auch Fortgeschrittene geeignet ist. Um das zu erreichen, spiegelt Manjaro die Paketquellen von Arch Linux: Aktualisierungen werden gründlicher getestet und erscheinen einige Wochen später, sind dafür aber stabiler.

Warum Manjaro auf dem Raspberry Pi?

Dadurch bietet Manjaro wesentlich aktuellere Pakete, als man sie unter Debian und dem Raspberry Pi OS findet. Denn dort erscheint alle zwei Jahre eine Hauptversion. Die Pakete in einer Hauptversion erhalten keine größeren Aktualisierungen, sondern nur Sicherheitsupdates und Fehlerkorrekturen. Wer etwa neue Funktionen möchte, muss daher auf das nächste Release (z.B. Rasberry Pi OS 11/12) warten – oder alternativen einsetzen. Etwa Docker-Container oder auf eigene Gefahr Paketquellen von Drittanbietern.

Drittanbieter-Paketquellen sind für Manjaro nur selten nötig, da es von der Basis Arch dafür eine Plattform gibt: Das AUR (Arch User Repository). Es enthält PKGBUILD-Dateien, mit denen eine Software heruntergeladen, kompiliert und über den Paketmanager Pacman installiert wird. Durch die Gemeinschaft stehen derzeit rund 84.000 Pakete zur Verfügung. Viele davon werden aktiv gepflegt, sodass man neue Versionen recht schnell erhält. Da diese von normalen Nutzern gepflegt werden, ist aus Sicherheitsgründen eine Prüfung der PKGBUILD-Dateien zu empfehlen.

In den offiziellen Paketquellen befinden sich derzeit rund 11.600 Pakete – zum Vergleich: Beim Raspberry Pi OS etwa 60.000.

$ pacman -Sl | wc -l
11565

# Zum Vergleich das Raspberry Pi OS 11
$ apt-cache pkgnames | wc -l
59377

Zusammen mit dem AUR hat man theoretisch Zugriff auf rund 95.500 Pakete. Die unterstützten Architekturen variieren jedoch je nach Paket, sodass nicht alle auf ARM-Geräten wie dem Raspberry Pi lauffähig sind. Speziell für ARM werden bisher wenige Pakete entwickelt. Im Zweifel muss man daher testen, ob diese funktionieren bzw. ggf. Anpassungen vornehmen.

Installation von Manjaro auf dem Raspberry Pi 4

Im Downloadbereich scrollt ihr zu Manjaro ARM Team und wählt in der umfangreichen Liste von unterstützten Geräten den Raspberry Pi 4 aus. Darunter öffnen sich die verfügbaren Editionen, die sich in der Desktopumgebung unterscheiden. Diese werde ich in einem eigenen Beitrag noch näher anschauen, an dieser Stelle liegt der Schwerpunkt auf der Minimal Edition für Server. Der linke Downloadknopf (Wolke) führt zum Download per Torrent, mithilfe der CD daneben wird der HTTP-Download im Browser gestartet.

Die .img.xz Datei lässt sich per Balena Etcher auf die Karte überspielen. Oder alternativ im Raspberry Imager über den letzten Eintrag „Eigenes Image“. Bei Nutzung des Imagers solltet ihr die Erweiterten Optionen zur Anpassung (Zahnrad) deaktivieren – sie sind nur für das Raspberry Pi OS ausgelegt. Unter anderen Distributionen funktionieren die Optionen in den meisten Fällen nicht bzw. können teilweise sogar Probleme verursachen. Sowohl der Imager als auch Etcher entpacken das XZ-Archiv automatisch.

Für den ersten Start schließt einen Bildschirm mit Tastatur an den Pi an, um die Einrichtung vornehmen zu können. Der erste Schritt fragt nach dem Tastaturlayout, in Deutschland wäre das de. Tipp: Wenn ihr auf die „d“ Taste tippt, springt die Liste automatisch zum ersten Eintrag – dies spart langwieriges Scrollen mit den Pfeiltasten. Zur Bestätigung [Enter] Drücken oder mit der [Tab] Taste zu [Ok] wechseln, wobei letzteres nicht zwingend notwendig ist, nachdem eine Auswahl getroffen wurde.

Es folgt der Benutzername für die SSH-Anmeldung. Ein Standard-Konto wird nicht angelegt, ihr könnt diesen frei benennen. Optional lässt sich dieses Konto in zusätzlichen Gruppen aufnehmen. In den meisten Fällen wird dies wohl nicht benötigt, dann lässt man das Feld einfach leer und bestätigt mit [Enter].

Unter Linux gibt es neben dem Benutzername zur Anmeldung auch einen Anzeigename. Das kann euer Benutzername mit korrekter Großbeschreibung sein oder der volle Name. Ist eher ein optisches Thema, welches ohne grafische Oberfläche keine Relevanz hat. Allerdings im Assistent von Manjaro ein Pflichtfeld.

Aus Sicherheitsgründen wird dieses neue Konto mit einem Passwort geschützt. Die Zeichen sind (anders als unter GNU/Linux meist üblich) nicht unsichtbar, sondern mit Sternen maskiert. Im nächsten Schritt muss dieses Passwort erneut eingegeben werden, um Tippfehler auszuschließen, die euch vom System aussperren würden.

Danach fragt der Assistent nach einem zweiten Kennwort, dem Root Password. Es ist für das gleichnamige Konto gedacht, welches unter GNU/Linux standardmäßig als Administratorkonto mit vollwertigen, uneingeschränkten Rechten erstellt wird. Auch dies muss zweimal eingegeben werden.

Weiter geht es mit der Lokalisierung, zunächst die Zeitzone. Mit „E“ müsst ihr nur wenige Einträge per Pfeiltaste nach unten scrollen, um zu Europe/Berlin zu gelangen.

Bei Sprache und Zeichensatz navigiert ihr zu „d“ für de_DE.UTF-8:

Schlussendlich folgt noch der Hostname. Darüber ist euer Pi per SSH mit den meisten Routern erreichbar, da deren DHCP-Server automatisch einen DNS-Eintrag anlegt. Es ist daher sinnvoll, diesen abzufragen. Ich benenne meinen beispielhaft manjaropi:

Nun werden alle Angaben noch einmal aufgelistet. Sollte etwas nicht passen, könnt ihr mit der [Tab] Taste auf No und dann [Enter] gehen, um Korrekturen vorzunehmen.

Nach dem Bestätigen mit Yes setzt der Assistent diese Einstellungen auf eurem Pi. Schlussendlich vergrößert er noch die Wurzel-Partition auf die Größe eurer Speicherkarte bzw. SSD, damit der gesamte Platz nutzbar ist. Dies dauert einige Minuten.

Anschließend startet euer Pi selbstständig neu und bootet in das frisch installierte Manjaro:

Da der OpenSSH-Server automatisch vorinstalliert ist, könnt ihr nun über den Hostname (oder die IP) euch auf den Pi verbinden. Alternativ ist natürlich auch eine Anmeldung direkt an Gerät möglich. In beiden Fällen erfolgt der Login über den soeben erstellten Benutzer.

Leistung und Ressourcen

Frisch installiert mit eingespielten Aktualisierungen belegt die minimale Edition von Manjaro 1,5 GB Speicherplatz – etwas mehr als die ca. 1,2 GB des Raspberry Pi OS. Schlank kann man die Distribution damit keineswegs bezeichnen: DietPi belegt beispielsweise nur 0,7 GB. Alpine Linux ist mit 0,1 GB die bisher mit großem Abstand kleinste GNU/Linux-Distribution für den Raspberry Pi, die U-Labs getestet haben.

$ df -h
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
dev             1,7G       0  1,7G    0% /dev
run             1,9G    8,9M  1,9G    1% /run
/dev/mmcblk0p2   29G    1,5G   27G    6% /
tmpfs           1,9G       0  1,9G    0% /dev/shm
tmpfs           1,9G       0  1,9G    0% /tmp
/dev/mmcblk0p1  458M     56M  403M   13% /boot
tmpfs           380M       0  380M    0% /run/user/1000

Dieser Eindruck bestätigt sich auch beim Arbeitsspeicherverbrauch: Mit ca. 105 MB ist dieser fast doppelt so hoch wie beim Raspberry Pi OS. DietPi begnügt sich sogar nur mit etwa 1/3. Mit genügend Arbeitsspeicher macht sich das jedoch in der Bedienung auf einem Raspberry Pi 4 mit 4 GB RAM nicht bemerkbar.

Unterschiede zum Raspberry Pi OS

Paketmanager

Während Arch Linux auf Pacman als Paketmanager setzt, hat Manjaro Pamac entwickelt. Pamac ist sowohl auf der Konsole als auch grafisch nutzbar und baut auf Pacman auf. Ziel ist es, die Handhabung zu Vereinfachen. Ein Vergleich von Pacman mit anderen Paketmanagern wie APT (GNU Debian/Raspberry Pi OS) zeigt, dass Pacman durchaus etwas kryptischer wirkt. Dafür können verschiedene Befehle kombiniert werden: pacman -Syu beispielsweise aktualisiert die Paketquellen (apt update) und anschließend die auf unserem System veralteten Pakete (apt upgrade). Mit pacman -S <name> wird ein neues Paket installiert – wobei man aufgrund des Rolling Release Ansatzes unbedingt vorher alle Aktualisierungen mit -Syu einspielen sollte!

Vor allem für Anfänger ohne Erfahrung mit Pacman würde ich zu Pamac raten. Er ist recht ähnlich zu APT. In der grafischen Edition ist Pamac vorinstalliert, bei der minimalen Version ist dies geplant und muss daher derzeit mit Pacman nachinstalliert werden:

sudo pacman -Syu pamac-cli

Wer ein Paket sucht, kann search verwenden. Reguläre Ausdrücke sind möglich, z.B.

pamac search "^nginx$"
nginx-mainline                                                                         1.21.6-1  community
    Lightweight HTTP server and IMAP/POP3 proxy server, mainline release
nginx                                                                                  1.22.0-2  extra
    Lightweight HTTP server and IMAP/POP3 proxy server

Die Versionen sind recht aktuell: 1.22 ist zum Testzeitpunkt etwa einen Monat alt. Unter dem aktuellen Raspberry Pi OS 11 (GNU/Debian) erhalten wir lediglich 1.18.0. Dadurch, dass Buster relativ aktuell ist, keine uralte Version. Dennoch immerhin schon gute 2 Jahre alt. Hier zeigt sich der Unterschied von klassischer Versionierung zu Rolling Releases: Debian 11 wurde auf Nginx 1.18.0 eingefroren und erhält nur Fehlerkorrekturen/Sicherheitsaktualisierungen. Erst der (noch nicht final veröffentlichte) Nachfolger Debian 12 erhält eine aktuellere Hauptversion. Manjaro wird dagegen ohne Upgrade oder Neuinstallation bald auch die sehr aktuell erschienene Nginx 1.23.0 Version erhalten.

Die Installation unterscheidet sich kaum von APT. Wer etwa den Webserver Nginx installieren möchte, kann dank des gleichnamigen Pakets den identischen Befehl verwenden und ändert lediglich apt in pamac:

 sudo pamac install nginx

Einen kleinen Fallstrick gibt es jedoch in der Deutschen Übersetzung. Wir werden aufgefordert, die Installation mit j für ja zu starten, oder N für Nein abzubrechen. Auch bei „j“ findet ein Abbruch statt. Die Lösung: Pamac erwartet die englische Variante (y für yes).

Transaktion anwenden ? [j/N] j

Vorgang abgebrochen.

Als Initsystem wird Systemd verwendet. Wer dies von GNU Debian/Raspberry Pi OS bereits kennt, kann dies auch unter Manjaro anwenden. Automatisch starten installierte Dienste jedoch nicht. Für unser Beispiel Nginx muss der gleichnamige Dienst daher erst aktiviert und gestartet (–now) werden:

sudo systemctl enable --now nginx

Eine vorinstallierte Firewall wie unter Rocky Linux gibt es übrigens unter Manjaro nicht. Der Dienst ist daher sofort erreichbar, ohne eine Ausnahmeregel festzulegen. Wer

Auch andere Software ist deutlich aktueller als unter GNU Debian/Raspberry Pi OS: PHP ist etwa in Hauptversion 7 und 8 vorhanden. Version 8.1.7 ist die aktuellste, vor 2 Wochen erschienene. In Version 7.4.29 fehlt derzeit noch das aktuellste Patchlevel .30. Buster liefert Patchlevel 28, allerdings gibt es PHP 8 dort noch gar nicht in den offiziellen Paketquellen – 8.0 seit November 2020 stabil verfügbar, also mehr als 1,5 Jahre. Auch diese Version wird voraussichtlich erst in RPIOS 12 enthalten sein.

Praktisch: Docker und das Compose-Plugin sind in den offiziellen Paketquellen von Manjaro enthalten. Wer sie installieren möchte, benötigt das Docker Installationsskript, welches unter GNU/Debian die Paketquellen erweitert, nicht und kann einfach die Pakete docker und docker-compose installieren.

Am Beispiel Docker lässt sich etwas weiteres nützliches demonstrieren: Optionale Abhängigkeiten. Bei einigen Paketen habt ihr die Möglichkeit, deren Funktion durch zusätzliche Pakete zu erweitern. Beispielsweise gibt es ein Paket namens docker-scan, es installiert das Scan-Plugin, womit sich Docker-Images auf bekannte Sicherheitslücken überprüfen lassen. Diese Erweiterung ist nicht zwingend für die Funktionalität von Docker nötig, man kann sie an dieser Stelle aber gleich mit installieren.

$ sudo pamac install docker docker-compose
...
Wähle die optionalen Abhängigkeiten für docker:
1:  pigz: parallel gzip compressor support
2:  docker-scan: vulnerability scanner

Auswahl eingeben (Standard=keine): 1,2

Es hängt vom jeweiligen Paket ab, ob und wie viele optionale Abhängigkeiten verfügbar sind. Diese Liste zu prüfen ist in meinen Augen sinnvoll.

Spezifische Pakete für den Raspberry Pi

Das Raspberry Pi OS enthält einige Pakete, die spezielle Werkzeuge für den Raspberry Pi mitbringen. Darunter beispielsweise rpi-eeprom-update zur Aktualisierung des Bootloaders. Fehlen diese Pakete, schränkt das den Pi ein bzw. erzeugt Mehraufwand, etwa durch manuelles Flashen im Falle einer neuen Bootloader-Installation. Im Gegensatz zu z.B. Rocky Linux bringt Manjaro hier grundlegende Werkzeuge über entsprechende Pakete mit:

$ pamac list | grep raspberry
firmware-raspberrypi             7.1-1                       community  18,1 MB
raspberrypi-bootloader           20220527-1                  core       15,5 MB
raspberrypi-bootloader-x         20220527-1                  core       6,7 MB
raspberrypi-userland-aarch64-git r833.c4fd1b8-1              community  36,0 MB

AUR (Arch User Repository)

Wie Anfangs bereits erwähnt, bietet das zugrunde liegende Arch mit dem AUR ein extra Repository für inoffizielle Pakete. Oft enthalten sie keine fertigen Binaries, sondern erzeugen diese auf dem Zielsystem. Daher wird die base-devel Gruppe benötigt. Sie enthält eine Sammlung von Compilern und anderen Programmen:

sudo pacman -S --needed --needed base-devel

Mit pamac search -a <name> lässt sich das AUR bei der Suche einschließen und rechts neben dem Paketname wird AUR als Quelle angegeben. Da diese Pakete i.d.R. kompiliert werden, müssen wir sie mit pamac build bauen.

$ sudo pamac build modsecurity
...
==> FEHLER: modsecurity steht für die 'aarch64'-Architektur nicht zur Verfügung.

Wie man an diesem Beispiel sieht, unterstützen viele Pakete jedoch nicht explizit die ARM (AARCH64) Architektur. Die arch Zeile im Kopf der PKGBUILD-Datei bestätigt, dass es nur für x86 Systeme (64 Bit) entwickelt und getestet wurde. Man kann nun versuchen, diese Prüfung mit -A abzuschalten, nachdem man das zum Paket gehörige Git-Repository geklont hat:

$ git clone https://aur.archlinux.org/elasticsearch.git
$ cd elasticsearch
$ makepkg -A

Manche Pakete funktionieren unter ARM und wurden nur nicht getestet, weil der Paketersteller X86 verwendet. Bei vielen ist das nicht der Fall – hier muss man Anpassungen vornehmen, wenn die Software denn überhaupt ARM unterstützt. Falls nicht, wird man ausschließlich bei Open Source und mit ggf. Aufwand eine Chance haben, das Programm zum Laufen zu bekommen. Das AUR ist daher eher für fortgeschrittene Anwender geeignet.

Generell ist zu empfehlen, vor allem auf die PKGBUILD und *.install Dateien einen Blick zu werfen. Sie können beliebigen Bash-Code ausführen. Schadsoftware im AUR ist zwar selten, dennoch ist man mit einer Prüfung auf der sichereren Seite.

Vorsicht ist auch bei Paketen geboten, die auf eine Vorversion oder den aktuellen Entwicklungsstand schließen lassen. Darauf weisen Bezeichnungen wie dev, devel, svn, cvs, git und vergleichbare hin. Wer bewusst nach den neuesten Versionen sucht, erhält dadurch z.B. neueste Fehlerkorrekturen oder Funktionen. Allerdings sind diese tendenziell noch recht frisch und damit instabil. Für die alltägliche, produktive Nutzung würde ich sie eher meiden.

An dieser Stelle sei auch noch Docker erwähnt. Vor allem mit fertigen Images kann man relativ leicht Software ausführen, die unter Manjaro oder anderen Distributionen nicht oder nur im AUR verfügbar ist.

Fazit

Manjaro vereinfacht Arch Linux ein gutes Stück und macht es damit selbst für weniger erfahrene Nutzer attraktiv. Auf dem Pi punktet die Distribution mit aktuellen Paketen – dafür aber nur etwa 1/5 so viele, wie beim Raspberry Pi OS. Das AUR ist eher eine Nische, da vergleichsweise wenige Pakete ohne Anpassungen unter ARM laufen. Auf X86 Systemen sieht das ganze viel besser aus, ich nutze Manjaro mit XFCE auf dem Desktop und habe das AUR dort schon mehrfach genutzt.

Schlechte Erfahrungen bei der Stabilität habe ich dort noch nicht gemacht, obwohl die Pakete recht aktuell sind. Theoretisch kann es die natürlich beim nächsten Upgrade noch geben – Rolling Relases haben ihre Vor- und Nachteile. Ein großer Vorteil ist, dass man sich nicht mit großen Betriebssystemupgrades oder gar Neuinstallationen (wie beim Raspberry Pi OS offiziell empfohlen) beschäftigen muss. Stattdessen hält man das System immer aktuell, wodurch es theoretisch unbegrenzt lange nutzbar ist. Tatsächlich gibt es in den Arch Linux Foren Nutzer, die ihre Installation seit mehr als 10 Jahren am Stück betreiben.

Wer aktuelle Software möchte die in den offiziellen Paketquellen enthalten ist oder sich mit eigenen Anpassungen im AUR anfreunden kann, für den ist Manjaro eine gute Alternative zum Raspberry Pi OS.

Leave a Reply