apt vs. apt-get: qual è la differenza su Linux?
Pubblicato: 2022-06-16 Perché le distribuzioni Linux basate su Debian hanno apt
e apt-get
? apt
ha sostituito apt-get
o hanno scopi diversi? Spieghiamo la relazione tra questi due comandi.
Il sistema di gestione dei pacchetti Debian
Uno sforzo importante nella creazione di una distribuzione Linux è la progettazione e la creazione di un sistema di gestione dei pacchetti. Gli utenti devono disporre di un modo per installare e disinstallare i pacchetti software. Ciò richiede che il software recuperi i file del pacchetto dal repository del software e li installi correttamente sui computer degli utenti.
Questa non è una piccola impresa. Anche mettendo da parte l'ingegneria del software, l'hosting dei repository software richiede tempo, fatica e denaro. Questo è uno dei motivi per cui così tante "nuove" distribuzioni Linux sono derivazioni di una distribuzione Linux esistente.
Questo porta a famiglie o genealogie di distribuzioni Linux, come le distribuzioni basate su Debian, le distribuzioni basate su Red Hat, le distribuzioni basate su Arch e così via.
La famiglia di distribuzioni Debian, inclusa Ubuntu e tutte le distribuzioni derivate da Ubuntu, utilizza Debian Package Manager. Questo utilizza file di pacchetto con estensione ".deb", denominati file DEB. I file DEB sono file compressi contenenti altri file di archivio. I file di archivio contengono i file eseguibili dell'applicazione, le pagine man, le librerie e così via.
Installare il software da un file DEB significa decomprimere tutti questi file componenti e posizionarli nelle posizioni corrette sul computer. Richiede inoltre l'interazione con il sistema operativo e l'ambiente desktop in modo che l'applicazione venga visualizzata nelle ricerche di applicazioni e la sua icona possa essere aggiunta ai dock o ai menu di sistema.
I comandi apt-get
e apt
lo fanno entrambi. Ma perché abbiamo due comandi per la stessa cosa?
La catena di comando
Il pacchetto che esegue realmente l'installazione si chiama dpkg
. In realtà è una famiglia di comandi che include dpkg-split
, dpkg-trigger
e dpkg-divert
. Questi sono chiamati, se e come richiesto, dagli strumenti della suite Advanced Package Tool o APT. APT è un'altra raccolta di strumenti, inclusi apt-get
, apt-cache
e apt
.
Il comando dpkg
è considerato un comando di basso livello. Al di là delle interazioni più semplici, diventa molto complicato con un gran numero di opzioni. Il comando apt-get
funge da front-end per la suite di comandi dpkg
. Questo semplifica notevolmente le cose. apt-get
è progettato come comando rivolto all'utente e non come comando in background di basso livello. Anche così, nonostante il suo ruolo di fronte all'uomo, un altro comando chiamato apt-cache
è stato utilizzato per mostrare le informazioni all'utente.
Il comando apt
fornisce un altro modo per "parlare" con dpkg
attraverso uno strumento da riga di comando più accessibile e intuitivo. Fornisce un sottoinsieme delle funzionalità di apt-get
, ma è un grande sottoinsieme e fornisce tutte le funzionalità comunemente utilizzate e include anche le funzionalità di apt-cache
.
Linux Mint ha bisogno di una menzione speciale qui. I manutentori di Linux Mint hanno sviluppato la propria versione di apt
, che è un wrapper Python per apt-get
. Non è l' apt
di cui stiamo parlando qui. Ci riferiamo al mainstream Debian apt
, che è stato rilasciato nel 2014 e ha guadagnato attenzione e trazione nel verso utente quando è stato incluso in Ubuntu 16.04 nel 2016.
Le differenze tra apt e apt-get
Quindi, dpkg
è l'applicazione in background di basso livello. Il comando apt-get
è un'interfaccia completa ma semplificata per dpkg
, e apt
è una versione più intuitiva ma leggermente ridotta di apt-get
.
Ma apt-get
e apt
forniscono più di una semplice interfaccia per dpkg
. Fanno cose che dpkg
non fa. Recupereranno i file dai repository e cercheranno di aiutare con dipendenze e conflitti mancanti.
A sua volta, il comando apt
fa alcune cose che apt-get
non fa. Fornisce più informazioni del tipo che l'utente medio desidera vedere durante un'installazione e sopprime alcune delle informazioni più oscure visualizzate da apt-get
. apt
fornisce un feedback visivo superiore e utilizza le luci colorate e le barre di avanzamento nella finestra del terminale.
Ci sono alcuni comandi comuni tra apt
e apt-get
. Tutti questi comandi possono essere preceduti da apt
o apt-get
e si comporteranno allo stesso modo:
- install packagename : installa un pacchetto.
- remove packagename : rimuove (disinstalla) un pacchetto.
- purge nomepacchetto : rimuove un pacchetto e i suoi file di configurazione.
- update packagename : aggiorna le informazioni sul repository.
- upgrade : aggiorna tutti i pacchetti.
- autoremove : rimuove le librerie e altri pacchetti che non sono più necessari.
L'opzione apt full-upgrade
sostituisce l'opzione apt-get dist-upgrade
.
Questi sono i nuovi comandi per apt
:
- apt search : cerca il nome di un pacchetto nei repository. Questo è lo stesso
apt-cache search
- apt show : mostra le informazioni su un pacchetto. Questo è lo stesso di
apt-cache show
. - apt list option : mostra gli elenchi dei pacchetti installati o aggiornabili.
- apt edit-sources : modifica direttamente l'elenco dei repository in cui
apt
cerca i pacchetti.
Installazione di un'applicazione
Puoi usare apt search
per vedere se esiste un pacchetto nei repository o per verificare di avere il nome giusto per il pacchetto. Diciamo che vuoi installare Scribus ma non conosci il nome del pacchetto. Potresti provare a cercare scribus-desktop
.
apt cerca scribus-desktop
Quella ricerca non ha trovato nulla. Riproveremo con un indizio di ricerca più breve e più generico.
apt cerca scribus
Questo restituisce diversi risultati e possiamo vedere che ce n'è uno chiamato "scribus" e che sembra sicuramente il pacchetto principale per l'applicazione di desktop publishing Scribus. Il comando apt show
ci darà maggiori dettagli.
apt mostra scribus
Otteniamo un dump di informazioni sul pacchetto, incluso ciò che verrà installato e una descrizione del software.
Suggerisce anche altri pacchetti che potrebbero essere necessari, a seconda delle nostre esigenze.
Per installare il pacchetto dobbiamo usare sudo
.
sudo apt installa scribus
I file vengono recuperati dai repository. Il file attualmente in fase di recupero è evidenziato in marrone.
Quando i file sono stati recuperati, vengono installati. L'avanzamento dell'installazione viene visualizzato come percentuale visualizzata in cifre e come barra di avanzamento.
Altri comandi
I comandi apt list
e apt edit-sources
sono opzioni in apt
che non esistono in apt-get
.
Il comando apt list
può essere utilizzato con le opzioni --installed
o --upgradeable
per vedere i pacchetti installati sul tuo computer e quali potrebbero essere aggiornati.
Per vedere l'elenco delle applicazioni installate sul tuo computer usa:
apt list --installed
Scorrendo l'output, possiamo vedere due voci per la nostra applicazione Scribus appena installata.
Per vedere se è possibile aggiornare una qualsiasi delle applicazioni installate, utilizzare l'opzione --upgradeable
.
elenco apt --aggiornabile
Il comando apt
fornisce anche un modo per modificare le informazioni memorizzate sui repository apt
cerca i pacchetti. Fallo solo se sai cosa stai facendo.
sudo apt edit-sources
Questo comando apre l'editor predefinito e carica il file contenente le informazioni sul repository.
Dovrei usare apt o apt-get?
Il comando apt-get
non viene aggiornato spesso e questa è una buona cosa. Deve mantenere la compatibilità con le versioni precedenti. La compatibilità con le versioni precedenti non è un problema per apt
. È considerato e trattato come un comando rivolto all'utente.
Per l'uso quotidiano, utilizzare apt
.
Se esegui uno script che ha a che fare con l'installazione del pacchetto, usa apt-get
. Ciò ti offre le maggiori possibilità di portabilità e compatibilità nei tuoi script.
CORRELATI: La guida per principianti allo scripting della shell: le basi