Alpine Linux erste Schritte

Hier eine kurze Einführung in die Alpen-Linuxspeziell für die Raspberry Pi-Plattform

Warum Alpine Linux?

  • es ist klein
  • es kann durch Kopieren von Dateien auf die FAT-Partition der SD installiert werden
  • es kann aus dem RAM laufen, das Dateisystem bleibt schreibgeschützt (das Speichern von Änderungen ist natürlich möglich)
    • Dies ist sehr gut für eingebettete Systeme, bei denen die Stromversorgung unvorhersehbar unterbrochen werden kann!
  • es ist ein einfaches System - kein Durcheinander, bessere Sicherheit
  • Daher ist es eine gute Wahl für die Embedded-Entwicklung

Alpine Linux wird häufig für Docker-Container verwendet. Und es wird auch auf der Raspberry Pi-Plattform unterstützt.

Warum nicht Alpine Linux?

  • Anfängern wird nicht empfohlen, mit Alpine zu beginnen - sie sollten unbedingt NOOBS oder Raspbian verwenden
    • Alpine setzt ein gewisses Maß an Linux-Kenntnissen voraus und fügt eigene Tools zur Verwaltung der Installation hinzu
  • Alpine Verwendungen musl anstelle von glibc als libc (Standard-C-Bibliothek) - dies ist gut für eingebettete und ressourcenbeschränkte Systeme;
    • "Große Distributionen" verwenden jedoch glibc - Softwarekompatibilität könnte ein Problem sein.
  • Es sind weniger vorkompilierte Pakete verfügbar als bei Raspbian - das bedeutet, dass Sie auf sich allein gestellt sind, um die benötigten Pakete zu erstellen.
  • Sie werden sich um viele Dinge kümmern müssen, z. B. Einstellung der richtigen CRDA - kann dies sehr zeitaufwendig sein (wir bereits einen Blogbeitrag geschrieben haben zu diesem Thema)

Sehr empfehlenswerte Lektüre

Einrichtung

Wir empfehlen die Verwendung des armhf Build, nicht die aarch64-Version. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Alpine-Version 3.8.1.

Ich habe Alpine auf dem Pi 3 B+ und dem Zero W getestet und bin zuversichtlich, dass es auch auf dem Pi 1, 2 und 3 läuft.

  • Gewährleistung der Datenintegrität den SHA256-Hash zu überprüfen. Unter Windows kann dies mit VisualHash durchgeführt werden
  • Entpacken Sie die tar.gz-Datei. Unter Windows kann dies mit 7-zip durchgeführt werden
  • Entpacken Sie auch die tar-Datei (in ein eigenes Verzeichnis)

Wenn Sie die tar-Datei entpacken, erhalten Sie den Inhalt, der auf die FAT32-Partition der SD-Karte kopiert werden muss.

Zum Starten von Alpine sind keine weiteren Partitionen erforderlich.

Denken Sie daran, dass der Raspberry Pi eine FAT-Partition als erste Partition benötigt, um richtig zu booten.

Bonus-Tipp: Wenn Sie eine Formatierung benötigen, können Sie diese mit dem SD Formatter der SD Card Association unter Windows vornehmen.

  • Kopieren Sie den Inhalt des Verzeichnisses in die FAT-Partition der SD-Karte

Bild

Der Screenshot zeigt ein frisch installiertes Alpine Linux.

bemerkenswerte Verzeichnisse:

  • apks - enthält Alpine-Pakete

Diskless-Modus

Der Standardinstallationsmodus für den Raspberry Pi ist Diskless-Modus.

Im Diskless-Modus wird die SD-Karte zunächst nur zum Laden des Systems (und Ihrer apkovl-Änderungen, siehe unten) in ein RAM-Dateisystem verwendet.

Sie müssen die Änderungen zwischen den Sitzungen mit Hilfe von Alpine's  lbu (lokale Sicherung) Nutzen.

Standard-Anmeldung für Alpine auf Raspberry Pi

