Alpine Linux als Desktop

  Lioh Möller   Lesezeit: 15 Minuten  🗪 5 Kommentare

Die leichtgewichtige und auf Sicherheit getrimmte Distribution Alpine Linux lässt sich mit wenig Aufwand auch als Desktop-System nutzen. In dieser Anleitung erfährst du Schritt-für-Schritt, was dazu nötig ist.

alpine linux als desktop

Bei Alpine Linux handelt es sich um eine leichtgewichtige Distribution, die auf busybox aufbaut, anstatt auf die üblicherweise zum Einsatz kommenden GNU-Toolchain zu setzen. Darüber hinaus wird die musl Bibliothek anstelle von glibc genutzt, um Anwendungen zu übersetzen. Eine weitere Besonderheit ist die Verwendung des aus dem Gentoo-Projekt bekannten Init-Systems OpenRC (Cheatsheet).

Zur Installation eines Alpine Linux Desktopsystems eignet sich das Standard Installationsmedium für die entsprechende Prozessorarchitektur.

Installation

Nach dem Start des ISO-Images erfolgt der Login an der tty mit dem Benutzer root ohne Passworteingabe.

Zu diesem Zeitpunkt kommt das US-Tastaturlayout zum Einsatz. Zur Installation des Betriebssystems wird die Anwendung setup-alpine gestartet. Dabei handelt es sich um einen textbasierten Assistenten, der den Anwender durch die notwendigen Schritte führt.

Zunächst wird das passende Tastaturlayout ausgewählt. Für die Schweiz wäre dies ch und für Deutschland und Österreich de.

Im darauffolgenden Schritt wird die Tastaturvariante definiert. Für die Schweiz lautet dieses ch-de_nodeadkeys, für Deutschland und Österreich de-nodeadkeys.

Nachdem die Einstellung vorgenommen wurde, ist das gewählte Tastaturlayout im weiteren Verlauf der Installation und auf dem installierten System in der tty aktiv.

Daraufhin wird der Hostname abgefragt. In diesem Beispiel wird alpinelinux.domain.example gewählt.

Das System erkennt automatisch die verfügbaren Netzwerkinterfaces und bietet diese zur Auswahl an. Im Folgenden gehen wir von einer Ethernet-Verbindung über das Device eth0 aus.

Sofern keine statische IP-Adressvergabe erfolgt, kann dhcp zur Konfiguration gewählt werden. In diesem Falle kann auf eine manuelle Netzwerkkonfiguration verzichtet werden.

Nach dem Bezug der IP-Adressinformationen wird man zur Eingabe des Root-Passwortes aufgefordert. Dieses wird während des Tippens aus Sicherheitsgründen nicht angezeigt. Das Passwort muss daraufhin ein 2. Mal eingegeben werden.

Sofern die BIOS-Uhr des Systems auf UTC eingestellt ist, kann dies auch als Zeitzone ausgewählt werden. Andernfalls gibt man zunächst Europe ein und im weiteren Schritt beispielsweise Zurich, Berlin oder Vienna.

Sofern kein Proxyserver im Netzwerk zum Einsatz kommt, kann auf die Eingabe dessen verzichtet werden.

Als NTP Client empfiehlt sich die Verwendung von busybox, anstatt der Standardauswahl chrony, da dieser deutlich performanter ist.

Im nächsten Schritt wird eine Liste von Spiegelservern zur Installation ausgegeben. Die Ausgabe kann man durch die Eingabe von q beenden. Die Spiegel sind mit Nummern versehen, es empfiehlt sich den Standard 1 beizubehalten, da es sich dabei um das Content-Delivery-Network des Projektes handelt.

Nun ist erhöhte Aufmerksamkeit erfordert, denn es geht um die Einrichtung eines regulären Benutzerkontos. Dies wird zur Nutzung als Desktopsystem empfohlen. Allerdings erwartet die Frage 'Setup a user?' als Antwort nicht yes, sondern direkt den Nutzernamen in Kleinbuchstaben, in diesem Beispiel linuxuser.

