Irgendwann scheitert apt update auf Ihrem VPS Linux Infrawire mit einer Wand aus rotem Text: ein fehlender GPG-Schlüssel, ein nicht mehr existierendes Repository oder eine Sperre, die nicht verschwindet. Jeder Fehler hat eine klare Ursache und eine kurze Lösung.
Diese Anleitung geht die häufigsten Probleme unter Ubuntu 24.04 und Debian 12 durch, vom harmlosesten bis zum aufwendigsten Eingriff.
📋 Voraussetzungen
- Ein VPS mit Ubuntu 24.04 oder Debian 12
- Root-SSH-Zugang (IP und Root-Passwort finden Sie in Ihrem Kundenbereich)
- Grundkenntnisse der Kommandozeile
1. Zuerst die Quellen finden
Wissen Sie vor jeder Korrektur, wo Ihre Repositories definiert sind:
Bashcat /etc/os-release cat /etc/apt/sources.list ls -l /etc/apt/sources.list.d/ apt update 2>&1 | grep -E '^(Err|W:|E:)'
Unter Ubuntu 24.04 liegen die Haupt-Repositories in /etc/apt/sources.list.d/ubuntu.sources, im deb822-Format (.sources-Dateien). Debian 12 nutzt weiterhin das klassische einzeilige Format in /etc/apt/sources.list; beide Formate funktionieren nebeneinander.
Bash# Beispiel für einen deb822-Eintrag (Ubuntu 24.04) Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
2. Sperrfehler und unterbrochenes dpkg
Die Meldung Could not get lock /var/lib/dpkg/lock-frontend bedeutet, dass ein anderer Prozess apt nutzt, sehr oft unattended-upgrades kurz nach dem Start. Prüfen Sie zuerst:
Bashps aux | grep -E 'apt|dpkg|unattended' | grep -v grep lsof /var/lib/dpkg/lock-frontend
Läuft ein Prozess, warten Sie einige Minuten. Löschen Sie eine Sperrdatei nur, wenn sie von nichts gehalten wird (riskant, falls Sie sich irren), und reparieren Sie dann den unterbrochenen Zustand:
Bashrm -f /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/cache/apt/archives/lock dpkg --configure -a apt --fix-broken install
Die Meldung dpkg was interrupted, you must manually run 'dpkg --configure -a' löst genau der erste dieser Befehle.
3. NO_PUBKEY und fehlende GPG-Schlüssel
Der Fehler The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCD1234 bedeutet, dass einem Drittanbieter-Repository ein vertrauenswürdiger Schlüssel fehlt. Verwenden Sie nicht das veraltete apt-key: Legen Sie den Schlüssel in /etc/apt/keyrings/ ab und verweisen Sie mit signed-by darauf.
Bashinstall -d -m 0755 /etc/apt/keyrings curl -fsSL https://example.com/repo/key.gpg | gpg --dearmor -o /etc/apt/keyrings/example.gpg chmod 644 /etc/apt/keyrings/example.gpg echo 'deb [signed-by=/etc/apt/keyrings/example.gpg] https://example.com/repo stable main' > /etc/apt/sources.list.d/example.list apt update
Nutzen Sie die Schlüssel-URL aus der offiziellen Dokumentation der Software und installieren Sie bei Bedarf zuerst curl gnupg. Betrifft der Fehler das Ubuntu- oder Debian-Archiv selbst, installieren Sie das Schlüsselpaket neu: apt install --reinstall ubuntu-keyring bzw. debian-archive-keyring.
4. Defekte Drittanbieter-Repositories
Ein Fehler wie 404 Not Found oder does not have a Release file bei einem PPA oder Hersteller-Repository bedeutet meist, dass Ihre Version nicht mehr unterstützt wird. Deaktivieren Sie es, statt es zu löschen:
Bash# Klassische .list-Datei: umbenennen mv /etc/apt/sources.list.d/broken.list /etc/apt/sources.list.d/broken.list.disabled # deb822-.sources-Datei: diese Zeile in den Block einfügen Enabled: no
Führen Sie danach apt update erneut aus. Der Fehler verschwindet, und bereits installierte Pakete funktionieren weiter.
5. Uhrzeitfehler: Release file not valid yet
Release file for ... is not valid yet (invalid for another 3h 12min) bedeutet, dass die Systemuhr dem Zeitstempel des Repositorys hinterherhinkt. Prüfen und neu synchronisieren:
Bashtimedatectl timedatectl set-ntp true systemctl restart systemd-timesyncd
Ist systemd-timesyncd nicht installiert (manche minimalen Debian-Images), nutzen Sie stattdessen apt install -y chrony.
6. Versionen am Lebensende (EOL)
Erreicht eine Version ihr Lebensende, werden ihre Pakete verschoben, und apt update liefert 404 oder no longer has a Release file. Bei einer Ubuntu-Version ohne LTS verweisen Sie die Quellen auf das Archiv alter Versionen:
Bashsed -i 's|http://archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g; s|http://security.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list /etc/apt/sources.list.d/*.sources 2>/dev/null apt update
Für ein altes Debian nutzen Sie http://archive.debian.org/debian und entfernen die Security-Zeile. Betrachten Sie ein EOL-System nur als Übergangslösung: Es erhält keine Sicherheitskorrekturen mehr, planen Sie also ein Upgrade auf eine unterstützte Version.
7. Prüfen
Bashapt update apt upgrade --dry-run apt-get check
apt update muss ohne Err- oder E:-Zeilen enden, und apt-get check darf nichts ausgeben.
🛠️ Fehlerbehebung
Die Sperre kehrt bei jedem Versuch zurück: Vermutlich läuft unattended-upgrades. Prüfen Sie systemctl status unattended-upgrades und warten Sie das Ende ab.
Conflicting values set for option Signed-By: Dasselbe Repository ist doppelt mit verschiedenen Schlüsseln deklariert. Suchen Sie mit grep -r example.com /etc/apt/ und behalten Sie nur einen Eintrag.
apt --fix-broken install scheitert an einem Paketskript: Lesen Sie die letzten Fehlerzeilen und versuchen Sie dann dpkg --remove --force-remove-reinstreq PACKAGE mit anschließender normaler Neuinstallation.
✅ Ihre Paketverwaltung ist wieder gesund: Updates und Installationen laufen ohne Fehler!