Cosa fa "sudo apt-get update"?


Risposte:


551

In poche parole, in apt-get updaterealtà non installa nuove versioni del software. Al contrario, aggiorna gli elenchi dei pacchetti per gli aggiornamenti per i pacchetti che devono essere aggiornati, nonché i nuovi pacchetti che sono appena arrivati ​​ai repository.

  • apt-get updatescarica gli elenchi dei pacchetti dai repository e li "aggiorna" per ottenere informazioni sulle versioni più recenti dei pacchetti e sulle relative dipendenze. Lo farà per tutti i repository e PPA. Da http://linux.die.net/man/8/apt-get :

    Utilizzato per risincronizzare i file di indice del pacchetto dalle loro origini. Gli indici dei pacchetti disponibili vengono recuperati dalle posizioni specificate in /etc/apt/sources.list(5). Un aggiornamento deve essere sempre eseguito prima di un aggiornamento o dist-upgrade.

  • apt-get upgraderecupererà le nuove versioni dei pacchetti esistenti sul computer se APT conosce queste nuove versioni tramite apt-get update.

    Da http://linux.die.net/man/8/apt-get :

    Utilizzato per installare le versioni più recenti di tutti i pacchetti attualmente installati sul sistema dalle fonti elencate in /etc/apt/sources.list(5). I pacchetti attualmente installati con le nuove versioni disponibili vengono recuperati e aggiornati; in nessun caso i pacchetti attualmente installati vengono rimossi, né i pacchetti che non sono già installati vengono recuperati e installati. Le nuove versioni dei pacchetti attualmente installati che non possono essere aggiornati senza modificare lo stato di installazione di un altro pacchetto verranno lasciate alla loro versione corrente. [Il mio enfasi] È necessario prima eseguire un aggiornamento in modo tale che apt-get sappia che sono disponibili nuove versioni dei pacchetti.

  • apt-get dist-upgradefarà lo stesso lavoro svolto da apt-get upgrade, inoltre gestirà in modo intelligente le dipendenze, quindi potrebbe rimuovere pacchetti obsoleti o aggiungerne di nuovi. Vedi qui: Che cos'è "dist-upgrade" e perché aggiorna più di "upgrade"?

    Da http://linux.die.net/man/8/apt-get :

    Oltre a svolgere la funzione di aggiornamento, questa opzione gestisce anche in modo intelligente il cambiamento delle dipendenze con le nuove versioni dei pacchetti; apt-get ha un sistema "intelligente" di risoluzione dei conflitti e tenterà di aggiornare i pacchetti più importanti a spese di quelli meno importanti, se necessario. Il /etc/apt/sources.listfile (5) contiene un elenco di posizioni da cui recuperare i file del pacchetto desiderati. Vedi anche apt_preferences (5) per un meccanismo per scavalcare le impostazioni generali per i singoli pacchetti.

È possibile combinare i comandi &&come segue:

sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg

o per ottenere le versioni più recenti possibili secondo i requisiti di versione delle dipendenze:

sudo apt-get update && sudo apt-get dist-upgrade

Sono necessarie sudoentrambe le volte, ma poiché sudoper impostazione predefinita non viene richiesto entro 5 minuti circa dall'ultima sudooperazione, verrà richiesta la password una sola volta (o per niente).


11
Dobbiamo sempre eseguire il sudo apt-get updatecomando ogni volta che installiamo i pacchetti? Qual è lo svantaggio se non lo facciamo?
JohnnyQ,

14
@JohnnyQ Se non si esegue questo comando, è possibile che sia installato un pacchetto obsoleto.
ζ--

ah suona come se fosse solo una cosa di convenzione allora. Quindi suppongo che non sia davvero necessario soprattutto se si utilizzano solo pacchetti di base con comandi di base che di solito non vengono aggiornati. Il problema nella mia situazione è che apt-get updaterichiede un po 'di tempo, Internet qui è ancora primitivo.
JohnnyQ,

2
@JohnnyQ, se l'aggiornamento apt-get è lento, anche l'aggiornamento dist apt-get sarà lento, quindi questo non è un argomento per non eseguire prima apt-get update. A proposito, puoi velocizzare il tuo aggiornamento apt-get guardando nella cartella /etc/apt/sources.d/ per vedere se hai aggiunto repository personalizzati e uno di questi potrebbe non rispondere, il che rallenterà l'intero processo di aggiornamento.
Mladen B.

1
A proposito, "apt" sta per Advanced Packaging Tool ( wiki.debian.org/Apt "What is APT?"). Qualcosa che ho imparato l'altro giorno, ho pensato di condividere. ("apt" appare spesso in man apt-get, man apt, ma non avevo mai visto l'acronimo ampliato prima).
jgreve,

47

Una ricerca su Google può darti la definizione di quasi tutti i comandi del terminale, come può - aiutare nel terminale. Per esempio,

apt-get --help

sudo apt-get update essenzialmente ha tre parti:

sudo

esegue il comando seguente con funzionalità di superutente (root). Molte azioni che richiedono la modifica dei file di sistema o l'installazione di applicazioni richiedono autorizzazioni aggiuntive per essere eseguite.

apt-get

è uno strumento da riga di comando che Ubuntu utilizza per installare, rimuovere e gestire i pacchetti software

update

è un'opzione da utilizzare per il programma apt-get che aggiorna gli elenchi dei pacchetti da un server su Internet. Gli elenchi dei pacchetti forniscono all'utilità apt-get informazioni importanti sui pacchetti software che è possibile installare usando apt-get. apt-get usa questi elenchi per determinare quale software installare quando viene dato un comando da installare. Per esempio

sudo apt-get install guake

installerebbe il terminale Guake come è attualmente elencato negli elenchi di software locali del mio computer. Tuttavia, questa potrebbe non essere la versione appropriata o, se il programma è nuovo, potrebbe non essere affatto disponibile. Pertanto, durante l'installazione del software con apt-get, in genere si digita

sudo apt-get update
sudo apt-get install <package>

assicurarsi che apt-get sappia installare la versione più recente del pacchetto.

Un'altra fonte utile per informazioni è il help.ubuntu.comsito. Ad esempio, se hai cercato quel sito per apt-gettrovare AptGet / Howto come uno dei risultati.


Alex, posso fondamentalmente usare il comando come hai messo tu: "apt-get update apt-get install <pacchetto>" In pratica 2 cose possono essere eseguite semplicemente digitando i 2 comandi insieme in questo modo?
Elysium,

1
@Elysium Sì, se hai &&tra loro comesudo apt-get update&&sudo apt-get install foo bar baz
ζ--

7
L'uso &&indica che il secondo comando verrà eseguito solo se il primo ha esito positivo. Se non ti interessa il successo del primo comando, usa ;invece.
Flimm,

4
Una ricerca su Google mi ha portato a questa domanda / risposta. FYI;)
teewuane,

19

L'esecuzione sudo apt-get updatesemplicemente assicura che l'elenco dei pacchetti da tutti i repository e PPA sia aggiornato. Se non si esegue questo comando, è possibile ottenere versioni precedenti di vari pacchetti che si stanno installando o, peggio ancora, problemi di dipendenza. Se hai appena aggiunto un PPA e non hai aggiornato, nulla dal PPA funzionerà affatto poiché non hai un elenco di pacchetti da quel PPA o repository.

In poche parole: si consiglia vivamente di eseguirlo sudo apt-get updateprima dell'installazione, ma potrebbe essere saltato se si è davvero a corto di tempo a meno che non si siano modificati repository o PPA dall'ultimo apt-get update.


13

Aggiorna l'elenco dei software disponibili sul tuo computer.

Il tuo computer ha un elenco (come un catalogo) che contiene tutto il software disponibile che i server Ubuntu hanno a disposizione. Ma il software e le versioni disponibili potrebbero cambiare, quindi un "aggiornamento" colpirà il server e vedrà quale software è disponibile per aggiornare i suoi elenchi (o cataloghi) locali.

Si noti che updateè diverso da upgrade. L'aggiornamento, come menzionato sopra, recupererà il software disponibile e aggiornerà gli elenchi mentre upgradeinstallerà le nuove versioni del software installato sul tuo computer (aggiornamenti software effettivi).

Per aggiornare effettivamente il software (non "aggiornare" gli elenchi), si esegue il comando

sudo apt-get upgrade

che di solito viene eseguito dopo un "aggiornamento".


A cosa serve sudo apt-get installallora? Installazione di pacchetti particolari anziché un aggiornamento generale?
Peter Mortensen,