Daraufhin kann der volle Name des zu erstellenden Benutzers angegeben werden und ähnlich wie zuvor für den Root-Benutzer ein Passwort vergeben werden.

Die Frage nach einem SSH-Schlüssel oder einer URL kann mit none verneint werden, was dem Standardwert entspricht.

Im Folgenden wird erfragt, welche Variante des SSH Servers installiert werden soll. Hier empfiehlt es sich die Vorauswahl openssh beizubehalten, da dieser für seine herausragende Sicherheit bekannt ist.

Jetzt muss eine Festplatte gewählt werden, auf die Alpine Linux installiert werden soll. Es wird eine Liste mit erkannten Laufwerken ausgegeben. Die Frage muss mit dem Namen des Laufwerkes beantwortet werden, in diesem Beispiel sda.


Alpine bietet unterschiedliche Partitionierungsvarianten zur Auswahl an. Eine Erklärung dazu lässt sich mit ? ausgeben. Im Folgenden gehen wir von der Verwendung der Variante sys aus, welche eine Boot- eine Root- und eine SWAP-Partition erstellt.


Die Partitionierung muss mit y bestätigt werden. Daraufhin wird das System übertragen und nach erfolgreicher Installation kann ein Neustart durch die Eingabe von reboot ausgelöst werden.

Zu diesem Zeitpunkt kann das Laufwerk mit dem Installationsmedium entfernt werden.

GNOME-Desktop

Nach der Anmeldung an dem neu installierten System mit dem Benutzer root und dem zuvor vergebenen Passwort kann die Basiskonfiguration erfolgen.

Zunächst kann die Desktopumgebung der Wahl installiert werden. Dazu kann das Hilfsprogramm setup-desktop genutzt werden. Ohne Angabe von Parametern (Beispiel: setup-desktop gnome), wird gnome, plasma und xfce zur Auswahl angeboten. In diesem Beispiel wird der GNOME Desktop gewählt.

Um auch unter der grafischen Oberfläche das korrekte Tastaturlayout nutzen zu können, wird eine entsprechende Konfigurationsdatei erstellt.

mkdir /etc/X11/xorg.conf.d
vi /etc/X11/xorg.conf.d/00-keyboard.conf

Deutschland / Österreich

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "nodeadkeys"
EndSection

Schweiz

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "ch"
        Option "XkbVariant" "de_nodeadkeys"
EndSection

Pipewire

Das moderne Audio-Framework Pipewire wird beispielsweise zur Nutzung des GNOME Screen-Recorders benötigt und kann wie folgt hinzugefügt werden:

apk add pipewire wireplumber gst-plugin-pipewire

Sprachunterstützung

Bei Alpine Linux kommt statt glibc musl zum Einsatz. Die Sprachunterstützung erfordert die Installation zusätzlicher Pakete:

apk add musl-locales

Mithilfe von folgendem Befehl werden alle Sprachpakete der bereits installierten Anwendungen hinzugefügt:

apk add lang

Für einige Applikationen wie LibreOffice lauten die Sprachpakete auf die Endung des Language Codes, also beispielsweise -de

Diese lassen sich wie folgt anzeigen:

apk list *-de *-de-*

LibreOffice kann mit deutscher Sprachunterstützung wie folgt installiert werden:

apk add libreoffice libreoffice-lang-de

Die Konfiguration der zu nutzenden Sprache erfolgt in der Datei /etc/profile.d/20locale.sh.

vi /etc/profile.d/20locale.sh

Dabei muss die Variable LANG angepasst werden.

Deutschland / Österreich

LANG=de_DE.UTF-8

Schweiz

LANG=de_CH.UTF-8

Alle verfügbaren Locales lassen sich wie folgt anzeigen:

ls /usr/share/i18n/locales/musl

Zusatzpakete

Da es sich bei Alpine Linux um eine minimalistische Distribution handelt, können einige weitere grundlegende Pakete installiert werden:

apk add sed grep vim util-linux pciutils usbutils binutils findutils readline lsof less nano curl mlocate file

