La actualización de apt sigue colgándose, no hay forma de solucionar el problema

La actualización de apt sigue colgándose, no hay forma de solucionar el problema

La actualización adecuada en Ubuntu 16.04 se bloquea aleatoriamente en cada actualización de vista.

Nada de lo que he probado puede solucionarlo permanentemente y no tengo forma de solucionarlo.

La única solución que tengo es crear un script de shell para apt clean && apt update. entonces funciona.

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

Cosas que he hecho:

Cambiar a DNS de Google

Deshabilitar el DNS administrado por NetworkManager

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

Agregue Google DNS al cliente DHCP (dhcp antepondrá Google DNS a /etc/resolv.conf)

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

Reiniciar NetworkManager

systemctl restart NetworkManager.service

editar configuración apta

Algunos repositorios tienen problemas con la canalización http/1.1.

Pruebe lo siguiente:

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


A veces es difícil ver qué repositorios están fallando debido a largos tiempos de espera.

reducir los tiempos de espera con

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


Forzar la desactivación de IP V4 al intentar resolver IP V6

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

crear script para apt-update

La actualización de apt-get a menudo se bloquea o falla. la solución para esto essiempre apt cleanantesapt update

Este comando crea un script llamado apt-updateque hace precisamente esto y debe usarse en lugar de apt-get updateoapt update

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

habilitar el cambio automático de espejo

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

habilitar repositorio de socios

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


Intenté editar la política de limpieza.

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

Incluso intenté agregar comandos de actualización posterior y actualización previa con

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

Estos 2 comandos son realmente problemáticos porque parecen intentar robar un candado o algo así. Al final los borré.

¿Cómo puedo resolver este problema de forma permanente sin recurrir a trucos como un script de shell que lo hace apt clean && apt update?

¿Cómo puedo solucionar este problema?

información relacionada