Como diminuir o tempo de espera para atualizações do repositório

32

Às vezes, ao fazer um aptitude update/ apt-get updateou usar o Update Manager para atualizar, chego a um link de repositório que leva muito tempo. A porcentagem não termina e leva um bom tempo para ignorá-la.

Como posso diminuir o tempo para que, se um repositório em particular demorar mais de 10 segundos para se conectar ou terminar, ele seja ignorado e movido os seguintes. Aqui está uma imagem explicando o problema:

insira a descrição da imagem aqui

Ele está tentando conectar-se ao archive.ubuntu.com, mas, como está demorando muito, fica lá por pelo menos 3 a 5 minutos (não mediu o tempo) e, em seguida, é exibido como ignorado e passa para o seguinte. Desejo mudar isso para segundos em vez de minutos.

Luis Alvarado
fonte
Tente usar um espelho diferente. Os padrões para cada motivo geralmente não são os mais rápidos. Por exemplo, o espelho padrão para a China sempre me esperaria de 5 a 15 minutos para atualizar meus repositórios. Alterou para um mais rápido e agora leva cerca de 30 segundos.
Adempewolff
1
@adempewolff Você seria capaz / disposto a escrever uma resposta contendo as informações desse comentário e também mostrando (incluindo uma descrição e uma imagem) como mudar o espelho nas fontes de software?
Eliah Kagan

Respostas:

38

Como posso diminuir o tempo para que, se um repositório em particular demorar mais de 10 segundos para se conectar ou terminar, ele seja ignorado e movido os seguintes?

Os espelhos são uma opção, como @adempewolff explicou. Deixe-me dar uma resposta direta:

Definindo tempos limite de conexão apt-get

Você pode controlar esses tempos limite através das seguintes apt.confopções:

  Adquirir :: http :: Tempo limite "10";
  Adquirir :: ftp :: Tempo limite "10";
  

Observe que isso se aplica apenas aos tempos limite de conexão, NÃO aos tempos limite de "término", ou seja, se ele se conectar dentro de 10 segundos, continuará a baixar um pacote de 100 MB, mesmo que seja de 1 KB / segundo :)

Para implementar essas opções, basta criar um arquivo conf /etc/apt/apt.conf.d; suponha que chamemos isso 99timeout.

  • Pressione Alt+F2, digitegksudo gedit /etc/apt/apt.conf.d/99timeout
  • Digite / cole as linhas acima, com sua escolha de tempo limite em segundos
  • Salvar e sair.
  • Agora tente sudo apt-get update

E o hack do "encontrar o melhor servidor" do viciado em terminal!

Expandido e movido como resposta a esta pergunta mais apropriada


Opções adicionais do apt-get conf que você pode tentar ajustar

  • Acquire::Queue-Mode: Modo de enfileiramento; Queue-Mode pode ser um dos hostou accessque determina parallelizes como APT conexões de saída. hostsignifica que uma conexão por host de destino será aberta, accesssignifica que uma conexão por tipo de URI será aberta.

  • Acquire::Retries: Número de tentativas a serem executadas. Se este for diferente de zero, o APT tentará novamente os arquivos com falha no número especificado de vezes.

  • Acquire::http::Dl-Limit: aceita valores inteiros em kilobytes, para acelerar a velocidade de download e não desacelerar sua navegação / email / etc. ao atualizar. O valor padrão é 0, que desativa o limite e tenta usar o máximo possível da largura de banda. Se ativado, desabilitará apt-geto recurso de download paralelo.

  • Pesquise man apt.confse você acha que outra coisa pode ajudar!

ish
fonte
1
Existe uma maneira de implementar um tempo limite de "tempo de término"? Eu sei no meu caso (e acho que no caso do OP, pois ele menciona a porcentagem que leva uma eternidade, o que implica que ele já está conectado) geralmente não é uma questão de o tempo limite da conexão exceder, é apenas um problema de a conexão ser muito lenta ( 1 kb / s lento).
Adempewolff
Eu gostaria de poder dar +2 para essa segunda parte; Fiquei me perguntando como testar os servidores mais rápidos do terminal por um longo tempo.
Adempewolff
Obrigado @adempewolff, eu realmente quero escrever / modificar algo parecido netselect-aptcom o Ubuntu, então está tudo no executável. Quanto à sua pergunta sobre o tempo de término, não acho que exista uma maneira no nível apt-conf. Porém man apt.conf, e consulte "O grupo de aquisições", especificamente o Modo de fila e as novas tentativas, que podem ser úteis.
Ish
Eu aceitei, mas para o "Melhor hack do servidor", eu lhe dei +1 na outra resposta e nesta. É muito esperto.
Luis Alvarado
5

Freqüentemente, certos repositórios carregando dolorosamente lento é apenas um sintoma do uso de um espelho lento. Os espelhos padrão para muitas regiões não são os mais rápidos (sei que esse é o caso na China).

A alteração do seu espelho é realmente fácil através da GUI de fontes de software. Você pode abrir esta janela de duas maneiras:

  1. Abrir Ubuntu Software Centere clique em Software Sourcesno Editmenu.

ou

  1. Abra um terminal (ou tipo alt-F2) e executesoftware-properties-gtk

Quando essa janela aparecer, você verá um menu suspenso dizendo Download From:que seleciona seu espelho. Selecione a Otheropção neste menu.

softwares fontes

Na nova janela que aparece, clique no Select Best Serverbotão para testar e escolher automaticamente o servidor mais rápido para a sua localização.

selecione o melhor servidor

Espero que isto ajude!

Veja também:

adempewolff
fonte
Hmmm, não consigo obter a captura de tela para capturar o menu suspenso em ação. Não sei se eu quero fazer uma pergunta sobre este ou envie um erro ...
adempewolff
Outro arquivo pode bug que possível é que o software-properties-gtkprograma usado para chegar na colisão Unidade quando você digitou Software Sources, mas já não faz ...
adempewolff
Boa resposta adempewolff. Como primeiro passo, seria esse. Se não funcionar, a resposta aceita seria a solução. +1 Obrigado.
Luis Alvarado
2

O apt-fast funciona como o apt-get , mas baixa atualizações e pacotes do repositório em paralelo. Veja este tutorial para aprender como usá-lo.

tslocum
fonte