Risposte:
remove
disinstalla i pacchetti che prendono il nome.autoremove
disinstalla tutti i pacchetti installati automaticamente che non sono più necessari. Non è corretto elencare i nomi dei pacchetti dopo autoremove
; verranno ignorati (e verranno rimossi tutti i pacchetti idonei), che probabilmente non è quello che intendi.--purge
causa anche la rimozione dei file di configurazione a livello di sistema associati alla rimozione dei pacchetti. Deve essere accompagnato da un comando, come remove
o autoremove
. Il --purge
flag modifica l'azione di un comando; non agisce da solo.purge
significa la stessa cosa di --purge remove
(che è la stessa di remove --purge
). Non è corretto dirlo purge
due volte; il secondo purge
viene interpretato come il nome di un pacchetto da purge
d, che probabilmente non è quello che intendi.Per capire cosa fanno questi comandi e come sono diversi, aiuta (ed è probabilmente anche essenziale) a comprendere due concetti:
Un pacchetto installato può essere installato manualmente o automaticamente .
Quando si specifica un pacchetto per l'installazione, ed è installato, viene installato manualmente .
Ma possono anche essere installati altri pacchetti. La maggior parte dei pacchetti ha dipendenze - altri pacchetti che devono essere installati, affinché quei pacchetti funzionino come previsto. Quando si installa un pacchetto, vengono installate le sue dipendenze (ovvero gli altri pacchetti da cui dipende), ad eccezione di quelle installate in precedenza.
Quando un pacchetto non viene specificato dall'utente per l'installazione, ma viene invece installato come dipendenza di un pacchetto specificato per l'installazione, viene automaticamente installato.
Si noti che quando sono installati due pacchetti e uno di essi è una dipendenza di un altro, ciò non significa che la dipendenza sia installata automaticamente. È anche possibile che la dipendenza sia stata installata manualmente (ad esempio, specificata dall'utente, ad esempio, installata prima o contemporaneamente al pacchetto che dipende da essa).
Infine:
apt-mark
comando), indipendentemente da come o in quali circostanze siano stati effettivamente installati.In genere, per ogni pacchetto installato automaticamente avrai almeno un pacchetto installato manualmente che dipende da esso (e che ha causato l'installazione automatica). Tuttavia, se quindi si rimuovono tutti i pacchetti installati manualmente che dipendono da un pacchetto installato automaticamente, il pacchetto installato automaticamente non sarà più necessario, ma verrà comunque installato.
apt-get autoremove
rimuove automaticamente i pacchetti installati che non hanno più pacchetti installati manualmente a seconda di essi.
Un pacchetto fornisce file che intendono essere e rimanere gli stessi su tutti i sistemi in cui è installata quella versione di quel pacchetto. Tali file forniscono eseguibili, risorse, documentazione e altre "risorse" per i programmi installati. Di solito abbiamo semplicemente chiamato questi "file" forniti da un pacchetto.
Ma un pacchetto fornisce anche altri file, che sono destinati (possibilmente) a essere cambiati. Questi sono chiamati file di configurazione globali (o di sistema). Sono quasi sempre installati nella /etc
directory e possono essere modificati automaticamente e manualmente per cambiare il comportamento dei programmi installati. Ad esempio, sudo
ha un file di configurazione /etc/sudoers
e una directory per altri file di configurazione /etc/sudoers.d
. Quel file e tutti i file aggiunti a quella directory specificano chi è autorizzato a utilizzare sudo
in quali modi.
In genere si desidera che la disinstallazione di un pacchetto e la sua successiva installazione non cambino il modo in cui si comporta (a meno che i suoi file del pacchetto non fossero corrotti ed è per questo che lo hai reinstallato, ovviamente). Pertanto, in genere quando un pacchetto viene disinstallato, i file del pacchetto vengono eliminati ma i suoi file di configurazione a livello di sistema non vengono toccati.
Quando si disinstalla un pacchetto senza specificare che i file di configurazione a livello di sistema dovrebbero essere eliminati, si parla di "rimozione" del pacchetto.
Se si desidera eliminare anche i file di configurazione a livello di sistema di un pacchetto quando si disinstalla il pacchetto, si parla di "eliminazione" del pacchetto.
apt-get remove
rimuoverà un pacchetto; cioè, disinstallerà il pacchetto ma lascerà i suoi file di configurazione a livello di sistema.
apt-get purge
eliminerà un pacchetto; cioè, disinstallerà il pacchetto e si assicurerà anche di eliminare i suoi file di configurazione a livello di sistema.
Un altro modo per eliminare i pacchetti è usare la --purge
bandiera. Questo non dice apt-get
cosa fare; invece, modifica quali termini (o "comandi") gli remove
dicono di fare. Il --purge
flag fa sì che qualsiasi disinstallazione dei pacchetti sia accompagnata dall'eliminazione dei file di configurazione a livello di sistema per i pacchetti che vengono disinstallati. In altre parole, la --purge
bandiera trasforma le rimozioni in purghe.
Perché abbiamo la --purge
bandiera quando abbiamo il purge
comando? Dopo tutto, non è sudo apt-get --purge remove packagename
equivalente a sudo apt-get purge packagename
. Sono equivalenti. È --purge
utile quando si desidera modificare il comportamento di comandi diversi da remove
.
Ad esempio, supponiamo che tu voglia disinstallare i pacchetti installati automaticamente che non sono più necessari (perché non ci sono più pacchetti installati manualmente a seconda di essi), ma non vuoi solo rimuovere questi pacchetti installati automaticamente, ma vuoi anche eliminare i loro file di configurazione a livello di sistema. Quindi potresti eseguire:
sudo apt-get --purge autoremove
Consideriamo un altro uso di --purge
. C'è un flag chiamato --reinstall
, che trasforma le installazioni in reinstallazione. Ciò significa che, normalmente, quando si tenta di installare un pacchetto che è già installato, non accadrà nulla o (se il pacchetto è contrassegnato come installato automaticamente) il pacchetto verrà contrassegnato come installato manualmente. Ma con il --reinstall
flag, l'installazione di un pacchetto che è già installato provoca la sua rimozione e la successiva installazione :
sudo apt-get --reinstall install packagename
Supponiamo di voler eliminare i file di configurazione di sistema del pacchetto che si sta reinstallando. Questo è abbastanza comune; quando un pacchetto non funziona e non sai perché, potresti provare a reinstallarlo e anche a eliminare i suoi file di configurazione in modo che la sua configurazione sia ripristinata ai valori predefiniti. Per raggiungere questo obiettivo, puoi eseguire:
sudo apt-get --purge --reinstall install packagename
L' --reinstall
installazione trasforma l'installazione in reinstallazione (ovvero la rimozione seguita dall'installazione) e --purge
trasforma la parte di rimozione dell'installazione in eliminazione.
Ora dovrebbe essere chiaro esattamente cosa fanno ciascuno dei tuoi apt-get
comandi di esempio :
sudo apt-get autoremove --purge packagenames
Questo elimina automaticamente i pacchetti installati che non dispongono più di pacchetti installati manualmente che dipendono da essi. Cioè, disinstalla quei pacchetti (che comporta l'eliminazione dei file dei pacchetti) e cancella anche i loro file di configurazione a livello di sistema.
Qui, packagenames
non fa niente. In particolare, se intendevi rimuovere solo i pacchetti i cui nomi sono elencati lì, questo non si comporterà come previsto.
sudo apt-get remove --purge packagenames
Questo cancella packagenames
; supponendo che packagenames
sia un elenco separato da spazi di nomi di pacchetti, eliminerà tutti. Cioè, li disinstallerà (il che comporta l'eliminazione dei file del pacchetto) e eliminerà anche i loro file di configurazione a livello di sistema.
Se uno qualsiasi dei pacchetti elencati packagenames
non è installato, la sua presenza nell'elenco non avrà alcun effetto (tranne che vi verrà comunicato che non è stato installato). Se si elencano nomi di pacchetti che non sono il nome di alcun pacchetto effettivo, il comando non riuscirà con un errore.unable to locate packagename
sudo apt-get purge purge packagenmaes
Se hai rimosso una delle occorrenze di purge
in quel comando, sarebbe equivalente alla precedente. Allo stato attuale, tenta di eliminare un pacchetto chiamato purge
e anche di eliminare i pacchetti elencati in packagenames
. Dato che purge
non è il nome di alcun pacchetto, fallirà con un messaggio di errore.
sudo apt-get remove packagenames
Ciò rimuove i pacchetti elencati in packagenames
, che comporta l'eliminazione dei file dei pacchetti. Questo non cancella i loro file di configurazione a livello di sistema (perché è semplicemente una rimozione, non una purga).
sudo apt-get autoremove
Ciò disinstalla automaticamente i pacchetti installati che non dispongono più di pacchetti installati manualmente che dipendono da essi. Ciò comporta l'eliminazione dei file dei pacchetti, ma non dei file di configurazione a livello di sistema (ovvero, è una rimozione ma non un'eliminazione).
Per ulteriori informazioni su come utilizzare apt-get
, raccomando la sua pagina di manuale . Per informazioni più generali, consultare questa guida .