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.
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
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?
Hi Christian,
ich habe es dir mal hochgeladen: https://cloud.gnulinux.ch/index.php/s/3nCQ6683N26EkAk
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]
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.
Ich habe es jetzt geschafft Alpine Linux mit Unified Kernel Image und Secure Boot zu installieren, funktioniert einwandfrei. Anbei der Link zur Anleitung:
https://www.cogitri.dev/post/04-secure-boot-with-unified-kernel-image/
Etwas tricky war das Ausrollen der generierten Schlüssel, da mein Lenovo Laptop leider nicht über die Funktion verfügt, die Keys im BIOS zu importieren. Hab dann im Arch-Wiki die manuelle Methode mit sbkeysync gefunden. Das hat funktioniert:
https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Using_your_own_keys
Wenn ich etwas Zeit finde schreibe ich einen Artikel zum Thema.
Nachdem ich Alpine Linux bereits auf Raspberry Pi und virtuellen Maschinen laufen hatte, habe ich das System nun als daily driver auf einem Lenovo T460S installiert. Dank der Anleitungen im Wiki und bei cogitri.dev konnte ich Secure Boot aktivieren, das Root-Verzeichnis ist mit LUKS2 gesichert. Als Desktop-Manager habe ich Mate laufen, da ich mich nie mit KDE und Gnome3 anfreunden konnte und die Cinnamon-Pakete vom Alpine Team nicht mehr gepflegt werden. Mit einem dark theme, den icons Mate-Faenza-Dark und dem window border Menta sieht das sogar richtig cool aus. Der Desktop erscheint bei mir schwarz und die Fenster sind mit runden, silbernen Buttons in der Titelleiste dekoriert. Auch die Symbole im Panel sind in Silber gehalten. Als Desktop-Erweiterung habe ich rofi installiert, um mittels Shortcut eine Liste der aktiven Fenster aufrufen zu können (bin ich von Cinnamon gewohnt). Probleme hatte ich anfänglich mit Cups, da die Installation von Druckertreibern der Hersteller nicht funktioniert. Mit IPP everywhere ("lpadmin -p myprinter -E -v "ipp://11.22.33.44/ipp/print" -m everywhere") bekam ich die Drucker dann eingebunden. Anfänglich konnte ich Drucker auch über das Cups-Portal und mittels system-config-printer konfigurieren, aber nach einem Update bekomme ich einen internal server error?! Scanner funktionieren aufgrund des Treiberproblems bisher nicht, da behelfe ich mich aktuell mit einer SD-Karte. Insgesamt gefällt mir das System sehr gut und bis auf die Drucker- und Scannerprobleme funktioniert alles einwandfrei. Das System ist extrem schnell und läuft bisher auch sehr stabil. Mate ist in der Handhabung zwar nicht ganz so geschmeidig wie Cinnamon, aber dafür ist die Einrichtung des Desktops einfacher und sieht dank der von mir gewählten Themes auch noch verdammt gut aus :-)