GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ubuntu:perché "apt-get Autoremove" non funzionava correttamente?

Ho installato Pipelight dall'archivio PPA, secondo queste istruzioni.

Il comando di installazione, sudo apt-get install --install-recommends pipelight-multi era per un solo pacchetto, ma comportava il download e l'installazione di circa 180 pacchetti di dipendenze, di cui circa 40 erano aggiornamenti ai pacchetti attualmente installati.

Pertanto, sono stati installati circa 140 nuovi pacchetti.

Pipelight successivamente non ha funzionato, quindi l'ho rimosso:

sudo apt-get purge pipelight-multi

Nessun altro pacchetto è stato rimosso.

Ho quindi usato sudo apt-get autoremove . Questo comando ha rimosso tutti i pacchetti rimovibili automaticamente. C'erano esattamente 100 di questi (c'erano anche esattamente 100 pacchetti nell'elenco "Automovibili" di Synaptic Package Manager).

Quindi questo ha lasciato circa 40 pacchetti che non erano considerati rimovibili automaticamente e quindi non sono stati rimossi. Ho dovuto rimuoverli manualmente.

Non c'erano dipendenze non soddisfatte sul mio sistema prima di installare Pipelight; e non avevo contrassegnato nessun pacchetto come installato manualmente, installato o rimosso nient'altro o qualcosa del genere. Sono trascorsi solo una decina di minuti tra l'installazione e la rimozione di Pipelight.

Quindi, dopo aver rimosso Pipelight, perché tutte le sue dipendenze non necessarie non sono state contrassegnate come rimovibili automaticamente?

Risposta accettata:

La mia ipotesi migliore è che i 40 pacchetti siano stati consigliati da altri pacchetti che avevi già installato; pipelight-multi insieme a --install-recommends l'opzione ne ha causato l'installazione, ma sono stati mantenuti dopo la sua rimozione a causa di tali raccomandazioni. Dal momento che hai rimosso i pacchetti manualmente è difficile da determinare, ma in futuro puoi eseguire aptitude why ${package} per ogni pacchetto che ritieni debba essere rimosso automaticamente e aptitude ti dirà perché viene conservato.

I meccanismi alla base di questo non sono necessariamente intuitivi. Quando un pacchetto viene contrassegnato come rimovibile automaticamente, manualmente o automaticamente (in quest'ultimo caso, perché è installato automaticamente per soddisfare una dipendenza o una raccomandazione), il flag di rimozione automatica è l'unica informazione memorizzata; il sistema non ricorda perché un pacchetto è stato installato automaticamente. Tali pacchetti vengono mantenuti solo finché un altro pacchetto dipende da essi o li consiglia (questa è l'impostazione predefinita, può essere modificata).

Tutto questo spiegherebbe la tua situazione come segue. Hai già qualche altro pacchetto, A , installato; questo pacchetto consiglia B ma quest'ultimo non è installato. Installi pipelight-multi che consiglia anche B; dato che hai specificato esplicitamente --install-recommends , conosciamo B viene quindi installato insieme a pipelight-multi . Quando rimuovi pipelight-multi ed esegui apt-get autoremove , B è contrassegnato come rimovibile automaticamente e viene controllato, ma perché A è ancora installato, B viene mantenuto, anche se il pacchetto che ne ha causato l'installazione è scomparso. Perché A consiglia solo B , puoi rimuovere manualmente B per tornare alla situazione iniziale.

Correlati:come funziona l'interfaccia degli interruttori?
Ubuntu
  1. Come elencare i pacchetti installati in Ubuntu

  2. Eseguire il backup dei pacchetti installati e ripristinarli sul sistema Ubuntu appena installato

  3. Come elencare i repository installati in Ubuntu e Debian

  4. Il kernel non è stato aggiornato tra 14,04 litri e 16,04 litri?

  5. Perché Ubuntu ha interrotto la spedizione gratuita dei suoi CD?

Come elencare i pacchetti installati in Ubuntu 20.04

Come elencare i pacchetti installati su Ubuntu e distribuzioni Linux basate su Debian

Come elencare i pacchetti software installati su Ubuntu

Conky non funziona correttamente su Ubuntu 16.04 Gnome?

Come elencare i pacchetti installati in Ubuntu 22.04

Come elencare i pacchetti installati su Ubuntu 22.04