Vor ein paar Minuten einen Server neu installiert und dann beim ersten Befehl sudo apt-get update hängt das System Minuten lang mit der Meldung “Waiting for headers”. Da alles schnell gehen muss, wurden mehrere Tipps aus einschlägigen Foren ergebnislos versucht. Allerdings wird in fast jedem Beitrag auf die Datei /etc/apt/sources.list als mögliche Fehlerquelle verwiesen. Diese beinhaltet alle Quellen für Pakete (Repositories) des installierten Systems. Falls das Problem auch unter Arch Linux auftreten sollte, findet Ihr die Qullen-Liste für pacman hier: /etc/pacman.d/mirrorlist
Waiting for headers ?
Da “Waiting for headers” so gut wie nichts aussagt, wurden erst einmal alle Quellen zur Fehlereingrenzung mit einer Raute (#) davor auskommentiert. Danach sah die sources.list wie folgt aus (gekürzt):
#deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse #deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse ...
Der Standort meines Servers ist mitten in Deutschland. Doch woher weiß ich welche Adressen für die deutschen Quellen die richtigen sind? Ganz einfach, es gibt hierfür sehr guten source.list Generator.
Dort wählt man das Land in dem der Server steht und seine Ubuntu Version sowie die benötigten Quellen. Im Zweifelsfall sind dies für Ubuntu z.B.:
- Main – Officially supported software.
- Restricted – Supported software that is not available under a completely free license.
- Universe – Community-maintained, i.e. not officially supported software.
- Multiverse – Software that is “not free”.
- Security – Important Security Updates.
- Updates – Recommended Updates.
Also alles benötigte markieren und auf “Generate List” klicken. Jetzt kann die Ausgabe eins zu eins in folgende Datei eingefügt werden:
nano /etc/apt/sources.list
Welche danach wie folgt aussieht:
###### Ubuntu Main Repos deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse ###### Ubuntu Update Repos deb http://de.archive.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
Tipp
Wer genauer sehen möchte, wo apt-get update mit der Meldung “Waiting for headers” stehen bleibt, findet dies mit nachfolgendem dem Befehl heraus. Dabei wird jede Verbindungsanfrage (GET) und mögliche Fehlermeldungen im Terminal ausgegeben.
apt-get -o Debug::Acquire::http=true update
Anmerkung
In einigen Foren wurde auf eine “Mirror” Liste für die Source Datei verwiesen. Diese wird automatisch anhand der GeoIP am Server generiert und soll dann die nächstgelegenen Quellen ausgeben. Leider hat diese bei mir nicht funktioniert. Falls diese Möglichkeit noch aktuell ist und unterstützt wird, wäre das sicher interessant für Laptopreisende.