apt update continua pendurado, não há como solucionar problemas

apt update continua pendurado, não há como solucionar problemas

A atualização do Apt no Ubuntu 16.04 trava aleatoriamente a cada atualização de visualização.

Nada do que tentei pode corrigi-lo permanentemente e não tenho como solucionar o problema.

A única solução que tenho é criar um script de shell para apt clean && apt update. então funciona.

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

Coisas que fiz:

Mudar para o DNS do Google

Desativar DNS gerenciado pelo NetworkManager

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

Adicione o DNS do Google ao cliente DHCP (o dhcp precederá o DNS do Google em /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

Reinicie o NetworkManager

systemctl restart NetworkManager.service

editar a configuração do apt

Alguns repositórios têm problemas com o pipeline http/1.1.

Experimente o seguinte:

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


Às vezes é difícil ver quais repositórios estão falhando devido a longos tempos limite

reduza os tempos limite com

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


Forçar o IP V4 a desabilitar a tentativa de resolução do IP V6

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

criar script para apt-update

A atualização do apt-get geralmente trava/falha. a solução alternativa para isso ésempre apt cleanantesapt update

Este comando cria um script chamado apt-updateque faz exatamente isso e deve ser usado em vez de apt-get updateouapt update

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

ativar troca automática de espelho

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

ativar repositório de parceiro

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


Tentei editar a política limpa

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

Eu até tentei adicionar comandos Post update e Pre update com

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

esses 2 comandos são realmente problemáticos porque parecem tentar roubar o bloqueio ou algo assim. No final, eu os apaguei.

Como posso resolver permanentemente esse problema sem recorrer a hacks como um script de shell apt clean && apt update?

Como posso solucionar esse problema?

informação relacionada