12

È necessario eseguire apt-get updateuna volta prima di installare nuovi pacchetti in quanto ciò aggiorna le informazioni sul repository locale. Se si installano più pacchetti poco dopo l'altro, non è necessario eseguirli apt-get update. Inoltre, è possibile installare più pacchetti contemporaneamente se si digita sudo apt-get install package1 package2...


Bel trucco per quello!
Emerson Hsieh,

6

Quando si installano i pacchetti dalla riga di comando con sudo apt-get install ...(o sudo aptitude install ...) o quando li si aggiorna dalla riga di comando (con upgradeo dist-upgradeanziché install), le seguenti informazioni vengono ottenute dalla configurazione del sistema locale e non da Internet:

  1. quali pacchetti sono disponibili

  2. quali versioni sono disponibili

  3. da cui recuperare i pacchetti disponibili

L'esecuzione sudo apt-get update(o sudo aptitude update) lo aggiorna sul sistema locale. Questo è il passaggio che recupera effettivamente le informazioni su quali pacchetti possono essere installati, inclusi gli aggiornamenti ai pacchetti di pacchetti attualmente installati , da fonti Internet.

Quando si installano pacchetti con un'interfaccia GUI (Update Manager, Software Center o Synaptic Package Manager), il lavoro di sudo apt-get updateviene eseguito automaticamente. Quando installi pacchetti dalla riga di comando, non lo è, e dovresti sempre farlo da solo a meno che tu non l'abbia fatto di recente .

Poiché le informazioni su quali versioni aggiornate dei pacchetti sono disponibili sono ottenute eseguendo sudo apt-get update(o sudo aptitude update), è consigliabile eseguirlo prima di installare qualsiasi pacchetto e necessario eseguirlo per installare gli ultimi aggiornamenti, anche se non è stato aggiunto o rimosso alcun software Fonti (come un PPA) .

Si noti che se si eseguiranno più operazioni di gestione dei pacchetti contemporaneamente, non è necessario eseguirle sudo apt-get updateprima di ognuna. È solo se le informazioni non sono state aggiornate per un po ', è necessario assicurarsi di eseguirle.


4

Come Eliah Kagan ha menzionato sopra, ti aspetteresti che un'applicazione GUI venga eseguita apt-get updateprima apt-get install/ apt-get upgrade, ma ho appena scoperto un interessante errore 404, su una macchina VM di sicurezza offensiva relativamente nuova, che mi ha fatto inciampare per un minuto.

Dalla riga di comando, ho eseguito apt-get update, quindi ho riprovato il comando Utilità di sistema / Aggiornamento software e questa volta è stato eseguito senza errori 404.

Quindi, suppongo che non puoi sempre presumere che apt-get updatesia eseguito dalle applicazioni della GUI ...


Interessante ... Potrebbe esserci qualche insolita situazione di rete tra te e il server che è meglio gestita durante l'esecuzione apt-getrispetto al controllo automatico eseguito eseguendo Software Updater / Update Manager? Usi un proxy HTTP? E sei in grado di farlo accadere di nuovo o è successo solo una volta? Se si tratta di un'anomalia isolata, mi chiedo se forse il problema è dovuto a un'errata configurazione temporanea del server. Che specchio usi? Con più informazioni, forse potrei migliorare la mia risposta. (A proposito, è inteso come una risposta separata o dovrebbe essere convertito in un commento?)
Eliah Kagan

3

Come detto da molte persone prima di me, questo aggiorna il tuo repository locale (elenco dei pacchetti).

È possibile che si verifichino problemi se si tenta di installare

apt-get install foobar

e foobar o una dipendenza non hanno la loro ultima versione nel repository. Ciò può essere particolarmente problematico se si installa manualmente un file .deb o un ppa di terze parti.

Fondamentalmente si assicura che l'elenco corrisponda all'elenco principale .


2

Consideriamo l'esempio dell'installazione di VLC media player su Ubuntu:

sudo apt-get update

Controllerà i repository per gli aggiornamenti disponibili.

Mentre

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

installerà VLC media player dai repository che abbiamo cercato.

Se si era effettuato l'accesso come utente root (amministratore), non è necessario utilizzarlo sudo, poiché si dispone già dei privilegi di superutente.

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.