apt update vs apt upgrade: Differenze spiegate!

Quando ero un completo principiante e avevo bisogno di installare qualcosa sulla mia macchina Ubuntu, Sono andato online e ho digitato “Come installare < nome del software> su Ubuntu” e mi ha portato ad una pagina con alcuni comandi che assomigliavano a questo

sudo apt updatesudo apt upgradesudo apt install <software name>

Ero solo felice di essere stato in grado di digitare qualcosa nel terminale e che funzionasse davvero! Non ho prestato molta attenzione a ciò che ho effettivamente digitato. Credo che per i principianti sia come un incantesimo per ottenere qualcosa di installato!

Con il passare del tempo, molte delle mie ricerche su google mi hanno portato ad usare schemi molto simili di comandi “apt update” e “apt upgrade” per installare qualcosa.

In parole povere, update e upgrade hanno quasi lo stesso significato, per cui un principiante può confondersi nel capire cosa fanno effettivamente questi comandi. Vediamo la differenza tra questi 2 comandi e cosa succede internamente una volta che si eseguono questi comandi.

Qual è la differenza tra apt update e apt upgrade? “apt-get update” aggiorna la lista delle fonti dei pacchetti per ottenere l’ultima lista di pacchetti disponibili nei repository e “apt-get upgrade” aggiorna tutti i pacchetti attualmente installati nel nostro sistema Linux alle loro ultime versioni.

Questa è la versione breve della risposta. Permettetemi di espandere quanto scritto sopra con qualche dettaglio in più.

Diamo una seconda occhiata alle seguenti parole

“apt update” aggiorna la lista delle fonti dei pacchetti per ottenere l’ultima lista dei pacchetti disponibili nei repository

Prima di tutto, cerchiamo di capire cos’è apt e poi vediamo cosa contengono queste liste e perché devono essere aggiornate di volta in volta.

Cos’è apt?

APT sta per Advanced Packaging Tool che è uno strumento utilizzato per gestire il software nel nostro sistema e apt è solo un comando utilizzato per comunicare questo strumento di gestione del software APT. Le parole “gestire il software” si riferiscono semplicemente a questi 5 compiti fondamentali

  • installare il software
  • rimuovere il software
  • aggiornare il software
  • aggiornare il sistema e
  • mantenere la lista del software che è installato nel nostro sistema

Se sei un completo principiante ti consiglio vivamente di leggere l’articolo nel link sottostante prima di continuare con questo.

Un’introduzione per principianti ai gestori di pacchetti Linux: apt, yum, dpkg & rpm

Inoltre vale la pena menzionare che apt è solo la versione migliorata di apt-get, che essenzialmente rende l’esperienza utente un po’ migliore mantenendo le cose più semplici. La maggior parte delle distro che supportano apt supporteranno anche apt-get dato che la funzionalità è quasi la stessa. apt-get ha ancora alcune caratteristiche che apt non ha, il che lo rende una buona scelta per scopi di scripting.

Cosa sono i pacchetti in un sistema Linux?

Iniziamo con questa domanda di base. Il sistema operativo Linux è fondamentalmente composto da 3 parti

  • L’hardware
  • Il Kernel Linux e
  • I pacchetti software che lavorano con il Kernel per darci un sistema operativo completo

L’hardware, come sappiamo, è CPU, HDD, SSD, RAM tutti i componenti che costituiscono il sistema.

Il kernel funge da interfaccia tra software e hardware.

I pacchetti software possono essere software applicativi come editor di testo, word processor, ecc. o possono essere le utility GNU come bash, cron, dd, ecc, o possono essere driver di dispositivi per parlare con l’hardware.

Prossimo, diamo un breve sguardo a ciò che è incluso in questi “Pacchetti”

Contenuto dei pacchetti

Il contenuto dei pacchetti gestiti da questi gestori di pacchetti coinvolge i seguenti 4 componenti principali

  • Binari o programmi eseguibili
  • file di metadati contenenti la versione, dipendenze, firme e altre informazioni rilevanti
  • documentazione e manuali
  • file di configurazione

Questi pacchetti sono memorizzati in luoghi chiamati repository.

Cosa sono i repository?

Questa è la prossima domanda che dobbiamo affrontare. I repository (o repository in breve) sono fondamentalmente un luogo dove i pacchetti verificati sono memorizzati per un facile recupero e installazione. Possono essere online come il repository APT o possono essere in una cartella locale o in un DVD dove avete una collezione speciale di software di cui avete bisogno.

Si possono avere diversi repository da cui scaricare e installare questi pacchetti. Questi possono essere

  • repository ufficiali della tua particolare distro (alcuni hanno un supporto garantito mentre altri non sono completamente supportati) e
  • repository di terze parti

Cos’è un elenco di fonti di pacchetti?

Questo è un elenco di pacchetti disponibili per l’installazione su una data distro. Questa lista è mantenuta dalla tua macchina Linux. Le informazioni in questa lista di solito includono le posizioni dei vari repository da cui il software può essere installato. Queste posizioni sono di solito su internet.