Man-Pages werden standardmässig nicht ausgeliefert und können wie folgt installiert werden:

apk add man-pages mandoc

Die Dokumentation für alle installierten Pakete lässt sich wie folgt installieren:

apk add docs

Standardmässig kommt bei Alpine Linux die ash Shell zum Einsatz. Um stattdessen BASH zu nutzen muss zunächst die Shell und das benötigte Paket zur Konfiguration (shadow) installiert werden. Für die Auto-Vervollständigung im Terminal kann darüber hinaus das bash-completion Paket hinzugefügt werden:

apk add bash bash-completion shadow

Die Änderung erfolgt daraufhin mit dem folgenden Befehl, wobei linuxuser durch den eigenen Benutzernamen ersetzt werden muss:

chsh linuxuser

Die Angabe der Shell erfolgt in der Form /bin/bash

Weitere Desktopanwendungen können wie folgt installiert werden:

apk add thunderbird inkscape gimp hexchat vlc-qt

Mithilfe von apk search SUCHBEGRIFF können Pakete gesucht werden. Alternativ dazu kann die Online-Paketsuche zurate gezogen werden.

doas

Alpine Linux nutzt doas anstatt sudo. Zum Ausführen eines Kommandos mit Root-Rechten kann doas vorangestellt werden. Mitglieder der Gruppe wheel sind standardmässig zur Nutzung von doas berechtigt.

NetworkManager

Zur Nutzung von NetworkManager zur Netzwerkverwaltung müssen zunächst die benötigten Pakete installiert werden:

apk add networkmanager networkmanager-wifi networkmanager-tui network-manager-applet iwd

Daraufhin kann die NetworkManager-Konfigurationsdatei /etc/NetworkManager/NetworkManager.conf angepasst werden.

vi /etc/NetworkManager/NetworkManager.conf

[main]
dhcp=internal
plugins=ifupdown,keyfile

[ifupdown]
managed=true

[device]
wifi.scan-rand-mac-address=yes
wifi.backend=iwd

Der Service wird beim Systemstart wie folgt aktiviert und das Standard-Netzwerkbackend sowie wpa_supplicant deaktiviert:

rc-update add networkmanager
rc-update del networking boot
rc-update del wpa_supplicant boot

Nach einem Neustart sollte ein Verbindungsaufbau über NetworkManager möglich sein.

Flatpak

Auch Flatpak steht für Alpine Linux zur Verfügung und lässt sich wie folgt installieren:

apk add flatpak

Als regulärer Benutzer kann daraufhin das Flathub-Remote hinzugefügt werden:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Grafikkarten

Je nach verwendeter Grafikkarte sind einige Schritte notwendig. Im Wiki des Projektes stehen Informationen für Intel, AMD und NVIDIA Grafikkarten zur Verfügung.

Aktualisierung

Alpine Linux lässt sich über folgende Befehle aktuell halten:

apk update
apk upgrade

Zusammenfassen lässt sich dies wie folgt:

apk -U upgrade

Die zu nutzenden Paketquellen werden in der Datei /etc/apk/repositories definiert.

Bei dem Erscheinen einer neuen Version muss lediglich die Versionsnummer angepasst werden. (Beispielsweise v3.17 durch v3.18)

https://dl-cdn.alpinelinux.org/alpine/v3.18/main
https://dl-cdn.alpinelinux.org/alpine/v3.18/community

Alle weiteren Repositories sollten auskommentiert sein.

Weitere Informationen zu den Release-Zweigen von Alpine Linux finden sich im Wiki des Projektes.

Dist-Upgrade

Ein Dist-Upgrade kann daraufhin wie folgt ausgeführt werden:

apk add --upgrade apk-tools
apk upgrade --available

Die Option --available forciert eine Aktualisierung aller installierten Pakete.

Fazit

