¿Cómo elimino todos los paquetes que coinciden con un cierto patrón?

21

Quiero desinstalar libreoffice. Este programa consiste en aproximadamente tres docenas de módulos. Idealmente, podrían eliminarse con:

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

pero eso falla con

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

etc.

¿Cómo elimino un conjunto de paquetes por patrón?

PD: estoy contento con las respuestas con el uso dpkg o apt , también

    
pregunta Aaron Digulla 04.04.2013 - 07:18

3 respuestas

24
  1. Usa apt-get , no aptitude , y usas expresiones regulares.

  2. En una expresión regular, . significa cualquier carácter, y * significa cero o más veces. Entonces, la expresión libreoffice.* coincide con cualquier nombre de paquete que contenga la cadena libreoffice , seguida de cualquier cantidad de caracteres.

  3. Rodea la expresión regular con comillas simples para evitar que el intérprete interprete el asterisco. (Si tuviera un archivo llamado libreoffice.example por ejemplo en su directorio actual, el shell reemplazaría libreoffice.* con libreoffice.example , por lo que debe usar comillas simples para detener este comportamiento).

Resultado:

sudo apt-get remove 'libreoffice.*'
    
respondido por el Flimm 04.04.2013 - 08:36
4

Aptitude tiene soporte para patrones globales, y otras coincidencias geniales como esta:

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

Esto coincidirá con cualquier paquete que tenga su nombre libreoffice y 3.6 y también está instalado (eso es lo que representa ~i .

    
respondido por el Braiam 31.03.2014 - 02:50
3

Una alternativa es:

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

Esto mostrará todos los paquetes que coincidan con libreoffice . Cuando hayas confirmado que son todos de los que deseas deshacerte, ejecuta el siguiente comando ... con precaución :

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

La idea:

  1. Haga que el sistema enumere todos los paquetes instalados
  2. Filtra para mostrar solo los que coinciden con libreoffice
  3. Filtra para mostrar solo la columna con el nombre del paquete
  4. Ejecuta el comando de purga en cada uno de esos paquetes
respondido por el aalaap 18.10.2016 - 05:28

Lea otras preguntas en las etiquetas