APT

Gestori di pacchetti

Comandi utili

Configurazione del sistema

Altro

Arrow right.png



Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

A partire da Debian 8 (Jessie) apt è un comando della suite APT, contenuto nel pacchetto omonimo e che si occupa delle funzioni base della gestione dei pacchetti. Di default utilizza colori per evidenziare le informazioni più rilevanti e una barra di progresso per il completamento.

Permette anche la modifica dei repository con un controllo di sintassi per ridurre la possibilità di errori, ed è il metodo consigliato per apportare cambiamenti manualmente.

Non è pensato per essere usato negli script, e questo utilizzo è esplicitamente sconsigliato. È progettato invece per essere un programma semplice e chiaro, utilizzabile direttamente dall'utente per svolgere le operazioni più fondamentali di APT.

Per le opzioni più avanzate di APT è necessario ricorrere ad altri comandi, anch'essi contenuti nel pacchetto apt:

  • apt-get per scaricamento, installazione, aggiornamento e rimozione di pacchetti;
  • apt-cache per ricerche e altre informazioni sui pacchetti;
  • apt-mark per visualizzare e modificare gli stati dei pacchetti.

Comandi principali

Ricerche e informazioni sui pacchetti

I comandi di questa sezione non richiedono privilegi, contrariamente a quelle successive, e non apportano cambiamenti al sistema.

search
$ apt search stringa

Cerca la stringa nel nome e nella descrizione di tutti i pacchetti, installati e non. Restituisce la lista dei pacchetti con la descrizione, le release corrispondenti, la versione, l'architettura e lo stato.

È simile a:

$ apt-cache search stringa
list
$ apt list

Visualizza tutti i pacchetti del sistema, con le release corrispondenti, la versione, l'architettura e lo stato.

È possibile visualizzare solo quelli da aggiornare:

$ apt --upgradable list

Oppure solo quelli installati:

$ apt --installed list

Il comando accetta anche un pattern (con caratteri jolly *, ?, [...], gli stessi usati dalla shell per i nomi di file):

$ apt list "pattern"

Per esempio per cercare tutti i pacchetti contenenti la stringa "apt":

$ apt list "*apt*"

E possono essere combinati, per effettuare la ricerca solo tra quelli installati e solo tra quelli che iniziano con il prefisso "apt":

$ apt --installed list "apt*"
show
$ apt show nomepacchetto

Visualizza informazioni su di un dato pacchetto, in particolare la descrizione, la sua versione, il repository, la sezione e le sue dipendenze. Se sono presenti più versioni, il comando è eseguito per quella di default.

È simile a:

$ apt-cache show nomepacchetto
rdepends
$ apt rdepends nomepacchetto

Mostra la lista dei pacchetti che dipendono dal pacchetto specificato (dipendenze inverse).
Se si desidera conoscere solo le dipendenze inverse installate sul sistema per un particolare pacchetto:

$ apt --installed rdepends nomepacchetto
  Shell pattern ed espressioni regolari
apt supporta le espressioni regolari estese per i comandi search e show, mentre i soli shell pattern per list (proprio come dpkg). Per la ricerca però sono meno utili, dato che apt dispone di meno opzioni da linea di comando rispetto ad apt-cache e si è preferito tralasciarle per non creare confusione con il funzionamento del più utile comando list. Per maggiori informazioni si rimanda alla Guida su apt-cache, dove vengono trattate brevemente per gli omonimi comandi search e show.

Per una spiegazione completa dei shell pattern disponibili per list si rimanda invece al manuale di dash nella sezione corrispondente (man dash).


Aggiornamento del sistema

È consigliabile utilizzare apt in luogo di apt-get per effettuare gli aggiornamenti periodici, perché upgrade dispone di una migliore configurazione di default, e attualmente è anche lo strumento indicato nelle note di rilascio per un avanzamento di versione quando avviene un nuovo rilascio di Debian stable. Sono richiesti i privilegi di amministrazione.

update
# apt update

Aggiorna la lista dei pacchetti disponibili. Si noti che l'aggiornamento avviene a livello di metadati, i pacchetti non sono aggiornati, ma è un'operazione necessaria prima di procedere all'aggiornamento del sistema e anche per rendere effettive le modifiche ai repository.

È utile anche prima di effettuare installazioni e ricerche su pacchetti non installati, per far sì che le informazioni utilizzate siano aggiornate con le ultime versioni disponibili nei repository.

È equivalente a:

# apt-get update
upgrade
# apt upgrade

Si occupa di aggiornare tutti i pacchetti alla versione più recente disponibile nei repository. Nuovi pacchetti possono essere installati, se necessario per soddisfare le dipendenze delle nuove versioni, ma nessuno può essere rimosso. È il comando di aggiornamento più conservativo e quindi quello consigliato per tenere aggiornata la propria macchina periodicamente, ogni volta che quello completo (full-upgrade) non è richiesto.

