apk — Der Paketmanager von Alpine Linux
Praxis-Guide zu apk: Pakete installieren, aktualisieren und verwalten unter Alpine Linux — schlank, schnell und das Standard-Pattern für Docker-Images.
apk (Alpine Package Keeper) ist der Paketmanager von Alpine Linux – einer bewusst minimalistischen Distribution, die du vor allem aus schlanken Docker-Images kennst. Er installiert, aktualisiert und entfernt Pakete schnell und mit geringem Platzbedarf, was ihn zur ersten Wahl für Container macht. Das wichtigste Container-Pattern dabei: apk add --no-cache installiert Pakete, ohne den Paketindex auf der Platte zu hinterlassen – so bleiben deine Images klein. Dieser Guide zeigt dir die Befehle, die du im Alltag und in Dockerfiles am häufigsten brauchst.
Aktualisieren & Upgraden
apk update — Aktualisiert den Paketindex.
apk updateapk upgrade — Aktualisiert alle installierten Pakete.
apk upgradeapk update && apk upgrade — Aktualisiert Index und Pakete in einem Schritt.
apk update && apk upgradeInstallieren & Entfernen
apk add <package> — Installiert ein Paket.
apk add curlapk add <pkg1> <pkg2> — Installiert mehrere Pakete.
apk add curl wget gitapk add --no-cache <package> — Installiert ohne Caching (kleinere Docker-Images).
apk add --no-cache nodejs npmapk add --virtual .<name> <packages> — Installiert als virtuelles Paket (einfaches späteres Entfernen im Block).
apk add --virtual .build-deps gcc musl-devapk del <package> — Entfernt ein Paket.
apk del nginxapk del .<name> — Entfernt ein virtuelles Paket samt aller zugehörigen Mitglieder.
apk del .build-depsSuchen & Informieren
apk search <query> — Sucht Pakete nach Namen.
apk search nginxapk search -d '<query>' — Sucht in den Paketbeschreibungen.
apk search -d 'web server'apk info <package> — Zeigt Informationen zu einem installierten Paket.
apk info nginxapk info -a <package> — Zeigt alle Informationen (Abhängigkeiten, Größe, Dateien).
apk info -a nginxapk info -L <package> — Listet die von einem Paket installierten Dateien auf.
apk info -L nginxapk list --installed — Listet alle installierten Pakete auf.
apk list --installedCache & Repositories
apk cache clean — Bereinigt den Paket-Cache.
apk cache cleancat /etc/apk/repositories — Zeigt die konfigurierten Repositories.
cat /etc/apk/repositoriesapk add --repository <url> <package> — Installiert aus einem bestimmten Repository.
apk add --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing <package>apk policy <package> — Zeigt verfügbare Versionen und ihre Repositories.
apk policy nodejsDocker-Muster
apk add --no-cache <packages> — Standard-Installationsmuster für Docker (kein zurückbleibender Cache).
RUN apk add --no-cache python3 py3-pipapk add --virtual .deps <pkgs> && ... && apk del .deps — Build-Abhängigkeiten installieren, kompilieren, dann entfernen (Alternative zu Multi-Stage-Builds).
RUN apk add --virtual .build-deps gcc musl-dev && pip install package && apk del .build-depsapk --no-cache add <package> — Alternative Schreibweise für die No-Cache-Installation.
RUN apk --no-cache add curl bash Fazit
apk macht Paketverwaltung auf Alpine Linux schnell und unkompliziert – genau das, was du in Container-Umgebungen brauchst. In Dockerfiles ist apk add --no-cache der Standard: Es vermeidet einen zurückbleibenden Paketindex und hält deine Images schlank, ganz ohne nachträgliches apk cache clean. Achte darauf, dass apk del Pakete tatsächlich entfernt und systemweite Änderungen meist root (oder sudo) erfordern – ein vertippter del-Befehl kann Abhängigkeiten mitreißen. Installiere zudem nur aus vertrauenswürdigen Repositories und mit den offiziellen Signaturschlüsseln von Alpine, besonders wenn du --repository auf edge/testing zeigen lässt.
Weiterführende Links
- Alpine Linux Wiki: Package Management – offizielle Dokumentation zu apk (englisch)
- Alpine Linux – Projektseite – Downloads, Releases und Hintergründe zur Distribution (englisch)