Über die Update-Funktion des Paket-Managers apt von Debian, Ubuntu und anderen Linux-Distributionen lassen sich System-Komponenten und Programme schnell auf den neuesten Stand bringen. Doch manchmal soll ein bestimmtes Paket bewusst nicht aktualisiert werden – sei es wegen bekannter Probleme, Kompatibilitätsissues oder einfach weil eine bestimmte Version benötigt wird.
Warum Updates verhindern?
Es gibt mehrere gute Gründe, bestimmte Pakete von automatischen Updates auszuschließen: Die neue Version könnte Bugs enthalten, die Kompatibilität zu anderen Tools beeinträchtigen oder schlichtweg Features entfernen, die ihr noch benötigt. Besonders bei produktiven Servern oder kritischen Entwicklungsumgebungen ist Vorsicht geboten.
Pakete mit apt-mark sperren
Der einfachste Weg führt über den Befehl apt-mark. Öffnet ein Terminal und gebt folgenden Befehl ein:
apt-mark hold NameDesPakets [Enter]
Beispielsweise verhindert apt-mark hold docker-ce, dass Docker bei der nächsten Aktualisierung über apt update && apt upgrade mit auf den neuesten Stand gebracht wird.
Gesperrte Pakete verwalten
Mit apt-mark showhold könnt ihr alle aktuell gesperrten Pakete anzeigen lassen. So behaltet ihr den Überblick und vergesst nicht, welche Software ihr vom Update-Prozess ausgeschlossen habt.
Um die Sperre wieder aufzuheben, verwendet ihr:
apt-mark unhold NameDesPakets [Enter]
Alternative Methoden
Neben apt-mark gibt es weitere Ansätze. Über die Datei /etc/apt/preferences lassen sich komplexere Regeln definieren. Hier könnt ihr nicht nur Pakete komplett sperren, sondern auch bestimmte Versionen bevorzugen oder Pakete aus bestimmten Repositories priorisieren.
Ein Beispiel für /etc/apt/preferences:
Package: firefox
Pin: version 115.*
Pin-Priority: 1001
Dieser Eintrag würde Firefox bei Version 115.x halten und spätere Major-Updates verhindern.
Snap und Flatpak Updates stoppen
Bei Snap-Paketen funktioniert das Ganze anders. Hier verwendet ihr:
sudo snap refresh --hold=forever NameDesPakets
Für Flatpak gibt es standardmäßig keine Hold-Funktion, aber ihr könnt Updates per flatpak mask com.example.App verhindern.
Container und moderne Deployments
In Docker-Umgebungen solltet ihr ohnehin mit festen Version-Tags arbeiten statt :latest zu verwenden. So vermeidet ihr ungewollte Updates von vornherein. Bei Kubernetes könnt ihr über Image-Pull-Policies und feste Tags ähnliche Kontrolle ausüben.
Sicherheitsüberlegungen
Denkt daran: Gesperrte Pakete erhalten auch keine Sicherheitsupdates. Prüft regelmäßig, ob die Gründe für die Sperre noch bestehen. Bei kritischen Sicherheitslücken solltet ihr Updates trotz möglicher Probleme einspielen.
Ein guter Kompromiss ist es, Updates zunächst in einer Testumgebung zu prüfen, bevor ihr sie auf produktive Systeme übertragt. Tools wie Ansible oder Puppet können dabei helfen, Updates kontrolliert und reproduzierbar auszurollen.
Automatisierung und Monitoring
Für größere Infrastrukturen empfiehlt sich ein systematischer Ansatz. Tools wie Landscape (Ubuntu), Foreman oder einfache Bash-Scripts können euch beim Management von Update-Zyklen unterstützen. So behaltet ihr auch bei hunderten Servern den Überblick über gesperrte Pakete und deren Gründe.
Mit apt list --upgradable seht ihr übrigens alle verfügbaren Updates – auch die für gesperrte Pakete. So könnt ihr bewusst entscheiden, wann der richtige Zeitpunkt für ein Update gekommen ist.
Zuletzt aktualisiert am 08.04.2026

