Regelmäßige Updates sind essenziell, um Linux-Server sicher und performant zu halten. Doch nicht immer ist ein Upgrade sofort sinnvoll: Manche Anwendungen erfordern eine bestimmte Version oder ein Major-Upgrade ist noch nicht kompatibel. In solchen Fällen können Administratoren gezielt Pakete von Updates ausschließen. Dieser Artikel zeigt Schritt für Schritt, wie Sie mit apt-mark
arbeiten, welche Alternativen es gibt und welche Vorsichtsmaßnahmen zu beachten sind.
Warum Pakete zurückhalten?
Beispiele für typische Szenarien:
- Ein Major-Upgrade (z. B. von MySQL 5.7 auf 8.0) bringt inkompatible Änderungen.
- Eine Drittanbieter-Software unterstützt nur eine bestimmte Version einer Bibliothek.
- In einer Staging-Umgebung soll ein stabiler Versionsstand beibehalten werden.
Vor einem Hold sollten Sie unbedingt:
- ein Backup wichtiger Daten und Konfigurationsdateien erstellen
- in einer Testumgebung prüfen, ob ein Hold das Systemverhalten beeinflusst
- dokumentieren, warum ein Paket zurückgehalten wurde
Schritt-für-Schritt-Anleitung mit apt-mark
1. Verfügbare Upgrades anzeigen
sudo apt list --upgradable

Dieser Befehl listet alle Pakete, für die Updates vorliegen. Beispiel:
mysql-client/focal-updates 8.0.35-0ubuntu0.20.04.1 amd64 [upgradable from: 5.7.42-0ubuntu0.20.04.1]
2. Paket zurückhalten
Mit apt-mark hold
verhindern Sie, dass ein Paket bei Updates automatisch aktualisiert wird:
sudo apt-mark hold mysql-client mysql-server

Damit wird der Hold-Status gesetzt.
3. Gehaltene Pakete prüfen
sudo apt-mark showhold
Dieser Befehl zeigt alle aktuell zurückgehaltenen Pakete an.
4. Update-Simulation durchführen
Um zu verifizieren, dass die Pakete nicht mehr aktualisiert werden, können Sie ein Upgrade simulieren:
sudo apt-get -s dist-upgrade

Die Ausgabe enthält dann die Zeile:
The following packages have been kept back:
mysql-client mysql-server
Hinweis: „kept back“ kann auch ohne Hold auftreten, wenn Abhängigkeiten fehlen oder Konflikte bestehen. Mit apt-mark hold
verhindern Sie jedoch explizit automatische Upgrades.
5. Hold wieder aufheben
Soll das Paket wieder automatisch aktualisiert werden, lösen Sie den Status mit:
sudo apt-mark unhold mysql-client mysql-server
Alternative: APT-Pinning
Für granularere Kontrolle können Sie APT-Pinning verwenden. Damit lassen sich bestimmte Versionen dauerhaft priorisieren. Beispiel für eine Regel in /etc/apt/preferences.d/mysql-pin
:
Package: mysql-server
Pin: version 5.7.*
Pin-Priority: 1001
Mit einem hohen Pin-Priority bleibt APT auf der gewünschten Version, unabhängig von einem verfügbaren Major-Upgrade.
APT-Pinning ist sinnvoll, wenn:
- Sie exakt eine bestimmte Version benötigen
- mehrere Repositories mit unterschiedlichen Paketständen eingebunden sind
- komplexe Abhängigkeiten verhindert werden sollen
Troubleshooting
- Paket trotz Hold aktualisiert? → Prüfen Sie mit
sudo apt-mark showhold
, ob das Hold korrekt gesetzt wurde. - Paket wird als „kept back“ angezeigt, aber nicht geupdatet? → Ursache kann ein geändertes Abhängigkeitsmodell sein, nicht nur ein Hold. Prüfen Sie mit
apt-get -s dist-upgrade
. - Sicherheitspatches verpasst? → Halten Sie nur so lange wie nötig, da selbst sicherheitsrelevante Updates blockiert werden.
Weiterführende Links
- APT-Mark man page (Debian/Ubuntu)
- Ubuntu APT Documentation
- Admin Intelligence Blog – Linux & Mailserver
Haben Sie noch Fragen zu Linux Paketen oder anderen Linux Themen? Gerne unterstützen wir Sie mit unserem Know-How beim Aufbau und dem Betrieb Ihres eigenen Linux Servers. Sprechen Sie uns an!
Weitere Linux und Themen finden Sie hier.
- Risky Logins auf MS365 mit Icinga2 prüfen - 29. April 2025
- Integration von Jira in Icinga2 - 7. März 2025
- Plattenplatz auf Linux mit ncdu analysieren - 9. August 2022