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 update

apk upgrade — Aktualisiert alle installierten Pakete.

apk upgrade

apk update && apk upgrade — Aktualisiert Index und Pakete in einem Schritt.

apk update && apk upgrade

Installieren & Entfernen

apk add <package> — Installiert ein Paket.

apk add curl

apk add <pkg1> <pkg2> — Installiert mehrere Pakete.

apk add curl wget git

apk add --no-cache <package> — Installiert ohne Caching (kleinere Docker-Images).

apk add --no-cache nodejs npm

apk add --virtual .<name> <packages> — Installiert als virtuelles Paket (einfaches späteres Entfernen im Block).

apk add --virtual .build-deps gcc musl-dev

apk del <package> — Entfernt ein Paket.

apk del nginx

apk del .<name> — Entfernt ein virtuelles Paket samt aller zugehörigen Mitglieder.

apk del .build-deps

Suchen & Informieren

apk search <query> — Sucht Pakete nach Namen.

apk search nginx

apk search -d '<query>' — Sucht in den Paketbeschreibungen.

apk search -d 'web server'

apk info <package> — Zeigt Informationen zu einem installierten Paket.

apk info nginx

apk info -a <package> — Zeigt alle Informationen (Abhängigkeiten, Größe, Dateien).

apk info -a nginx

apk info -L <package> — Listet die von einem Paket installierten Dateien auf.

apk info -L nginx

apk list --installed — Listet alle installierten Pakete auf.

apk list --installed

Cache & Repositories

apk cache clean — Bereinigt den Paket-Cache.

apk cache clean

cat /etc/apk/repositories — Zeigt die konfigurierten Repositories.

cat /etc/apk/repositories

apk 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 nodejs

Docker-Muster

apk add --no-cache <packages> — Standard-Installationsmuster für Docker (kein zurückbleibender Cache).

RUN apk add --no-cache python3 py3-pip

apk 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-deps

apk --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.

Verwandte Kommandos

  • apt – High-Level-Paketmanager von Debian und Ubuntu
  • apt-get – klassisches Debian-/Ubuntu-Tool für Skripte
  • brew – Paketmanager für macOS und Linux