Como excluo todos os pacotes que correspondem a um determinado padrão?

21

Eu quero desinstalar o libreoffice. Este programa consiste em cerca de três dúzias de módulos. Idealmente, eles poderiam ser removidos com:

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

mas isso falha com

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

etc.

Como eu excluo um conjunto de pacotes por padrão?

PS: Estou feliz com as respostas com o uso dpkg ou apt , também

    
por Aaron Digulla 04.04.2013 / 09:18

3 respostas

23
  1. Use apt-get , não aptitude e use expressões regulares.

  2. Em uma expressão regular, . significa qualquer caractere e * significa zero ou mais vezes. Portanto, a expressão libreoffice.* corresponde a qualquer nome de pacote que contenha a string libreoffice , seguida por qualquer número de caracteres.

  3. Coloque a expressão regular entre aspas simples para evitar que o shell interprete o asterisco. (Se você tivesse um arquivo chamado libreoffice.example , por exemplo, em seu diretório atual, o shell substituiria libreoffice.* por libreoffice.example , portanto, você teria que usar aspas simples para parar esse comportamento.)

Resultado:

sudo apt-get remove 'libreoffice.*'
    
por Flimm 04.04.2013 / 10:36
3

O Aptitude tem suporte para padrões globais e outros jogos interessantes como este:

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

Isso corresponderá a qualquer pacote com nome libreoffice e 3.6 e também está instalado (é o que significa ~i .

    
por Braiam 31.03.2014 / 04:50
3

Uma alternativa é:

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

Isso listará todos os pacotes correspondentes a libreoffice . Quando você confirmar que são todos os que deseja se livrar, execute o seguinte comando ... com cautela :

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

A ideia:

  1. Obtenha o sistema para listar todos os pacotes instalados
  2. Filtrar para mostrar apenas os que correspondem a libreoffice
  3. Filtrar para mostrar apenas a coluna com o nome do pacote
  4. Execute o comando purge em cada um desses pacotes
por aalaap 18.10.2016 / 07:28

Tags