apt update bleibt hängen, keine Möglichkeit zur Fehlerbehebung

apt update bleibt hängen, keine Möglichkeit zur Fehlerbehebung

Das Apt-Update unter Ubuntu 16.04 bleibt bei jeder Ansichtsaktualisierung zufällig hängen.

Nichts von dem, was ich versucht habe, kann das Problem dauerhaft beheben und ich habe keine Möglichkeit, es zu beheben.

Die einzige Lösung, die ich habe, besteht darin, ein Shell-Skript zu erstellen apt clean && apt update. Dann funktioniert es.

echo -e '#!/bin/bash\nsudo apt clean && sudo apt update' | sudo tee /usr/bin/apt-update; sudo chmod +x /usr/bin/apt-update

Dinge, die ich getan habe:

Wechseln Sie zu Google DNS

Deaktivieren Sie den von NetworkManager verwalteten DNS

sudo sed -i -e 's/^dns=dnsmasq/#dns=dnsmasq/' /etc/NetworkManager/NetworkManager.conf

Fügen Sie Google DNS zum DHCP-Client hinzu (DHCP stellt Google DNS /etc/resolv.conf voran)

echo 'prepend domain-name-servers 8.8.4.4;' | sudo tee -a /etc/dhcp/dhclient.conf

echo 'prepend domain-name-servers 8.8.8.8;' | sudo tee -a /etc/dhcp/dhclient.conf

Starten Sie NetworkManager neu

systemctl restart NetworkManager.service

apt-Konfiguration bearbeiten

Einige Repos haben Probleme mit http/1.1-Pipelining.

Versuche Folgendes:

echo 'Acquire::http::Pipeline-Depth "0";' | sudo tee /etc/apt/apt.conf.d/99pipelining-off


Manchmal ist es schwer zu erkennen, welche Repos aufgrund langer Timeouts fehlschlagen

Reduzieren Sie die Timeouts mit

echo 'Acquire::http::Timeout "5";' | sudo tee /etc/apt/apt.conf.d/99reduce-timeout


Erzwingen Sie IP V4, um den Versuch zur Auflösung von IP V6 zu deaktivieren.

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

Skript für Apt-Update erstellen

Apt-get update hängt oft/schlägt fehl. Die Lösung hierfür iststets apt cleanVorapt update

Dieser Befehl erstellt ein Skript namens , das genau dies tut und anstelle von oder apt-updateverwendet werden sollte.apt-get updateapt update

echo -e '#!/bin/bash\nsudo apt clean && sudo apt update' | sudo tee /usr/bin/apt-update; sudo chmod +x /usr/bin/apt-update

automatische Spiegelumschaltung aktivieren

sudo sed -i -e 's/deb http:\/\/il.archive.ubuntu.com\/ubuntu\//deb mirror:\/\/mirrors.ubuntu.com\/mirrors.txt/' sources.list

Partner-Repository aktivieren

sudo sed -i.bak "/^# deb .*partner/ s/^# //" /etc/apt/sources.list


Ich habe versucht, die Clean-Richtlinie zu bearbeiten

echo 'DSELECT::Clean "always";' | sudo tee /etc/apt/apt.conf.d/99DselectAlwaysClean

echo 'APT::Get::Clean=always;' | sudo tee /etc/apt/apt.conf.d/99AlwaysClean

Ich habe sogar versucht, Post-Update- und Pre-Update-Befehle hinzuzufügen mit

echo 'APT::Update::Post-Invoke {"/usr/bin/apt apt clean || exit 0"};' | sudo tee /etc/apt/apt.conf.d/99PostUpdateClean

echo 'APT::Update::Pre-Invoke {"/usr/bin/apt clean || exit 0"};' | sudo tee /etc/apt/apt.conf.d/99PreUpdateClean

Diese beiden Befehle sind tatsächlich problematisch, da sie anscheinend versuchen, das Schloss oder etwas Ähnliches zu stehlen. Am Ende habe ich sie gelöscht.

Wie kann ich dieses Problem dauerhaft lösen, ohne auf Hacks wie ein Shell-Skript zurückzugreifen, das dies tut apt clean && apt update?

Wie kann ich dieses Problem beheben?

verwandte Informationen