Per il funzionamento corretto è necessario che la lista dei pacchetti sia stata precedentemente aggiornata (apt update).

Il comportamento di default del comando è quindi diverso da quello omonimo di apt-get, che senza aggiunta di opzioni non effettua nuove installazioni di pacchetti, mentre è simile al comportamento di aptitude con safe-upgrade. È invece equivalente a:

# apt-get --with-new-pkgs upgrade
full-upgrade
# apt full-upgrade

Si occupa di aggiornare tutti i pacchetti alla versione più recente disponibile nei repository, installando nuovi pacchetti se necessario e rimuovendo quelli automatici non più richiesti, che potrebbero bloccare alcuni aggiornamenti con il comando precedente. Va prestata maggiore attenzione all'uso del comando, per via della rimozione dei pacchetti.

Per il funzionamento corretto è necessario che la lista dei pacchetti sia stata precedentemente aggiornata (apt update).

L'uso di questo comando è richiesto per effettuare il passaggio di versione tra una stable e la successiva, quando avviene il nuovo rilascio, e può essere richiesto anche con le altre release, che sono molto meno conservative, in presenza di conflitti tra le dipendenze.

È equivalente a:

# apt-get dist-upgrade

Installazione e rimozione di un pacchetto

Le funzionalità trattate in questa sezione sono quasi equivalenti a quelle omonime per apt-get, sempre con privilegi di amministrazione.

install
# apt install nomepacchetto

Installa il pacchetto scelto (nomepacchetto) e tutte le sue dipendenze in automatico, scaricando il tutto dai repository se necessario.

È possibile scegliere esplicitamente la release da cui installare il pacchetto, in presenza di più repository, con l'opzione -t. Per esempio per installare un pacchetto (nomepacchetto) e le sue dipendenze dai backports:

# apt -t stretch-backports install nomepacchetto

A partire da Debian 9 (Stretch) questo comando si comporta in modo leggermente diverso da quello omonimo di apt-get, in quanto di default il pacchetto viene anche rimosso in automatico dalla cache degli archivi di APT (situata in /var/cache/apt/archives), una volta scaricato e installato correttamente. Per cambiare questa impostazione è sufficiente aggiungere la riga Binary::apt::APT::Keep-Downloaded-Packages "true"; al file /etc/apt/apt.conf o in un nuovo file posto nella directory /etc/apt/apt.conf.d/ .

Il medesimo comando può essere utilizzato per installare un pacchetto .deb locale in sostituzione di altri programmi come dpkg o gdebi:

# apt install ./nome_pacchetto.deb

eseguito nella stessa directory in cui si trova il pacchetto.

remove
# apt remove nomepacchetto

Rimuove un pacchetto precedentemente installato (nomepacchetto). Di default le dipendenze installate in automatico non sono rimosse, salvo modifiche in apt.conf (si rimanda al manuale).

autoremove
# apt autoremove

Rimuove le dipendenze installate automaticamente e non più necessarie. È supportato a partire da Debian 9 (Stretch).

Per rimuovere le dipendenze automatiche con Jessie si deve invece ricorrere ad apt-get:

# apt-get autoremove

Oppure ancora eseguire remove con un'opzione (la stessa per apt-get):

# apt -o "APT::Get::AutomaticRemove" remove nomepacchetto
purge
# apt purge nomepacchetto

Rimuove un pacchetto precedentemente installato (nomepacchetto), rimuovendone anche i file di configurazione di sistema. Come per remove di default le dipendenze installate in automatico non sono rimosse.

Questo comando è disponibile solo a partire da Debian 9 (Stretch).

reinstall
# apt reinstall nomepacchetto

Ripete l'installazione di un pacchetto già installato nel sistema. Può essere utile in caso di mancate configurazioni o per risolvere problemi in seguito a un'installazione.

Questo comando è disponibile a partire da Debian 10 (Buster).

Modifica dei repository

È una nuova funzionalità, prima non implementata da altri comandi, che riduce la possibilità di errori accidentali. La modifica ai file di configurazione del sistema richiede privilegi di amministrazione.

edit-sources
# apt edit-sources

Modifica i repository con il proprio editor preferito (nano è il più semplice, e una volta modificato il file basta premere Ctrl-o per salvare e Ctrl-x per uscire), effettuando anche un controllo di sintassi. Non tutti gli errori possono essere rilevati, e ovviamente restano scoperti quelli logici, ma è un controllo in più che rende questo comando consigliabile rispetto all'uso di un editor.

Per rendere effettive le modifiche è necessario aggiornare la lista dei pacchetti:

# apt update

Manpages

man apt
man apt.conf
man apt-get




Guida scritta da: HAL 9000 16:15, 6 apr 2015 (CEST)   Debianized 80%
Estesa da:
Verificata da:
S3v 07:54, 12 apr 2015 (CEST)
Wtf 21:12, 11 mag 2015 (CEST)
HAL 9000 11:04, 14 lug 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized