Come faccio a eliminare tutti i pacchetti che corrispondono a un determinato modello?

21

Voglio disinstallare libreoffice. Questo programma consiste di circa tre dozzine di moduli. Idealmente, potrebbero essere rimossi con:

aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*

ma non riesce con

Couldn't find any package whose name or description matched "libreoffice3.6*"

ecc.

Come faccio a cancellare una serie di pacchetti per modello?

PS: sono felice delle risposte con uso dpkg o apt , anche

    
posta Aaron Digulla 04.04.2013 - 09:18
fonte

3 risposte

24
  1. Utilizza apt-get , non aptitude e utilizza espressioni regolari.

  2. In un'espressione regolare, . significa qualsiasi carattere e * significa zero o più volte. Quindi l'espressione libreoffice.* corrisponde a qualsiasi nome di pacchetto contenente la stringa libreoffice , seguito da un numero qualsiasi di caratteri.

  3. Circondare l'espressione regolare con virgolette singole per evitare che la shell interpreti l'asterisco. (Se avessi un file chiamato libreoffice.example per esempio nella tua directory corrente, la shell sostituirà libreoffice.* con libreoffice.example , quindi devi usare le virgolette singole per fermare questo comportamento.)

Risultato:

sudo apt-get remove 'libreoffice.*'
    
risposta data Flimm 04.04.2013 - 10:36
fonte
4

Aptitude ha il supporto per i pattern globali e altre partite molto interessanti come questa:

aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus

Questo corrisponderà a qualsiasi pacchetto che ha nel suo nome libreoffice e 3.6 e anche se è installato (questo è il significato di ~i .

    
risposta data Braiam 31.03.2014 - 04:50
fonte
3

Un'alternativa è:

dpkg -l | grep libreoffice | awk '{print }' | xargs -n1 echo

Questo elencherà tutti i pacchetti che corrispondono a libreoffice . Quando hai confermato che sono tutti quelli di cui desideri liberarti, esegui il seguente comando ... con cautela :

dpkg -l | grep libreoffice | awk '{print }' | xargs -n1 sudo apt-get purge -y

L'idea:

  1. Ottieni il sistema per elencare tutti i pacchetti installati
  2. Filtra per mostrare solo quelli corrispondenti a libreoffice
  3. Filtra per mostrare solo la colonna con il nome del pacchetto
  4. Esegui il comando di eliminazione su ciascuno di questi pacchetti
risposta data aalaap 18.10.2016 - 07:28
fonte

Leggi altre domande sui tag