Starten Sie den Raspberry Pi mit eingelegter Alpine SD-Karte.

  • Benutzer: root
  • Passwort:

Das Passwort ist nicht notwendig, nachdem Sie root eingegeben und die Eingabetaste gedrückt haben, sind Sie angemeldet.

Verfahren zur Einrichtung

Sobald Sie angemeldet sind, geben Sie

setup-alpine

Hinweis: In der deutschen Tastaturbelegung befindet sich der Bindestrich "-" auf der "?"-Taste.

  • Alpine schlägt vor, als ersten Schritt ein Tastaturlayout einzurichten
    • und fragen Sie dann nach der Tastaturvariante

Ich habe "de" und "de-nodeadkeys" verwendet.

  • Alpine wird nach dem Hostnamen des Systems fragen
  • Dann können Sie die Vernetzung einrichten
    • Sie können Netzwerke für kabelgebundene und drahtlose Geräte einrichten.
  • die IP einrichten, dhcp wird unterstützt
  • Wenn Sie keine weiteren Netzwerkgeräte einrichten möchten, können Sie Folgendes eingeben fertig und drücken Sie die Eingabetaste; alternativ können Sie wlan0 einrichten (auf Pi 3B+)
  • Alpine wird Sie fragen, ob Sie eine zusätzliche manuelle Netzwerkkonfiguration vornehmen möchten. Drücken Sie die Eingabetaste, um die Standardeinstellung (nein) auszuwählen.

Zusätzliche Einstellungen

  • Danach werden Sie von Alpine aufgefordert, ein neues Root-Passwort festzulegen
  • Zeitzone
    • z.B. Europa
    • z.B. Berlin als Sub-Zeitzone
    • Europa/Berlin wird ebenfalls funktionieren.
  • HTTP/FTP-Proxy-URL (keine, wenn Sie sich in einer "normalen" Netzwerkumgebung befinden)

Spiegel

  • aufgrund der Taktverschiebung kann es zu Problemen beim Einrichten eines Paketspiegels kommen (es kann kein Spiegel hinzugefügt werden)
  • um dieses Problem zu beheben, führen Sie setup-alpine ein zweites Mal, wenn Sie es beim ersten Mal vollständig durchgearbeitet haben
    • werden Sie einige Warnungen erhalten, da einige Dienste bereits gestartet wurden.
  • die Standardoption f testet den schnellsten Spiegel

SSH-Server

  • openssh ist der Standard, aber Sie können auch dropbear installieren

Dropbear spart etwas RAM, hat aber weniger Funktionen. Wir empfehlen OpenSSH.

Alpine erzeugt nun SSH-Hostschlüssel für Sie.

NTP-Klient

  • busybox
  • openntpd
  • chrony (Standard)

Speichern von Konfigurationen

Ein wichtiger Schritt bei der Einrichtung ist die Festlegung, wo Konfigurationsänderungen gespeichert werden sollen.

mmcblk0p1 ist der voreingestellte Standard

Dies ist die erste Partition (FAT32-Partition) der SD-Karte des Raspberry Pi.

Danach schlägt Alpine ein lokales Cache-Verzeichnis für apk-Pakete vor, ebenfalls auf der SD-Karte: /media/mmcblk01p/cache

Wichtiger Hinweis: Alpine speichert nicht jede Änderungen im Modus "Diskless", auch die Einrichtung, die Sie gerade abgeschlossen haben. Sie müssen das Dienstprogramm lbk verwenden, um diese Änderungen beizubehalten!


Aktualisierung des Systems

Apk-Update

apk ugrade

Eigentlich ganz ähnlich wie bei Debian-Derivaten.


Installieren von Paketen

apk htop hinzufügen

Fügt das Paket htop hinzu. (Ermöglicht die Überwachung der Ressourcennutzung auf eine anschaulichere Weise).

Denken Sie daran, dass Alpine die Paketinstallation nicht fortsetzt, wenn Sie nicht das lbk-Dienstprogramm verwenden!