Questa lista è di solito memorizzata nella directory /etc/apt. Puoi visualizzare e modificare questa lista nello stesso modo in cui puoi visualizzare qualsiasi altro file di testo usando uno dei tuoi editor di testo preferiti come gedit o nano o vim.

Puoi anche visualizzare questa lista digitando il seguente comando nel terminale di Linux

cat /etc/apt/sources.list

Lo screenshot qui sotto mostra l’output del comando sopra.

Come potete vedere dallo screenshot qui sopra, questa lista contiene fondamentalmente alcuni URL di luoghi su internet. Da questi luoghi, ulteriori informazioni possono essere raccolte come

  • gli ultimi aggiornamenti dei bug fix
  • l’ultima versione di ogni pacchetto disponibile nel repo principale
  • l’ultima versione di ogni pacchetto disponibile nei repo partner

Puoi usare il seguente comando per apportare modifiche a questa lista

sudo apt edit-sources

Si raccomanda di non modificarla a meno che tu non sia sicuro di quello che stai facendo!

Se un particolare URL ha “#” davanti, sarà ignorato come commento. Andiamo avanti e visitiamo uno di questi repo per vedere cosa contiene effettivamente. Potete provare ad andare a questo link. Lo screenshot qui sotto mostra il suo contenuto.

Scaricare ed estrarre il file Sources.gz dà un file chiamato “Source” senza estensione. Potete aprirlo usando qualsiasi editor di testo e rivela un file enorme, lungo più di 28.000 linee!

Scaricando ed estraendo il file Sources.gz si ottiene un file chiamato “Source” senza estensione. Potete aprirlo usando qualsiasi editor di testo e rivela un file enorme, lungo più di 28.000 linee!

Lo screenshot sopra mostra uno dei pacchetti chiamati zsh (un’alternativa alle shell bash), e le informazioni che contiene. Come potete vedere contiene informazioni come

  • l’ultima versione del software
  • le dipendenze di questo particolare software ecc.

Quindi fondamentalmente quello che stiamo facendo quando inseriamo questo comando “apt update” è chiedere alla nostra macchina Linux di andare a sfogliare queste liste e copiare l’ultima versione di esse e metterle nella vostra macchina locale!

Ora diamo un’occhiata al comando “apt upgrade”

“apt upgrade” aggiorna tutti i pacchetti attualmente installati nel nostro sistema Linux alle loro ultime versioni.

Quindi quando inseriamo il comando “apt upgrade” diciamo alla nostra macchina Linux di confrontare le versioni di tutti i pacchetti attualmente installati con quelle della lista che abbiamo appena scaricato attraverso “apt update” e aggiornare i pacchetti che sono in ritardo in termini di numero di versione!

Per esempio, si consideri questa situazione. Supponiamo che tutti i pacchetti nel sistema siano aggiornati con i loro numeri di versione uguali a quelli presentati nella lista, tranne uno, chiamiamolo “Pacchetto-X”, che ha un numero di versione 2.4 mentre la lista dice che la versione 3.0 è disponibile. In questo scenario, una volta inserito il comando “apt upgrade”, la tua macchina aggiorna solo questo “Pacchetto-X” alla versione 3.0. Spero tu abbia capito il punto!

Perché questi 2 comandi sono separati se devono essere usati sempre insieme?

La risposta è che ci sono situazioni in cui non è necessario usarli insieme! Forse avete bisogno di installare uno specifico software appena rilasciato e lasciare il resto del sistema intatto. In questo caso, tutto quello che devi fare è inserire i seguenti comandi

sudo apt updatesudo apt install <package name>

Vedi come abbiamo saltato il comando di aggiornamento!

Se hai davvero bisogno di aggiornare tutti i pacchetti del tuo sistema in una sola riga di comando, puoi anche inserire qualcosa come

sudo apt update &amp;&amp; sudo apt upgrade

Questo li farà entrambi!

Come aggiornare il Kernel Linux?

Il Kernel è una parte speciale del sistema operativo e incasinarlo può significare incasinare l’intero sistema! Quindi abbiamo un comando speciale per aggiornarlo

sudo apt full-upgrade

Il comando di cui sopra fondamentalmente aggiornerà tutto nel vostro sistema, tutti i pacchetti e il kernel alle ultime versioni supportate dai vostri repository!

Lo fa in modo intelligente in modo da eliminare automaticamente i pacchetti inutili rimasti per liberare il vostro hard disk come bonus!

Come aggiornare all’ultima versione di Ubuntu?

Per esempio, se stai usando attualmente Ubuntu 18.04 e Ubuntu 19.04 è l’ultima versione di Ubuntu e vuoi essere aggiornato alla 19.04 allora il comando da usare è

sudo do-release-upgrade

Questo trasformerà completamente i vostri pacchetti e il kernel all’ultima versione!

E con questo, concludo questo articolo!

Spero che questo articolo vi sia piaciuto e che abbiate imparato qualcosa di utile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *