Disinstalla in sicurezza un pacchetto in Gentoo


12

Volevo disinstallare un pacchetto specifico in Gentoo e sfogliare la pagina man di emerge. Ho trovato l' --unmergeopzione:

ATTENZIONE: questa azione può rimuovere pacchetti importanti! Rimuove tutti i pacchetti corrispondenti. Questo non controlla le dipendenze, quindi potrebbe rimuovere i pacchetti necessari per il corretto funzionamento del sistema. I suoi argomenti possono essere atomi o ebuild. Per una versione di --unmerge consapevole delle dipendenze , usare --depclean o --prune .

Tuttavia, vorrei emergere per verificare se il pacchetto che voglio disinstallare è richiesto da qualsiasi altro pacchetto installato nel sistema. --depcleane --prunenon fornire tale funzionalità:

  • --depclean rimuove i pacchetti che sono stati installati come dipendenze, ma non sono più necessari
  • --prune "rimuove dal sistema tutto tranne la versione installata più alta di un pacchetto"

Non esiste una versione di controllo delle dipendenze di --unmerge?

Risposte:


17

Non penso depcleanfunzioni come hai descritto. Senza alcun argomento lo fa, ma se gli passi un nome di pacchetto funziona come unmergecon un controllo di dipendenza aggiuntivo. Da emerge(1):

Depclean funge da versione consapevole di dipendenza di --unmerge. Quando viene dato uno o più atomi, separerà i pacchetti corrispondenti che non hanno dipendenze inverse. Utilizzare --depcleaninsieme a --verboseper mostrare le dipendenze inverse.

Uso sempre --depclean( -c) per separare i singoli pacchetti; funziona benissimo


6

gentoolkit viene in aiuto:

equery d <atom>

È possibile verificare prima le dipendenze, quindi procedere alla rimozione del pacchetto dopo averne verificato le dipendenze.


5

Un altro modo per ottenere lo stesso risultato (sebbene non sia un comando che si fonde con il controllo delle dipendenze):, emerge --deselect packageche rimuove il pacchetto dal file mondiale. Ora, l'esecuzione emerge --depcleanrimuoverà quel pacchetto se non è richiesto da nessun altro pacchetto.


Ciò significa che emerge --depcleanrimuove tutti i pacchetti installati utilizzando emerge --oneshot(a meno che quei pacchetti non siano necessari a un pacchetto dal mondo)?
Daniel Kullmann,

@danielkullmann yes. calcola l'intero grafico delle dipendenze e rimuove ciò che non è estratto da nessun pacchetto nel mondo. Puoi usare emerge --noreplace --selectper aggiungere pacchetti già installati senza ricompilarli, tra l'altro.
njsg,

1

A volte, emerge --unmergedà questo messaggio di avviso:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

Sembra che questo sia il modo consigliato per fare il controllo delle dipendenze prima di unire un pacchetto. Spero comunque, che ci sia un modo migliore, più automatizzato, per raggiungere questo obiettivo.

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.