Come ridurre i tempi di attesa per gli aggiornamenti del repository


32

Quando eseguo un aptitude update/ apt-get updateo utilizzo di Update Manager per aggiornare a volte arrivo a un collegamento al repository che impiega troppo tempo. La percentuale non finisce e ci vuole un po 'di tempo prima che la ignori.

Come posso ridurre il tempo in modo che se un determinato repository impiega più di 10 secondi per connettersi o finire, dovrebbe ignorarlo e spostare i seguenti. Ecco un'immagine che spiega il problema:

inserisci qui la descrizione dell'immagine

Sta cercando di connettersi a archive.ubuntu.com ma dal momento che sta impiegando troppo tempo, rimane lì per almeno 3-5 minuti (non è stato misurato il tempo) e quindi viene visualizzato come ignorato e passa a quanto segue. Vorrei cambiarlo in secondi anziché minuti.


Prova a utilizzare un altro mirror. Quelli predefiniti per ogni motivo spesso non sono i più veloci. Ad esempio il mirror predefinito per la Cina mi farebbe sempre aspettare 5-15 minuti per aggiornare i miei repository. Modificato in uno più veloce e ora ci vogliono circa 30 secondi.
Adempewolff,

1
@adempewolff Saresti in grado / disposto a scrivere una risposta contenente le informazioni contenute in quel commento e mostrando anche (includendo sia una descrizione che un'immagine) come cambiare il mirror nelle Sorgenti software?
Eliah Kagan,

Risposte:


38

Come posso ridurre il tempo in modo che se un determinato repository impiega più di 10 secondi per connettersi o finire, dovrebbe ignorarlo e spostare i seguenti?

Gli specchi sono un'opzione, come ha spiegato @adempewolff. Lascia che ti dia una risposta diretta però:

Impostazione dei timeout della connessione apt-get

È possibile controllare questi timeout tramite le seguenti apt.confopzioni:

  Acquire :: http :: Timeout "10";
  Acquire :: ftp :: Timeout "10";
  

Si noti che ciò vale solo per i timeout di connessione, NON per i "timeout" di timeout, ovvero se si connette entro 10 secondi, continuerà a scaricare un pacchetto da 100 MB anche se è a 1 KB / secondo :)

Per implementare queste opzioni, è sufficiente creare un file conf in /etc/apt/apt.conf.d; supponiamo di chiamarlo 99timeout.

  • Premere Alt+F2, digitaregksudo gedit /etc/apt/apt.conf.d/99timeout
  • Digita / incolla le righe sopra, con la tua scelta di timeout in secondi
  • Salva ed esci.
  • Adesso prova sudo apt-get update

E l'hack "trova il miglior server" del tossicodipendente!

Espanso e spostato come risposta a questa domanda più appropriata


Opzioni aggiuntive di apt-get conf che puoi provare a modificare

  • Acquire::Queue-Mode: Modalità di accodamento; La modalità coda può essere una hosto accessche determina il modo in cui APT parallelizza le connessioni in uscita. hostsignifica che verrà aperta una connessione per host di destinazione, verrà aperta accessuna connessione per tipo di URI.

  • Acquire::Retries: Numero di tentativi da eseguire. Se questo è diverso da APT, i tentativi falliti verranno ripetuti il ​​numero specificato.

  • Acquire::http::Dl-Limit: accetta valori interi in kilobyte, per limitare la velocità di download e non rallentare la navigazione / e-mail / ecc. durante l'aggiornamento. Il valore predefinito è 0 che disattiva il limite e prova a utilizzare il più possibile la larghezza di banda. Se abilitato, disabiliterà apt-getla funzione di download parallelo.

  • Scava man apt.confse pensi che qualcos'altro potrebbe aiutare!


1
C'è un modo per implementare un timeout "tempo di fine"? Lo so nel mio caso (e sto indovinando nel caso del PO mentre menziona la percentuale che prende per sempre, implicando che è già connessa) di solito non è una questione di timeout della connessione, è solo un problema della connessione che è meticolosamente lenta ( come 1 kb / s lento).
Adempewolff,

Vorrei poterti dare +2 per quella seconda parte; Mi chiedo come testare i server più veloci dal terminale da molto tempo.
Adempewolff,

Grazie @adempewolff, in realtà voglio scrivere / modificare qualcosa come netselect-aptUbuntu, quindi è tutto nell'eseguibile. Per quanto riguarda la tua domanda sull'orario di fine, non credo che ci sia un modo a livello di apt-conf. Ma man apt.confvedi "Il gruppo di acquisizione", in particolare la modalità coda e i tentativi che potrebbero essere utili.
ish,

Ho accettato ma per il "Miglior hack del server" ti ho dato un +1 su quell'altra risposta e questa. È molto intelligente.
Luis Alvarado,

5

Spesso alcuni repository caricati in modo dolorosamente lento sono solo un sintomo dell'utilizzo di un mirror lento. I mirror predefiniti per molte regioni non sono i più veloci (so che questo è il caso in Cina).

La modifica del mirror è davvero semplice tramite la GUI delle fonti software, è possibile aprire questa finestra in due modi:

  1. Apri Ubuntu Software Centere fai clic su Software Sourcesnel Editmenu.

o

  1. Apri un terminale (o digita alt-F2) ed eseguisoftware-properties-gtk

Quando viene visualizzata questa finestra, noterai un menu a discesa Download From:che dice che seleziona il tuo mirror. Seleziona l' Otheropzione da questo menu.

softwaresources

Nella nuova finestra che viene visualizzata fai clic sul Select Best Serverpulsante e questo verificherà e sceglierà automaticamente il server più veloce per la tua posizione.

seleziona il miglior server

Spero che sia di aiuto!

Guarda anche:


Hmmm, non riesco a ottenere lo screenshot per catturare il menu a discesa in azione. Non so se voglio fare una domanda al riguardo o presentare un bug ...
adempewolff,

Un altro possibile bug che potrei presentare è che il software-properties-gtkprogramma veniva visualizzato nel trattino Unity durante la digitazione Software Sources, ma non lo fa più ...
Adempewolff,

Buona risposta adempewolff. Come primo passo sarebbe questo. Se non funziona, la risposta accettata sarebbe la soluzione. +1 Grazie.
Luis Alvarado,

2

apt-fast funziona come apt-get , ma scarica in parallelo aggiornamenti del repository e pacchetti. Vedi questo tutorial per imparare come usarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.