Apt-get: differenze tra le versioni
(→File di configurazione: rimossa opzione AllowUnauthenticated) |
m (Un'altra piccolezza grammaticale, scusate e avvisate se modifiche di cosi' poco conto devono essere evitate) |
||
(49 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Template:APT | ||
|precedente=apt | |||
= Introduzione = | |successivo=aptitude | ||
}} | |||
{{Versioni compatibili}} | |||
== Introduzione == | |||
'''apt-get''' è uno dei più noti e diffusi strumenti per la libreria APT, ovvero il sistema con cui si gestiscono i [[pacchetto|pacchetti]] (cioè i programmi) in Debian e derivate. Si occupa principalmente dello scaricamento, dell'installazione, dell'aggiornamento e della rimozione dei pacchetti. | |||
Fa parte del pacchetto '''apt''', assieme per esempio a: | |||
* [[apt-cache]] per svolgere operazioni di ricerca sui pacchetti; | |||
* [[apt-mark]] per listare e modificare gli stati dei pacchetti. | |||
== Comandi principali == | |||
;update: | |||
<blockquote> | |||
<pre># apt-get update</pre> | <pre># apt-get update</pre> | ||
Aggiorna l'elenco dei pacchetti presenti nei repository specificati nel file <code>/etc/apt/sources.list</code>. Questo comando va sempre impartito prima di installare un pacchetto. | |||
</blockquote> | |||
;install: | |||
<blockquote> | |||
<pre># apt-get install pacchetto1 pacchetto2 ... pacchettoN</pre> | <pre># apt-get install pacchetto1 pacchetto2 ... pacchettoN</pre> | ||
Installa i pacchetti specificati, es.: <code>apt-get install nano openssh-client</code>. Si noti che se si usa ''install'' su un pacchetto già installato il comando assume il significato di "aggiorna" lo o gli specifici pacchetti. | Installa i pacchetti specificati, es.: <code>apt-get install nano openssh-client</code>. Si noti che se si usa ''install'' su un pacchetto già installato il comando assume il significato di "aggiorna" lo o gli specifici pacchetti. | ||
</blockquote> | |||
;remove: | |||
<blockquote> | |||
<pre># apt-get remove pacchetto1 pacchetto2 ... pacchettoN</pre> | <pre># apt-get remove pacchetto1 pacchetto2 ... pacchettoN</pre> | ||
Simile al comando precedente, ma in questo caso i pacchetti vengono rimossi (disinstallati). | Simile al comando precedente, ma in questo caso i pacchetti vengono rimossi (disinstallati). | ||
</blockquote> | |||
;purge: | |||
<blockquote> | |||
<pre># apt-get purge pacchetto1 pacchetto2 ... pacchettoN</pre> | <pre># apt-get purge pacchetto1 pacchetto2 ... pacchettoN</pre> | ||
Simile a ''remove'', ma in questo caso i pacchetti vengono completamente eliminati: oltre ad essere disinstallati vengono eliminati eventuali file di configurazione e i pacchetti cancellati dalla [[cache]]. | |||
</blockquote> | |||
;upgrade: | |||
<blockquote> | |||
<pre># apt-get upgrade</pre> | <pre># apt-get upgrade</pre> | ||
Aggiorna tutti i pacchetti installati all'ultima versione disponibile, purché tale operazione non richieda la rimozione di altri pacchetti installati oppure l'installazione di pacchetti che non erano già presenti nel sistema. Da manuale: | |||
''upgrade è usato per installare le versioni più recenti di tutti i pacchetti attualmente installati sul sistema, usando le fonti elencate in <code>/etc/apt/sources.list</code>. I pacchetti attualmente installati con nuove versioni disponibili sono recuperati e aggiornati; in nessun caso vengono rimossi pacchetti attualmente installati oppure recuperati e installati pacchetti che non lo sono già. I pacchetti attualmente installati che hanno una nuova versione, ma che non possono essere aggiornati senza cambiare lo stato di installazione di un altro pacchetto, vengono lasciati alla versione attuale. Deve essere prima effettuato un update in modo che apt-get sappia se sono disponibili nuove versioni dei pacchetti.'' | |||
' | Con l'opzione <code>--with-new-pkgs</code> il comando può installare nuovi pacchetti, se richiesti come dipendenze degli altri aggiornamenti: | ||
<pre># apt-get --with-new-pkgs upgrade</pre> | |||
Che è equivalente all'uso dei seguenti comandi, dove è il comportamento di default: | |||
<pre># apt upgrade</pre> | |||
<pre># aptitude safe-upgrade</pre> | |||
ma solo <code>aptitude</code> può risolvere eventuali conflitti tra dipendenze, in modo automatico o interattivo. | |||
</blockquote> | |||
;dist-upgrade: | |||
<blockquote> | |||
<pre># apt-get dist-upgrade</pre> | <pre># apt-get dist-upgrade</pre> | ||
Aggiorna tutti i pacchetti installati all'ultima versione disponibile. Da manuale: | Aggiorna tutti i pacchetti installati all'ultima versione disponibile. Da manuale: | ||
''dist-upgrade, oltre ad effettuare le funzioni di upgrade, gestisce anche in maniera intelligente le modifiche delle dipendenze delle nuove versioni dei pacchetti; apt-get ha un sistema «intelligente» di risoluzione dei conflitti e cerca di aggiornare i pacchetti più importanti a scapito di quelli meno importanti, se necessario. Il comando dist-upgrade può quindi rimuovere alcuni pacchetti.'' | ''dist-upgrade, oltre ad effettuare le funzioni di upgrade, gestisce anche in maniera intelligente le modifiche delle dipendenze delle nuove versioni dei pacchetti; apt-get ha un sistema «intelligente» di risoluzione dei conflitti e cerca di aggiornare i pacchetti più importanti a scapito di quelli meno importanti, se necessario. Il comando dist-upgrade può quindi rimuovere alcuni pacchetti.'' | ||
</blockquote> | |||
<pre># apt-get | ;autoclean: | ||
<blockquote> | |||
<pre># apt-get autoclean</pre> | |||
Rimuove dalla cache dei pacchetti scaricati tutti quei pacchetti che non sono più necessari, liberandone lo spazio occupato. La cache serve per permettere la reinstallazione di un pacchetto senza doverlo riscaricare, in caso sia ancora la versione più aggiornata del proprio repository, non ha nessun'altra utilità nel sistema e svuotare la cache non significa disinstallare i pacchetti contenuti. | Rimuove dalla cache dei pacchetti scaricati tutti quei pacchetti che non sono più necessari, liberandone lo spazio occupato. La cache serve per permettere la reinstallazione di un pacchetto senza doverlo riscaricare, in caso sia ancora la versione più aggiornata del proprio repository, non ha nessun'altra utilità nel sistema e svuotare la cache non significa disinstallare i pacchetti contenuti. | ||
Riga 45: | Riga 68: | ||
La cache dei pacchetti è situata in <code>/var/cache/apt/archive/</code>. Si noti che rimuovere manualmente i pacchetti causerà un certo "disorientamento" da parte di apt convinto di avere ancora una copia di eventuali pacchetti in locale, ed è per questo che è stato invece reso disponibile questo comando. | La cache dei pacchetti è situata in <code>/var/cache/apt/archive/</code>. Si noti che rimuovere manualmente i pacchetti causerà un certo "disorientamento" da parte di apt convinto di avere ancora una copia di eventuali pacchetti in locale, ed è per questo che è stato invece reso disponibile questo comando. | ||
In particolare saranno cancellati: | |||
* I file contenuti nella directory <code>/var/cache/apt/archive/partial/</code> (pacchetti parzialmente scaricati e, dunque, incompleti) | |||
* I pacchetti contenuti nella directory <code>/var/cache/apt/archive/</code> e non più presenti nei [[repository]] | |||
</blockquote> | |||
;clean: | |||
<blockquote> | |||
<pre># apt-get clean</pre> | <pre># apt-get clean</pre> | ||
Come sopra, ma in tal caso sono eliminati dalla cache tutti i pacchetti scaricati, e non solo quelli non più necessari oppure obsoleti. Questo comando ingloba l'effetto del comando precedente, per cui un "apt-get autoclean" è superfluo. | |||
In particolare saranno cancellati: | |||
* I file contenuti nella directory <code>/var/cache/apt/archive/partial/</code> | |||
* Tutti i file .deb contenuti nella directory <code>/var/cache/apt/archive/</code> | |||
* I file <code>/var/cache/apt/pkgcache.bin</code> e <code>/var/cache/apt/srcpkgcache.bin</code> | |||
</blockquote> | |||
;autoremove: | |||
<blockquote> | |||
<pre># apt-get autoremove</pre> | |||
Rimuove i pacchetti installati automaticamente e che non sono più necessari in quanto [[dipendenze]] solo di altri pacchetti rimossi.<br/> | |||
Il messaggio con cui ''apt'' ci avverte della loro presenza è: | |||
<pre> | |||
Il seguente pacchetto è stato installato automaticamente e non è più richiesto: | |||
nomepacchetto1 nomepacchetto2 ... | |||
Usare "apt-get autoremove" per rimuoverlo. | |||
</pre> | |||
La lista dei pacchetti installati con status di "autoremove" può essere visualizzata con: | |||
<pre> | |||
$ aptitude '~i ~g' | |||
</pre> | |||
Questo comando può essere combinato con l'opzione "--purge" (vedere il paragrafo "Opzioni"). | |||
Specificando questo comando con il nome di uno o più pacchetti, si otterrà la loro rimozione e, contemporaneamente, la rimozione di tutti i pacchetti non più necessari. Vedere anche l'opzione "--auto-remove" e la direttiva "APT::Get::AutomaticRemove". Esempio: | |||
<pre> | |||
# apt-get autoremove pacchetto1, pacchetto2 ... pacchettoN | |||
</pre> | |||
<!-- feature attualmente non documentata https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548501 --> | |||
</blockquote> | |||
;download: | |||
<blockquote> | |||
<pre> | |||
$ apt-get download nomepacchetto | |||
</pre> | |||
Preleva semplicemente dai [[repository]] il [[pacchetto]] del programma specificato senza installarlo sul sistema e lo copia nella directory corrente; molto comodo per ottenere il file binario .deb senza andare a cercarlo in giro per la Rete. Questo comando non necessita dei permessi di [[root]].<br/> | |||
Ad esempio: | |||
<pre> | |||
$ apt-get download dpkg | |||
</pre> | |||
scaricherà dai repository il pacchetto .deb relativo a [[dpkg]] per la [[release]] utilizzata ("Default release" oppure, se assente, la prima fonte di "/etc/apt/sources.list"). | |||
Per prelevare il pacchetto da altri repository (purché presenti in <code>/etc/apt/sources.list</code>) bisogna specificarlo esplicitamente. Nel seguente esempio viene prelevato il pacchetto "dpkg" per [[unstable]]: | |||
<pre> | |||
$ apt-get download dpkg/unstable | |||
</pre> | |||
</blockquote> | |||
;changelog: | |||
<blockquote> | |||
<pre> | |||
$ apt-get changelog nomepacchetto | |||
</pre> | |||
Comando molto utile per visualizzare velocemente, attraverso il [[pager]] di default, il file che tiene traccia di tutti i cambiamenti introdotti per un determinato pacchetto (changelog). | |||
</blockquote> | |||
== Opzioni == | |||
;--purge: | |||
<blockquote> | |||
Esegue il "purging" (rimozione completa del pacchetto, compresi i suoi file di configurazione) dei pacchetti che stanno per essere rimossi con i comandi "apt-get remove" o "apt-get autoremove". Quindi:<pre># apt-get --purge autoremove</pre>oppure:<pre># apt-get --purge remove nomepacchetto</pre>Notare che quest'ultimo comando è equivalente a:<pre># apt-get purge nomepacchetto</pre> | |||
Questa opzione può essere abilitata di default per la rimozione dei pacchetti agendo sulla direttiva APT::Get::Purge (vedere il paragrafo "Direttive di configurazione"). | |||
</blockquote> | |||
;--auto-remove: | |||
<blockquote> | |||
Si applica ai comandi "remove" e "install". Permette l'esecuzione dell'autoremove contemporaneamente alla rimozione o alla installazione di un pacchetto. Vedere anche il comando "autoremove" e la direttiva "APT::Get::AutomaticRemove". Ad esempio: | |||
<pre> | |||
# apt-get --auto-remove remove pacchetto1, pacchetto2 ... pacchettoN | |||
</pre> | |||
</blockquote> | |||
;--allow-unauthenticated: | |||
<blockquote> | |||
Permette l'installazione/aggiornamento di pacchetti provenienti da repository di cui non è stata installata la chiave pubblica. Prestare sempre molta attenzione quando si decide di installare qualcosa da repository non ufficiali. È un'impostazione sconsigliata che può rendere vulnerabile l'intero sistema. | |||
</blockquote> | |||
;-s, --simulate: | |||
<blockquote> | |||
Nessuna azione; effettua una simulazione degli eventi che si verificherebbero, ma non cambia realmente il sistema. Ad esempio: | |||
<pre># apt-get install pacchetto -s</pre> | |||
oppure: | |||
<pre># apt-get dist-upgrade -s</pre> | |||
o anche: | |||
<pre># apt-get autoremove -s</pre> | |||
e così via. | |||
</blockquote> | |||
Permette in genere di aggiornare/installare i pacchetti specificati e le relative dipendenze in base alla distribuzione bersaglio, | ;-t, --target-release, --default-release: | ||
<blockquote> | |||
Permette in genere di aggiornare/installare i pacchetti specificati e le relative dipendenze in base alla distribuzione bersaglio, ad esempio: | |||
<pre> | |||
# apt-get install pacchetto -t unstable | |||
</pre> | |||
Si veda la guida dedicata al [[pinning]] per maggiori, ma soprattutto fondamentali, informazioni. Non usare questa opzione se non si ha chiaro in cosa consiste. | |||
</blockquote> | |||
;--no-install-recommends: | |||
<blockquote> | |||
Installa un pacchetto o esegue un upgrade senza installare automaticamente i pacchetti raccomandati. Ad esempio: | |||
<pre> | |||
# apt-get install --no-install-recommends nomepacchetto | |||
</pre> | |||
</blockquote> | |||
Mostra un elenco dei pacchetti che saranno aggiornati | ;-u, --show-upgraded: | ||
<blockquote> | |||
Mostra un elenco dei pacchetti che saranno aggiornati. Questa opzione è già abilitata di default. | |||
</blockquote> | |||
;-d, --download-only | |||
<blockquote> | |||
Simile a "apt-get download" eccetto per il fatto che esegue il download di *tutti* i pacchetti coinvolti in un'operazione di installazione o aggiornamento. A operazione conclusa, questi pacchetti si troveranno nella directory <code>/var/cache/apt/archives/</code> senza essere installati effettivamente sul sistema.<br/> | |||
Questa opzione è molto comoda per scaricare (ma senza installare) automaticamente i pacchetti, magari con [[Cron]], mentre si sta facendo tutt'altro. | |||
<pre> | |||
# apt-get -d install nomepacchetto | |||
</pre> | |||
oppure: | |||
<pre> | |||
# apt-get -d upgrade | |||
</pre> | |||
o anche: | |||
<pre> | |||
# apt-get -d dist-upgrade | |||
</pre> | |||
</blockquote> | |||
;-V, --verbose-versions: | |||
<blockquote> | |||
Mostra il numero di versione completo dei pacchetti aggiornati e installati. | Mostra il numero di versione completo dei pacchetti aggiornati e installati. | ||
</blockquote> | |||
== Sorgenti e compilazione == | == Sorgenti e compilazione == | ||
Riga 75: | Riga 212: | ||
<pre>$ apt-get source pacchetto</pre> | <pre>$ apt-get source pacchetto</pre> | ||
Questo è il comando da utilizzare nel caso volessimo installare i sorgenti di un pacchetto. | Questo è il comando da utilizzare nel caso volessimo installare i sorgenti di un pacchetto.<br/> | ||
NOTA BENE: i sorgenti così scaricati, una volta compilati, daranno origine ad un pacchetto .deb che andrà a sua volta installato! I sorgenti vengono scaricati nella directory da cui si è lanciato il comando. | NOTA BENE: i sorgenti così scaricati, una volta compilati, daranno origine ad un pacchetto .deb che andrà a sua volta installato! I sorgenti vengono scaricati nella directory da cui si è lanciato il comando. | ||
Riga 92: | Riga 229: | ||
Provare per vedere... | Provare per vedere... | ||
= File di configurazione = | == File di configurazione == | ||
È possibile definire le opzioni di ''apt-get'' non solo da riga di comando, ma anche specificando i corrispondenti parametri in appositi file di configurazione, ad esempio in un unico file <code>/etc/apt/apt.conf</code> oppure in uno o più file contenuti nella directory <code>/etc/apt/apt.conf.d/</code>. Il nome di questi file deve: | |||
* Contenere solo trattini "-", undescore "_", punti "." o caratteri alfanumerici | |||
* Essere privo di estensione (l'unica estensione ammessa è ".conf") | |||
I file che non soddisfano queste condizioni saranno ignorati. | |||
Tutte le opzioni disponibili sono visibili nel file <code>/usr/share/doc/apt/examples/configure-index.gz</code> | |||
Che si tratti del file <code>apt.conf</code> o di file posti in <code>apt.conf.d/</code> è possibile usare in entrambi i casi due tipi di sintassi, ad esempio: | Che si tratti del file <code>apt.conf</code> o di file posti in <code>apt.conf.d/</code> è possibile usare in entrambi i casi due tipi di sintassi, ad esempio: | ||
<pre>APT | <pre>APT | ||
Riga 120: | Riga 263: | ||
</pre> | </pre> | ||
Questa configurazione definisce quanto segue: | Questa configurazione definisce quanto segue: | ||
* La target | * La target release è ''testing''. Questo significa che tutti i pacchetti appartenenti a tale rilascio hanno priorità 990 (si veda la pagina dedicata al [[Repository & pinning| pinning]] per maggiori informazioni su come APT decide la priorità dei pacchetti da installare). Si noti che l'uso è soltanto a titolo di esempio, non è necessario definire una Default Release in condizioni normali e consigliate, ossia senza mescolare repository di release diverse, ed è anzi sconsigliato. | ||
* La massima dimensione in byte per memorizzare le informazioni dei pacchetti disponibili nei vari sorgenti; maggiore il numero di repository specificato in <code> | * La massima dimensione in byte per memorizzare le informazioni dei pacchetti disponibili nei vari sorgenti; maggiore il numero di repository specificato in <code>sources.list</code> maggiore sarà lo spazio occupato (questo parametro NON definisce lo spazio riservato alla memorizzazione dei pacchetti installati e/o scaricati). Di default è ora impostato a 0, corrispondente a un valore illimitato, e pertanto non è più necessario definire tale limite come in passato. | ||
* Le opzioni figlie di ''Get'' sono utilizzate da ''apt-get'' e basta, salvo alcune eccezioni come ''AllowUnauthenticated'' che viene riconosciuto anche da aptitude (è considerato un sinonimo di <code>Aptitude::CmdLine::Ignore-Trust-Violations</code>). | * Le opzioni figlie di ''Get'' sono utilizzate da ''apt-get'' e basta, salvo alcune eccezioni come ''AllowUnauthenticated'' che viene riconosciuto anche da aptitude (è considerato un sinonimo di <code>Aptitude::CmdLine::Ignore-Trust-Violations</code>). | ||
** Rimuove i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari. | ** Rimuove i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari, come se fosse usato il comando <code>apt-get autoremove</code>. | ||
** Corregge se possibile le dipendenze non soddisfatte. | ** Corregge se possibile le dipendenze non soddisfatte, come se fosse usata l'opzione <code>--fix-broken</code>. | ||
** Quando un pacchetto viene rimosso questo viene completamente eliminato, come se si fosse usato il comando <code>apt-get purge</code>. | ** Quando un pacchetto viene rimosso questo viene completamente eliminato, come se si fosse usato il comando <code>apt-get purge</code>. | ||
** Mostra i pacchetti aggiornati; stampa un elenco di tutti i pacchetti che devono essere aggiornati. | ** Mostra i pacchetti aggiornati; stampa un elenco di tutti i pacchetti che devono essere aggiornati. | ||
* Da specificare SOLO e soltanto se si è installato e configurato correttamente un proxy per la gestione dei pacchetti, come <code>apt-cacher</code> per esempio. | * Da specificare SOLO e soltanto se si è installato e configurato correttamente un proxy per la gestione dei pacchetti, come <code>apt-cacher</code> per esempio. | ||
{{Box|Nota|Nello stesso file apt.conf è possibile specificare sia le opzioni specifiche di apt-get che quelle di aptitude, ciascun strumento ignorerà automaticamente le opzioni che non gli competono.}} | {{Box|Nota|Nello stesso file <code>apt.conf</code> è possibile specificare sia le opzioni specifiche di apt-get che quelle di [[aptitude]], ciascun strumento ignorerà automaticamente le opzioni che non gli competono.}} | ||
== Direttive di configurazione == | |||
Qui di seguito verranno elencate alcune direttive che determinano la configurazione di "apt-get" e, quindi, il suo comportamento.<br/> | |||
Queste direttive possono essere trovarsi all'interno di un file "/etc/apt/apt.conf" oppure, molto più ordinatamente, vanno inserite come contenuto di nuovi file nella directory "/etc/apt/apt.conf.d/"; quest'ultima procedura è raccomandata in quanto permette di riunire logicamente configurazioni comuni, cercarle con maggior facilità e evitare che, se inserite in "/etc/apt/apt.conf", queste possano essere sovrascritte da futuri aggiornamenti del pacchetto "apt". | |||
Si ricordi che queste direttive hanno effetto solo se, da linea di comando, non viene specificata un'opzione che determini un comportamento opposto o comunque diverso. | |||
'''APT::Get::Purge''' | |||
<blockquote> | |||
Abilita o disabilita la rimozione completa di un pacchetto compresi i suoi file di configurazione (vedere l'opzione "--purge" e il comando "apt-get purge"). Il valore di default è "false". Per impostare l'opzione "--purge" di default per la rimozione dei pacchetti: | |||
<pre> | |||
APT::Get::Purge "true"; | |||
</pre> | |||
Abilitando questa opzione, si otterrà che: | |||
<pre> | |||
# apt-get remove nomepacchetto1 nomepacchetto2 ... | |||
</pre> | |||
avrà lo stesso effetto di: | |||
<pre> | |||
# apt-get purge nomepacchetto1 nomepacchetto2 ... | |||
</pre> | |||
e, allo stesso modo: | |||
<pre> | |||
# apt-get autoremove | |||
</pre> | |||
sarà uguale a: | |||
<pre> | |||
# apt-get --purge autoremove | |||
</pre> | |||
</blockquote> | |||
<code>man apt-get</code> | '''APT::Get::Show-Upgraded''' | ||
<blockquote> | |||
Permette di visualizzare o meno la lista dei pacchetti che verranno aggiornati. Il comportamento predefinito è "true", per cui: | |||
<pre> | |||
# apt-get upgrade | |||
... | |||
pacchetto1 pacchetto2 pacchetto 3 | |||
3 aggiornati, 0 installati, 0 da rimuovere. | |||
... | |||
</pre> | |||
utilizzando la direttiva: | |||
<pre> | |||
APT::Get::Show-Upgraded "false"; | |||
</pre> | |||
si avrà: | |||
<pre> | |||
# apt-get upgrade | |||
... | |||
3 aggiornati, 0 installati, 0 da rimuovere. | |||
... | |||
</pre> | |||
</blockquote> | |||
'''APT::Get::AutomaticRemove''' | |||
<blockquote> | |||
Se impostata, i pacchetti visualizzati da "apt-get autoremove" come rimovibili perché non più necessari saranno rimossi immediatamente se un comando di "remove" o di "install" di un pacchetto ne modifica lo stato. Vedere anche il comando "autoremove" e l'opzione "--auto-remove". | |||
<pre> | |||
APT::Get::AutomaticRemove "true"; | |||
</pre> | |||
</blockquote> | |||
'''APT::Install-Recommends''' | |||
<blockquote> | |||
Installa automaticamente, o meno, i pacchetti raccomandati visti come dipendenze. Valore di default: "true".<br/> | |||
Per evitare di scaricare automaticamente i pacchetti raccomandati: | |||
<pre> | |||
APT::Install-Recommends "false"; | |||
</pre> | |||
</blockquote> | |||
'''APT::Install-Suggests''' | |||
<blockquote> | |||
Installa automaticamente, o meno, i pacchetti suggeriti visti come dipendenze. Valore di default: "false".<br/> | |||
Per scaricare automaticamente i pacchetti suggeriti: | |||
<pre> | |||
APT::Install-Suggests "true"; | |||
</pre> | |||
</blockquote> | |||
'''Acquire::PDiffs''' | |||
<blockquote> | |||
Consente o meno il download dei file [[pdiff]] della lista dei pacchetti. L'opzione di default è "true".<br/> | |||
Per scaricare l'intero file <code>Packages.xz</code> (o <code>Packages.{bz2,lzma,gz}</code> in base al valore, se presente, di "Acquire::CompressionTypes") in caso di connessione veloce o se si hanno problemi con i "pdiff": | |||
<pre> | |||
Acquire::PDiffs "false"; | |||
</pre> | |||
</blockquote> | |||
'''Acquire::CompressionTypes''' | |||
<blockquote> | |||
Questa direttiva permette di scegliere il formato di compressione tra "gz" (gzip), "bz2" (bzip2) o "lzma" (lzma). Il valore di default abilita il formato "xz" che consente un'ottima compressione dei file scaricati e si può tranquillamente lasciare inalterato.<br/> | |||
Nel caso si voglia utilizzare un altro tipo di compressione, si può ricorrere ad una delle seguenti righe di configurazione: | |||
<pre> | |||
Acquire::CompressionTypes::gz "gzip"; | |||
Acquire::CompressionTypes::bz2 "bzip2"; | |||
Acquire::CompressionTypes::lzma "lzma"; | |||
</pre> | |||
</blockquote> | |||
== Approfondimenti == | |||
=== Manpages === | |||
* <code>man apt-get</code> | |||
* <code>man apt.conf</code> | |||
=== Altre guide === | |||
* [[Aggiornamento via APT con scaricamento dei delta dei pacchetti]] | |||
{{Autori | {{Autori | ||
|Autore = [[Utente:Keltik|Keltik]] | |Autore = [[Utente:Keltik|Keltik]] | ||
|Estesa_da = [[Utente:Wtf|Wtf]] | |Estesa_da = | ||
|Verificata_da = [[Utente:Wtf|Wtf]] | : [[Utente:Wtf|Wtf]] | ||
|Numero_revisori = | :[[Utente:S3v|S3v]] 13:57, 8 nov 2014 (CET) | ||
|Verificata_da = | |||
: [[Utente:Wtf|Wtf]] | |||
: [[Utente:HAL 9000|HAL 9000]] 11:25, 24 ago 2014 (CEST) | |||
:[[Utente:S3v|S3v]] 13:57, 8 nov 2014 (CET) | |||
|Numero_revisori = 3 | |||
}} | }} | ||
[[Categoria:Apt]] | [[Categoria:Apt]] |
Versione attuale delle 19:46, 18 apr 2020
|
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
apt-get è uno dei più noti e diffusi strumenti per la libreria APT, ovvero il sistema con cui si gestiscono i pacchetti (cioè i programmi) in Debian e derivate. Si occupa principalmente dello scaricamento, dell'installazione, dell'aggiornamento e della rimozione dei pacchetti.
Fa parte del pacchetto apt, assieme per esempio a:
- apt-cache per svolgere operazioni di ricerca sui pacchetti;
- apt-mark per listare e modificare gli stati dei pacchetti.
Comandi principali
- update
# apt-get updateAggiorna l'elenco dei pacchetti presenti nei repository specificati nel file
/etc/apt/sources.list
. Questo comando va sempre impartito prima di installare un pacchetto.
- install
# apt-get install pacchetto1 pacchetto2 ... pacchettoNInstalla i pacchetti specificati, es.:
apt-get install nano openssh-client
. Si noti che se si usa install su un pacchetto già installato il comando assume il significato di "aggiorna" lo o gli specifici pacchetti.
- remove
# apt-get remove pacchetto1 pacchetto2 ... pacchettoNSimile al comando precedente, ma in questo caso i pacchetti vengono rimossi (disinstallati).
- purge
# apt-get purge pacchetto1 pacchetto2 ... pacchettoNSimile a remove, ma in questo caso i pacchetti vengono completamente eliminati: oltre ad essere disinstallati vengono eliminati eventuali file di configurazione e i pacchetti cancellati dalla cache.
- upgrade
# apt-get upgradeAggiorna tutti i pacchetti installati all'ultima versione disponibile, purché tale operazione non richieda la rimozione di altri pacchetti installati oppure l'installazione di pacchetti che non erano già presenti nel sistema. Da manuale:
upgrade è usato per installare le versioni più recenti di tutti i pacchetti attualmente installati sul sistema, usando le fonti elencate in
/etc/apt/sources.list
. I pacchetti attualmente installati con nuove versioni disponibili sono recuperati e aggiornati; in nessun caso vengono rimossi pacchetti attualmente installati oppure recuperati e installati pacchetti che non lo sono già. I pacchetti attualmente installati che hanno una nuova versione, ma che non possono essere aggiornati senza cambiare lo stato di installazione di un altro pacchetto, vengono lasciati alla versione attuale. Deve essere prima effettuato un update in modo che apt-get sappia se sono disponibili nuove versioni dei pacchetti.Con l'opzione
--with-new-pkgs
il comando può installare nuovi pacchetti, se richiesti come dipendenze degli altri aggiornamenti:# apt-get --with-new-pkgs upgradeChe è equivalente all'uso dei seguenti comandi, dove è il comportamento di default:
# apt upgrade# aptitude safe-upgradema solo
aptitude
può risolvere eventuali conflitti tra dipendenze, in modo automatico o interattivo.
- dist-upgrade
# apt-get dist-upgradeAggiorna tutti i pacchetti installati all'ultima versione disponibile. Da manuale:
dist-upgrade, oltre ad effettuare le funzioni di upgrade, gestisce anche in maniera intelligente le modifiche delle dipendenze delle nuove versioni dei pacchetti; apt-get ha un sistema «intelligente» di risoluzione dei conflitti e cerca di aggiornare i pacchetti più importanti a scapito di quelli meno importanti, se necessario. Il comando dist-upgrade può quindi rimuovere alcuni pacchetti.
- autoclean
# apt-get autocleanRimuove dalla cache dei pacchetti scaricati tutti quei pacchetti che non sono più necessari, liberandone lo spazio occupato. La cache serve per permettere la reinstallazione di un pacchetto senza doverlo riscaricare, in caso sia ancora la versione più aggiornata del proprio repository, non ha nessun'altra utilità nel sistema e svuotare la cache non significa disinstallare i pacchetti contenuti. Per necessari si intendono tutti quei pacchetti indicati come dipendenze da altri pacchetti, tuttavia è possibile, in base ad alcune impostazioni personali, che anche i pacchetti segnalati come raccomandati siano ritenuti necessari. Inoltre il comando elimina dalla cache tutte le versioni obsolete dei pacchetti, ed è pertanto un comando sicuro da eseguire, senza effetti collaterali. La cache dei pacchetti è situata in
/var/cache/apt/archive/
. Si noti che rimuovere manualmente i pacchetti causerà un certo "disorientamento" da parte di apt convinto di avere ancora una copia di eventuali pacchetti in locale, ed è per questo che è stato invece reso disponibile questo comando.In particolare saranno cancellati:
- I file contenuti nella directory
/var/cache/apt/archive/partial/
(pacchetti parzialmente scaricati e, dunque, incompleti)- I pacchetti contenuti nella directory
/var/cache/apt/archive/
e non più presenti nei repository
- clean
# apt-get cleanCome sopra, ma in tal caso sono eliminati dalla cache tutti i pacchetti scaricati, e non solo quelli non più necessari oppure obsoleti. Questo comando ingloba l'effetto del comando precedente, per cui un "apt-get autoclean" è superfluo.
In particolare saranno cancellati:
- I file contenuti nella directory
/var/cache/apt/archive/partial/
- Tutti i file .deb contenuti nella directory
/var/cache/apt/archive/
- I file
/var/cache/apt/pkgcache.bin
e/var/cache/apt/srcpkgcache.bin
- autoremove
# apt-get autoremoveRimuove i pacchetti installati automaticamente e che non sono più necessari in quanto dipendenze solo di altri pacchetti rimossi.
Il messaggio con cui apt ci avverte della loro presenza è:Il seguente pacchetto è stato installato automaticamente e non è più richiesto: nomepacchetto1 nomepacchetto2 ... Usare "apt-get autoremove" per rimuoverlo.La lista dei pacchetti installati con status di "autoremove" può essere visualizzata con:
$ aptitude '~i ~g'Questo comando può essere combinato con l'opzione "--purge" (vedere il paragrafo "Opzioni").
Specificando questo comando con il nome di uno o più pacchetti, si otterrà la loro rimozione e, contemporaneamente, la rimozione di tutti i pacchetti non più necessari. Vedere anche l'opzione "--auto-remove" e la direttiva "APT::Get::AutomaticRemove". Esempio:
# apt-get autoremove pacchetto1, pacchetto2 ... pacchettoN
- download
$ apt-get download nomepacchettoPreleva semplicemente dai repository il pacchetto del programma specificato senza installarlo sul sistema e lo copia nella directory corrente; molto comodo per ottenere il file binario .deb senza andare a cercarlo in giro per la Rete. Questo comando non necessita dei permessi di root.
Ad esempio:$ apt-get download dpkgscaricherà dai repository il pacchetto .deb relativo a dpkg per la release utilizzata ("Default release" oppure, se assente, la prima fonte di "/etc/apt/sources.list").
Per prelevare il pacchetto da altri repository (purché presenti in
/etc/apt/sources.list
) bisogna specificarlo esplicitamente. Nel seguente esempio viene prelevato il pacchetto "dpkg" per unstable:$ apt-get download dpkg/unstable
- changelog
$ apt-get changelog nomepacchettoComando molto utile per visualizzare velocemente, attraverso il pager di default, il file che tiene traccia di tutti i cambiamenti introdotti per un determinato pacchetto (changelog).
Opzioni
- --purge
Esegue il "purging" (rimozione completa del pacchetto, compresi i suoi file di configurazione) dei pacchetti che stanno per essere rimossi con i comandi "apt-get remove" o "apt-get autoremove". Quindi:
# apt-get --purge autoremoveoppure:
# apt-get --purge remove nomepacchettoNotare che quest'ultimo comando è equivalente a:
# apt-get purge nomepacchettoQuesta opzione può essere abilitata di default per la rimozione dei pacchetti agendo sulla direttiva APT::Get::Purge (vedere il paragrafo "Direttive di configurazione").
- --auto-remove
Si applica ai comandi "remove" e "install". Permette l'esecuzione dell'autoremove contemporaneamente alla rimozione o alla installazione di un pacchetto. Vedere anche il comando "autoremove" e la direttiva "APT::Get::AutomaticRemove". Ad esempio:
# apt-get --auto-remove remove pacchetto1, pacchetto2 ... pacchettoN
- --allow-unauthenticated
Permette l'installazione/aggiornamento di pacchetti provenienti da repository di cui non è stata installata la chiave pubblica. Prestare sempre molta attenzione quando si decide di installare qualcosa da repository non ufficiali. È un'impostazione sconsigliata che può rendere vulnerabile l'intero sistema.
- -s, --simulate
Nessuna azione; effettua una simulazione degli eventi che si verificherebbero, ma non cambia realmente il sistema. Ad esempio:
# apt-get install pacchetto -soppure:
# apt-get dist-upgrade -so anche:
# apt-get autoremove -se così via.
- -t, --target-release, --default-release
Permette in genere di aggiornare/installare i pacchetti specificati e le relative dipendenze in base alla distribuzione bersaglio, ad esempio:
# apt-get install pacchetto -t unstableSi veda la guida dedicata al pinning per maggiori, ma soprattutto fondamentali, informazioni. Non usare questa opzione se non si ha chiaro in cosa consiste.
- --no-install-recommends
Installa un pacchetto o esegue un upgrade senza installare automaticamente i pacchetti raccomandati. Ad esempio:
# apt-get install --no-install-recommends nomepacchetto
- -u, --show-upgraded
Mostra un elenco dei pacchetti che saranno aggiornati. Questa opzione è già abilitata di default.
- -d, --download-only
Simile a "apt-get download" eccetto per il fatto che esegue il download di *tutti* i pacchetti coinvolti in un'operazione di installazione o aggiornamento. A operazione conclusa, questi pacchetti si troveranno nella directory
/var/cache/apt/archives/
senza essere installati effettivamente sul sistema.
Questa opzione è molto comoda per scaricare (ma senza installare) automaticamente i pacchetti, magari con Cron, mentre si sta facendo tutt'altro.# apt-get -d install nomepacchettooppure:
# apt-get -d upgradeo anche:
# apt-get -d dist-upgrade
- -V, --verbose-versions
Mostra il numero di versione completo dei pacchetti aggiornati e installati.
Sorgenti e compilazione
$ apt-get source pacchetto
Questo è il comando da utilizzare nel caso volessimo installare i sorgenti di un pacchetto.
NOTA BENE: i sorgenti così scaricati, una volta compilati, daranno origine ad un pacchetto .deb che andrà a sua volta installato! I sorgenti vengono scaricati nella directory da cui si è lanciato il comando.
$ apt-get build-dep pacchetto
Questo è un comando fondamentale, specie se si lavora molto con i sorgenti. Si preoccupa di soddisfare le dipendenze del pacchetto che andremo a compilare dopo aver eseguito apt-get source
.
$ apt-get source pacchetto --compile
È il passo finale per la compilazione di un pacchetto deb. Lanciatelo dalla stessa directory in cui avete scaricato i sorgenti da compilare.
Easter egg
$ apt-get moo
Provare per vedere...
File di configurazione
È possibile definire le opzioni di apt-get non solo da riga di comando, ma anche specificando i corrispondenti parametri in appositi file di configurazione, ad esempio in un unico file /etc/apt/apt.conf
oppure in uno o più file contenuti nella directory /etc/apt/apt.conf.d/
. Il nome di questi file deve:
- Contenere solo trattini "-", undescore "_", punti "." o caratteri alfanumerici
- Essere privo di estensione (l'unica estensione ammessa è ".conf")
I file che non soddisfano queste condizioni saranno ignorati.
Tutte le opzioni disponibili sono visibili nel file /usr/share/doc/apt/examples/configure-index.gz
Che si tratti del file apt.conf
o di file posti in apt.conf.d/
è possibile usare in entrambi i casi due tipi di sintassi, ad esempio:
APT { Default-Release "testing"; Cache-Limit 24000000; Get { AutomaticRemove "true"; Fix-Broken "true"; Purge "true"; Show-Upgraded "true"; } } Acquire::http::Proxy "http://indirizzo_proxy:3142/";
APT::Default-Release "testing"; APT::Cache-Limit 24000000; APT::Get::AutomaticRemove "true"; APT::Get::Fix-Broken "true"; APT::Get::Purge "true"; APT::Get::Show-Upgraded "true"; Acquire::http::Proxy "http://indirizzo_proxy:3142/";
Questa configurazione definisce quanto segue:
- La target release è testing. Questo significa che tutti i pacchetti appartenenti a tale rilascio hanno priorità 990 (si veda la pagina dedicata al pinning per maggiori informazioni su come APT decide la priorità dei pacchetti da installare). Si noti che l'uso è soltanto a titolo di esempio, non è necessario definire una Default Release in condizioni normali e consigliate, ossia senza mescolare repository di release diverse, ed è anzi sconsigliato.
- La massima dimensione in byte per memorizzare le informazioni dei pacchetti disponibili nei vari sorgenti; maggiore il numero di repository specificato in
sources.list
maggiore sarà lo spazio occupato (questo parametro NON definisce lo spazio riservato alla memorizzazione dei pacchetti installati e/o scaricati). Di default è ora impostato a 0, corrispondente a un valore illimitato, e pertanto non è più necessario definire tale limite come in passato. - Le opzioni figlie di Get sono utilizzate da apt-get e basta, salvo alcune eccezioni come AllowUnauthenticated che viene riconosciuto anche da aptitude (è considerato un sinonimo di
Aptitude::CmdLine::Ignore-Trust-Violations
).- Rimuove i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari, come se fosse usato il comando
apt-get autoremove
. - Corregge se possibile le dipendenze non soddisfatte, come se fosse usata l'opzione
--fix-broken
. - Quando un pacchetto viene rimosso questo viene completamente eliminato, come se si fosse usato il comando
apt-get purge
. - Mostra i pacchetti aggiornati; stampa un elenco di tutti i pacchetti che devono essere aggiornati.
- Rimuove i pacchetti che sono stati installati automaticamente per soddisfare delle dipendenze per altri pacchetti e che non sono più necessari, come se fosse usato il comando
- Da specificare SOLO e soltanto se si è installato e configurato correttamente un proxy per la gestione dei pacchetti, come
apt-cacher
per esempio.
Nota Nello stesso file apt.conf è possibile specificare sia le opzioni specifiche di apt-get che quelle di aptitude, ciascun strumento ignorerà automaticamente le opzioni che non gli competono.
|
Direttive di configurazione
Qui di seguito verranno elencate alcune direttive che determinano la configurazione di "apt-get" e, quindi, il suo comportamento.
Queste direttive possono essere trovarsi all'interno di un file "/etc/apt/apt.conf" oppure, molto più ordinatamente, vanno inserite come contenuto di nuovi file nella directory "/etc/apt/apt.conf.d/"; quest'ultima procedura è raccomandata in quanto permette di riunire logicamente configurazioni comuni, cercarle con maggior facilità e evitare che, se inserite in "/etc/apt/apt.conf", queste possano essere sovrascritte da futuri aggiornamenti del pacchetto "apt".
Si ricordi che queste direttive hanno effetto solo se, da linea di comando, non viene specificata un'opzione che determini un comportamento opposto o comunque diverso.
APT::Get::Purge
Abilita o disabilita la rimozione completa di un pacchetto compresi i suoi file di configurazione (vedere l'opzione "--purge" e il comando "apt-get purge"). Il valore di default è "false". Per impostare l'opzione "--purge" di default per la rimozione dei pacchetti:
APT::Get::Purge "true";Abilitando questa opzione, si otterrà che:
# apt-get remove nomepacchetto1 nomepacchetto2 ...avrà lo stesso effetto di:
# apt-get purge nomepacchetto1 nomepacchetto2 ...e, allo stesso modo:
# apt-get autoremovesarà uguale a:
# apt-get --purge autoremove
APT::Get::Show-Upgraded
Permette di visualizzare o meno la lista dei pacchetti che verranno aggiornati. Il comportamento predefinito è "true", per cui:
# apt-get upgrade ... pacchetto1 pacchetto2 pacchetto 3 3 aggiornati, 0 installati, 0 da rimuovere. ...utilizzando la direttiva:
APT::Get::Show-Upgraded "false";si avrà:
# apt-get upgrade ... 3 aggiornati, 0 installati, 0 da rimuovere. ...
APT::Get::AutomaticRemove
Se impostata, i pacchetti visualizzati da "apt-get autoremove" come rimovibili perché non più necessari saranno rimossi immediatamente se un comando di "remove" o di "install" di un pacchetto ne modifica lo stato. Vedere anche il comando "autoremove" e l'opzione "--auto-remove".
APT::Get::AutomaticRemove "true";
APT::Install-Recommends
Installa automaticamente, o meno, i pacchetti raccomandati visti come dipendenze. Valore di default: "true".
Per evitare di scaricare automaticamente i pacchetti raccomandati:APT::Install-Recommends "false";
APT::Install-Suggests
Installa automaticamente, o meno, i pacchetti suggeriti visti come dipendenze. Valore di default: "false".
Per scaricare automaticamente i pacchetti suggeriti:APT::Install-Suggests "true";
Acquire::PDiffs
Consente o meno il download dei file pdiff della lista dei pacchetti. L'opzione di default è "true".
Per scaricare l'intero filePackages.xz
(oPackages.{bz2,lzma,gz}
in base al valore, se presente, di "Acquire::CompressionTypes") in caso di connessione veloce o se si hanno problemi con i "pdiff":Acquire::PDiffs "false";
Acquire::CompressionTypes
Questa direttiva permette di scegliere il formato di compressione tra "gz" (gzip), "bz2" (bzip2) o "lzma" (lzma). Il valore di default abilita il formato "xz" che consente un'ottima compressione dei file scaricati e si può tranquillamente lasciare inalterato.
Nel caso si voglia utilizzare un altro tipo di compressione, si può ricorrere ad una delle seguenti righe di configurazione:Acquire::CompressionTypes::gz "gzip"; Acquire::CompressionTypes::bz2 "bzip2"; Acquire::CompressionTypes::lzma "lzma";
Approfondimenti
Manpages
man apt-get
man apt.conf
Altre guide
Guida scritta da: Keltik | Debianized 80% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |