
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 clean
Vorapt update
Dieser Befehl erstellt ein Skript namens , das genau dies tut und anstelle von oder apt-update
verwendet werden sollte.apt-get update
apt 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.