Come puoi rimuovere completamente un pacchetto?


188

Sto cercando di eseguire un'installazione pulita del octave3.2pacchetto.

Per fare ciò, l'ho rimosso, quindi ho provato a reinstallarlo.

Quando ho reinstallato, si è verificato un errore. Potrebbe essere un bug nel pacchetto, ma voglio assicurarmi di aver rimosso tutto in modo da poter eseguire un'installazione pulita.

Basta farlo?

sudo apt-get --purge remove octave3.2

Si potrebbe reinstallare il pacchetto e prestare attenzione al pacchetto O all'elenco delle dipendenze ...?
user309924

Consigliato per visitare questo
Pandya

Risposte:


186

Questa è una risposta molto generale alla domanda sugli effetti dell'eliminazione dei pacchetti. Per consigli specifici sulla tua situazione, dovrai modificare la tua domanda per includere informazioni aggiuntive, in particolare il testo completo ed esatto del messaggio di errore che stai ricevendo.

La rimozione di pacchetti con o li rimuoverà e tutti i loro file di configurazione globali (cioè, a livello di sistema). Questo di solito è ciò che le persone intendono quando parlano della rimozione completa di un pacchetto.sudo apt purge ...sudo apt --purge remove ...

Ciò non significa che il sistema sia lo stesso di prima dell'installazione del pacchetto. In particolare:

  • Questo non rimuove i pacchetti installati come dipendenze, quando hai installato il pacchetto che stai rimuovendo. Supponendo che tali pacchetti non siano dipendenze di nessun altro pacchetto e che non siano stati contrassegnati come installati manualmente, è possibile rimuovere le dipendenze con sudo apt autoremoveo (se si desidera eliminare anche i file di configurazione a livello di sistema) sudo apt --purge autoremove.

  • Questo non rimuove i file di configurazione non di sistema. In particolare, non rimuove la configurazione specifica dell'utente:

    • Non rimuove i file di configurazione e le directory che si trovano nelle home directory degli utenti (o nella .configsottodirectory delle loro home directory), create dal software fornito dal pacchetto.

      • Se questi file / cartelle non sono archiviati .config, di solito iniziano con uno .stesso. Ad ogni modo, puoi vederli lsutilizzando il flag -ao -A, e puoi vederli in Nautilus e nella maggior parte degli altri browser / gestori di file premendo Ctrl+ Ho andando su Visualizza > Mostra file nascosti .
    • Non annulla le modifiche apportate ai file di configurazione specifici dell'utente esistenti.

    • Non rimuove chiavi nuove gconfo nuove dconf, né annulla alcuna modifica gconfo dconfconfigurazione.

  • L'uso purgeo --purge removeinvece di removenon invertire le modifiche ai file di configurazione esistenti a livello di sistema forniti da altri pacchetti o creati manualmente dall'utente. Tuttavia, a volte tali modifiche vengono annullate disinstallando il pacchetto (indipendentemente dal fatto che sia o meno purgeun remove).


61

Usa il comando:

sudo apt-get purge --auto-remove packagename

Elimina i pacchetti richiesti insieme alle dipendenze installate con tali pacchetti. L' --auto-removeopzione funziona in modo simile a sudo apt-get autoremove.


1
questo ha risolto il mio problema, specialmente con certbot
T.Todua,

7

Per prima cosa controlla il nome del pacchetto che desideri rimuovere:

dpkg --list

Quindi rimuovere il pacchetto indicato

sudo apt-get remove package_name

Elimina qualsiasi codice correlato

sudo apt-get purge package_name

Quindi Autoremove

sudo apt-get autoremove

Infine, pulisci in modo da controllare che tutto sia rimosso correttamente

sudo apt-get clean

Si desidera verificare nell'elenco dei pacchetti se quello che si desidera rimuovere non è più elencato, ma è facoltativo.

Buona giornata,


4

Meglio tenere traccia dei pacchetti di dipendenze extra installati durante l'installazione.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Se si rimuove solo il pacchetto originale, il pacchetto di dipendenze potrebbe rimanere.

Quindi devi rimuovere manualmente ognuno usando

apt-get purge package_name

1
Come posso ottenere un elenco di questi pacchetti se la mia console non scorre abbastanza in alto
Luke Taylor

@LukeTaylor apt-get install package_name > output Quindi less output per vedere tutti gli output con scorrimento.
Harikrishnan,

2

Invece di rimuovere manualmente i pacchetti dipendenti installati automaticamente, utilizzare invece quanto segue:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    Lettura degli elenchi dei pacchetti ... Fine
    Costruire l'albero delle dipendenze       
    Lettura delle informazioni sullo stato ... Fatto
    I seguenti pacchetti saranno RIMOSSI
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-generic * linux-image-extra-3.16.0-30-generic *
    0 per l'aggiornamento, 0 per la nuova installazione, 5 per la rimozione e 23 per non l'aggiornamento.
    Dopo questa operazione, saranno liberati 279 MB di spazio su disco.
    Vuoi continuare? [Y / n]


2

Se vuoi rimuovere alcuni pacchetti secifici puoi usare questi comandi:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

non dimenticare l'opzione "-y" perché altrimenti apt-get continuerebbe a chiedere di rimuovere i singoli pacchetti e non rimuoverà nulla.


2
Questo potrebbe essere utile ma potrebbe anche essere distruttivo: potrebbe facilmente abbinare un pacchetto che non volevi davvero rimuovere ed eliminare la sua configurazione senza conferma! Per fortuna dal momento che i nomi dei pacchetti non contengono uno spazio, siamo in grado di girare intorno e rilasciare il -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Sarebbe un po 'più sicuro.
joeytwiddle,

Potrebbe essere più sicuro eseguire il comando come: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' Per prima cosa, quindi eseguirlo con xargs è una pratica migliore in modo che l'utente possa vedere cosa verrebbe eliminato come risultato del comando.
Kerem Ersoy,

0

Un'altra opzione che hai è usare il debfosterpacchetto. Ciò troverà e suggerirà in modo interattivo i pacchetti per la rimozione (e l'eliminazione) insieme ai pacchetti dipendenti.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.