Mit relativ wenig Aufwand lässt sich ein leichtgewichtiges, modernes und sicheres Desktopsystem aufbauen, das vom Komfort her anderen Distributionen ähnelt. Alpine Linux ist für ambitionierte Einsteiger ebenso geeignet wie für den gewieften Linux-Hasen. Die Ersteinrichtung erscheint zunächst etwas aufwendiger als bei Distributionen, bei denen etwa das Calamares-Installationsprogramm zum Einsatz kommt, die Mühe zahlt sich jedoch schnell aus.

Mit postmarketOS steht darüber hinaus ein Fork von Alpine Linux auch für mobile Endgeräte zur Verfügung.

Tags

Alpine, Busybox, Musl, OpenRC

Pascal Garber
Geschrieben von Pascal Garber am 13. April 2023 um 09:04

Vielen Dank für den Artikel, dadurch konnte ich meinem OnePlus 6T - auf dem postmarketOS mit Phosh läuft - deutsche Sprachunterstützung hinzufügen :)

Falls man für postmarketOS beispielsweise auch Pakete schnüren möchte, kann dieser Artikel ebenfalls sehr hilfreich sein, da von postmarketOS vorgegeben wird, die Pakete als erstes bei Alpine Linux einzureichen, nur wenn das Paket sehr speziell ist und nur für postmarketOS Sinn macht, soll das Paket bei postmarketOS eingereicht werden. Dafür kann Alpine Linux auf dem Desktop oder in einer VM dann sehr hilfreich sein.

Außerdem kann eine existierende Alpine Linux Installation recht einfach zu postmarketOS erweitert werden, so kann dann z.B. auch Phosh oder Gnome Mobile auf dem Desktop oder Tablet ausprobiert werden: https://wiki.postmarketos.org/wiki/Existing_Alpine_installation

Christian
Geschrieben von Christian am 20. April 2023 um 14:27

Schoener Artikel, vielen Dank dafuer. Ich habe nach der Anleitung Alpine Linux mit Gnome installiert. Funktioniert sehr gut. Kurze Frage: Wo finde ich denn das schoene Wallpaper vom oberen Screenshot?

Lioh
Geschrieben von Lioh am 20. April 2023 um 14:46

Hi Christian,

ich habe es dir mal hochgeladen: https://cloud.gnulinux.ch/index.php/s/3nCQ6683N26EkAk

AT69
Geschrieben von AT69 am 21. Mai 2023 um 10:28

Hallo Lioh,danke für DEINEN Input, habe das versucht nachzubauen, ging bis apk add gnome-apps-extra in Ordnung, ab diesem Zeitpunkt wurden die Pakete nicht mehr gefunden, mache ich das was falsch? Es kommt diese Fehlermeldung:ERROR: unable to select packages: gnome-apps-extra (no such package): required by: world[gnome-apps-extra]

V wie Vendetta
Geschrieben von V wie Vendetta am 19. März 2024 um 13:32

Alpine Linux ist eine feine Distro und macht sowohl auf dem Desktop als auch auf dem Server eine gute Figur. Es ist schlank, schnell und sollte aufgrund der geringeren Angriffsfläche auch etwas sicherer sein. KDE Plasma und LXQt sind vorhanden. Leider fehlen ein paar wichtige Pakete wie z.B. der smplayer und Ungoogled Chromium, aber Alternativen wie KDE Haruna oder Flatpaks können Abhilfe schaffen. Mit Bottle im Flatpak habe ich ein Spiel zum Laufen gebracht. APK ist der beste und schnellste Paketmanager, der mir bisher untergekommen ist und zerlegt Pakete folgendermaßen: Paketname, Paketname-lang, Paketname-nftables, Paketname-openrc, Paketname-dev etc. Dadurch wird nur installiert, was man auch braucht.

Vielleicht auch interessant: Adelie-Linux und Chimera Linux. Adelie Linux verwendet ebenfalls musl und APK, setzt aber auf s6. Auch Chimera Linux bevorzugt musl und APK, möchte jedoch alten Ballast loswerden und BSD Werkzeuge einführen: BSD Basiswerkzeuge, LLVM, dinit, seatd und turnstile als elogind-Alternative.