Domanda generale:
Qualcuno potrebbe spiegare cos'è il comando apt-get update
fa e quando dovrei davvero usarlo?
Osservazioni
Si prega di fornire una risposta dettagliata . Non solo una copia della pagina man, a meno che la tua versione non sia davvero dettagliata (inserisco una definizione dalla pagina man qui sotto).
apt-get update :utilizzato per risincronizzare i file di indice del pacchetto dalle relative origini. Gli indici dei pacchetti disponibili vengono recuperati dalle posizioni specificate in /etc/apt/sources.list(5). Un aggiornamento deve sempre essere eseguito prima di un aggiornamento o di un dist-upgrade.
Sub-domande:
- Dove è archiviato l'indice del pacchetto? Su un database? In un file?
- Cosa succede se eseguo
apt-get install
senza aggiornare la cache? C'è la possibilità che il pacchetto remoto non esista più e che il collegamento venga interrotto? - C'è una politica concordata sui repository di deb? Ad esempio, un repository dovrebbe contenere solo l'ultima versione di un pacchetto o, al contrario, dovrebbe contenere tutte le versioni disponibili per uno specifico rilascio di distribuzione?
Contesto
Faccio la mia domanda perché sto studiando il framework Docker. Una delle sue funzionalità è il Dockerfile , che ti consente di creare una sorta di immagine del sistema operativo eseguendo alcune istruzioni da questo file.
Una proprietà di questa immagine è che dovrebbe essere sempre la stessa, qualunque sia il contesto (tempo di compilazione, ecc.).
Temo che se lancio apt-get update
comando in momenti diversi, il risultato sarebbe diverso e quindi le mie immagini sarebbero diverse.
Risposta accettata:
apt-get update
scarica l'elenco dei pacchetti disponibili.
L'elenco dei pacchetti può cambiare nel tempo. Vengono aggiunti nuovi pacchetti e rimossi i vecchi pacchetti. Quindi, se hai una cache molto vecchia e provi a fare un apt-get install
, potrebbe tentare di scaricare un pacchetto che non esiste più.
Per quanto tempo un vecchio pacchetto viene conservato in un repository dipende dal manutentore del repository (la tua distribuzione). Pertanto, se stai utilizzando qualcosa come la finestra mobile, in cui la cache potrebbe essere molto obsoleta, dovresti sempre eseguire apt-get update
prima di installare qualsiasi pacchetto.
Il motivo per la rimozione e l'aggiunta di pacchetti è principalmente correzioni di bug e aggiornamenti di sicurezza. Tuttavia, se utilizzi repository di terze parti come PPA, tutto è possibile.
Correlati:quando viene visualizzato il messaggio di errore "lavori:non trovati"?Quando si utilizza qualcosa come la finestra mobile per la containerizzazione in un ambiente aziendale, è necessario creare il container una volta, quindi spostarlo attraverso i vari ambienti di rilascio (sviluppo, staging, produzione) e non ricostruire il container ogni volta. In questo modo non avrai un contenitore diverso che non sia stato testato.
Per rispondere alla tua domanda su dove risiedono i file della cache, /var/lib/apt/lists
.