Start · Hilfe · Alpine-Linux-Server einrichten
Alpine-Linux-Server einrichten: apk, OpenRC und musl
Alpine ist das kleinste System im Sortiment. Statt glibc und GNU-Werkzeugen nutzt es musl und BusyBox, statt systemd OpenRC. Diese Anleitung gilt für Alpine 3.24 auf einem Alpine-Server.
Was installiert ist
- OpenRC als Startsystem. Beim Start laufen
syslog,crondund das Netz. - apk mit den Paketquellen
mainundcommunity. - BusyBox mit der Shell
ash. bash ist nicht installiert. - doas statt sudo. OpenSSH für die Anmeldung kommt bei der Einrichtung des Servers hinzu.
1. Aktualisieren und Pakete installieren
apk update && apk upgrade
apk add nginx
apk search php
apk del entfernt ein Paket wieder. Die installierten Wunschpakete stehen in /etc/apk/world.
2. Dienste verwalten
Anders als bei Debian startet ein installierter Dienst nicht von selbst. Er wird einmal gestartet und für den Systemstart eingetragen:
rc-service nginx start
rc-update add nginx default
| Aufgabe | Alpine | Debian mit systemd |
|---|---|---|
| Starten, anhalten, neu starten | rc-service nginx start|stop|restart | systemctl start|stop|restart nginx |
| Zustand | rc-service nginx status | systemctl status nginx |
| Beim Start einschalten | rc-update add nginx default | systemctl enable nginx |
| Beim Start abschalten | rc-update del nginx default | systemctl disable nginx |
| Alle Dienste | rc-status | systemctl list-units |
3. Eigenen Dienst einrichten
Für ein Programm ohne mitgeliefertes Startskript reichen wenige Zeilen. Als /etc/init.d/meindienst speichern, Programm und Benutzer anpassen:
#!/sbin/openrc-run
name="meindienst"
command="/usr/local/bin/meindienst"
command_user="dienst"
command_background=true
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
}
chmod 755 /etc/init.d/meindienst
rc-update add meindienst default
rc-service meindienst start
4. cron und Protokolle
crond läuft bereits. Eigene Aufgaben stehen mit crontab -e in /etc/crontabs/root. Skripte in /etc/periodic/daily und den Nachbarordnern laufen täglich, stündlich, wöchentlich oder monatlich. Die Systemprotokolle schreibt BusyBox nach /var/log/messages.
5. Rechte mit doas
Für einen Benutzer, der Befehle als root ausführen darf:
adduser betrieb
adduser betrieb wheel
echo 'permit persist :wheel' > /etc/doas.d/wheel.conf
Danach führt dieser Benutzer Befehle mit doas aus, zum Beispiel doas apk upgrade. Wer sudo gewohnt ist, installiert es mit apk add sudo.
musl statt glibc
Programme aus apk-Paketen und aus dem Quellcode laufen ohne Einschränkung. Fertige Binärdateien, die für glibc gebaut sind, starten oft nicht. Das Paket gcompat hilft bei einfachen Fällen. Gibt es eine eigene Ausgabe für musl oder Alpine, ist sie die bessere Wahl. Für Software, die nur für glibc erscheint, passt ein Server mit Debian oder Ubuntu.
Auf die nächste Version wechseln
Alle sechs Monate erscheint eine neue Alpine-Version. Vor dem Wechsel einen Snapshot im Kundenkonto anlegen, dann in /etc/apk/repositories die Versionsnummer durch die neue ersetzen, hier am Beispiel 3.25, und aktualisieren:
sed -i 's/v3.24/v3.25/g' /etc/apk/repositories
apk update && apk upgrade --available
reboot
Container und Kernel
Alpine läuft bei uns als Container mit Incus. Er nutzt den Kernel des Hosts. Kernelpakete und eigene Kernelmodule entfallen deshalb. Wer einen eigenen Kernel braucht, wählt einen vServer mit KVM.
Häufige Fragen
- Wie viel Arbeitsspeicher braucht Alpine?
- Das System selbst kommt mit wenigen Megabyte aus. Den Bedarf bestimmen die Dienste, die darauf laufen.
- Warum fehlen Befehle, die ich von Debian kenne?
- BusyBox bringt schlanke Fassungen der üblichen Werkzeuge mit. Die vollen GNU-Fassungen gibt es als Pakete, etwa
coreutils,findutils,grepundbash.
Weiter: Die ersten Schritte auf Ihrem vServer Devuan-Server ohne systemd einrichten