Anhaltende Veränderungen

Das lbk-Dienstprogramm (lokale Sicherung) wird verwendet, um Änderungen im plattenlosen Modus beizubehalten. Führen Sie es aus, nachdem Sie mit Ihrer Einrichtung zufrieden sind:

lbu commit -d

Dadurch wird eine Datei namens .apkovl.tar.gz auf Ihrer FAT32-Partition erstellt. In dieser Datei speichert lbu die Änderungen an der Basiskonfiguration.

Nützliche Flaggen:

-d: entfernt alte apk-Overlay-Dateien.

-n: nicht begehen, zeigen, was begangen worden wäre.

Dies ist auch ein großartiger Ort, um diese Konfigurationen dynamisch zu patchen, während SD-Karten massenhaft erstellt werden, und sie so in das System einzuspeisen (z.B. geänderte Einstellungen / IP-Adressen / ...).

Bild

In meinem Fall habe ich das System "mir" genannt, deshalb heißt das apkovl mir.apkovl.tar.gz

Bild

Beachten Sie, dass nur der einzelne Ordner "etc" in der apkovl enthalten ist.

Das liegt daran, dass lbu standardmäßig, werden nur Änderungen in der /etc Verzeichnis! (außer /etc/init.d)

Hinzufügen weiterer Verzeichnisse zur Liste der persistierten Verzeichnisse von lbu:

Um ein Verzeichnis oder eine Datei hinzuzufügen, außer /etc um Änderungen zu überwachen und zu übertragen (wenn Sie lbu commit ausführen), verwenden Sie lbu einschließen:

lbu include /home/miaucat

und übertragen Sie dann das Dateisystem.

Sie müssen das Verzeichnis nur einmal einbinden und dann übertragen. Künftige Übertragungen werden das eingeschlossene Verzeichnis ebenfalls beibehalten.


Zeigt die aktuellen Änderungen an:

Ibu-Status

zeigt die Dateien an, die seit der letzten Übertragung geändert wurden.

Verwenden Sie die Option -a, um alle Dateien im Vergleich zu einer Neuinstallation anzuzeigen.

Beachten Sie, dass Alpine beim Neustart den Inhalt der apkovl-Datei extrahiert, was ein wenig zusätzliche Zeit (und Arbeitsspeicher) in Anspruch nimmt.

Interessantes zu wissen

  • Um die Größe zu verringern, verwendet Alpine busybox. Busybox ist eine einzelne ausführbare Datei, die über Symlinks mit verschiedenen Dienstprogrammen (wie tarund so weiter). Dies ist eine häufig verwendete Technik in eingebetteten Systemen, z. B. der Fritz!Box.
  • Alpine hängt die FAT32-Partition schreibgeschützt als /media/mmcblk0p1 ein. Sie wird kurzzeitig wieder beschreibbar gemountet, um Änderungen beizubehalten.
  • Alpine erstellt ein Cache-Verzeichnis auf der FAT32-Partition, um die von den Online-Mirrors heruntergeladenen apk-Dateien zwischenzuspeichern.
  • Standardmäßig nur vi wird als Texteditor installiert. vi ist in der ausführbaren Datei busybox enthalten (/usr/bin/vi ist ein Symlink zu /bin/busybox).
  • lbu kann behalten mehrere Backupsund Sie können auf ein älteres Backup zurückgreifen. Dies wirkt sich nur darauf aus, welches apkovl als aktiv betrachtet wird.
  • Alpine verfügt nicht über udev, sondern über mdev.
  • Da Alpine ein RAM-basiertes Dateisystem verwendet, können Sie die SD-Karte einfach entfernen, nachdem Alpine gebootet hat, und den nächsten Pi damit booten. Sehr cool!
    • Beachten Sie, dass Sie die Datei nicht einfach wieder einstecken können, da Sie einen E/A-Fehler erhalten.

Ressourcen