Eliminar dependencias innecesarias en Linux

¿Problemas con el tamaño de la partición raíz? ¿Bibliotecas que han acampado en tu sistema y desconoces si todavía sirven para algo? ¡Tranquilo! conozco a un comando que conoce a otro comando que te puede ayudar.

Al asunto: vamos a ver como desinstalar las dependencias de software innecesarias en algunas de las principales distribuciónes GNU/Linux.

Algo que puede ocurrir si como yo estás probando programas continuamente (aunque siempre existe la opción de hacer una desinstalación completa de un paquete que incluya las dependencias).

Arch Linux y derivadas como Antergos o Manjaro

Empezamos por mi distro de cabecera (una Antergos en la que acaba de aterrizar KDE después de más de un año en GNOME y XFCE).

sudo pacman -Rsn $(pacman -Qdtq)

Este comando se encarga de listar los paquetes innecesarios, los elimina de forma recursiva al tiempo que mantiene las dependencias de tipo opcional. Si al ejecutarlo os da error, es porque posiblemente no haya nada que eliminar.

A continuación se puede hacer una limpieza del cache de pacman:

sudo pacman -Scc

Debian y derivadas como Ubuntu o Linux Mint

A la hora de eliminar paquetes obsoletos podemos hacer:

sudo apt autoremove

si ademas queremos eliminar viejos archivos de configuración y deshacernos del caché:

sudo apt purge & sudo apt clean

Fedora

En Fedora podemos tirar de este comando que nos provee el gestor de paquetes DNF.

su -c

dnf autoremove

Y antes de que lo ejecutéis a lo loco, señalar que el gestor de software de Fedora, tiene fama de conflictivo en este punto.

Revisad bien las sugerencias de desinstalación antes de confirmar su ejecución, en especial si habéis instalado programas a través de GNOME Software.

Si queremos limpiar el caché del gestor de archivos (es decir los paquetes de software que hayamos descargado con anterioridad) lo podemos hacer con:

dnf clean all

o bien:

dnf clean all --enablerepo=\*

openSUSE

En la distro del camaleón con nombre de gecko, nuestro querido zypper no nos soluciona este tema o por lo menos no lo hace de forma global, que es lo que nos gustaría.

Existe la opción de hacerlo de forma puntual con un programa determinado. En este ejemplo con el reproductor multimedia VLC eliminamos también los paquetes instalados con el y que ya no son requeridos:

su

zypper rm -u vlc

A mayores se puede habilitar la opción de autolimpieza en la interfaz gráfica de Yast.

En Yast también se puede explorar los apartados de paquetes huerfanos (no implica que sea “innecesario”s, tan solo hace referencia a que no pertenecen a ningún repositorio activo) y “no necesarios”.

Algo que desde la terminal podemos consultar mediante:

  • Paquetes huérfanos:
zypper pa --orphaned
  • Paquetes innecesarios
zypper pa --unneeded

Y después eliminar (con precaución) lo que se considere innecesario, dado que zypper tampoco es especialmente habilidoso a la hora de determinar dichos paquetes.

Si utilizáis otras distros o tenéis diferentes maneras de tratar este asunto de las dependencias, vuestra sugerencias en los comentarios del blog son como siempre bienvenidas.

19 thoughts on “Eliminar dependencias innecesarias en Linux”

  1. Blablabla says:

    Ya nadie se acuerda del todopoderoso Gentoo 🙁
    Tan fácil como ejecutar “emerge -cav”. Se pueden eliminar fuentes no necesarias con “eclean-sist” y “eclean-pkg”.

    1. tannhausser says:

      Nunca instalé Gentoo, lo más que he hecho es probar alguna de sus derivadas (Sabayon por ej.) o el live CD, debido a eso no lo pongo en los ejemplos.

      Si a veces me equivoco con las que llevo usando años, imagina con el resto XD

      Por suerte ya contaba con que alguno de vosotros vendría con esa información, así que muchas gracias 🙂

  2. Jorge Romero says:

    Gracias por lo de Opensuse

    1. Jorge Romero says:

      tuve que escribirlo asi porque no me funcionaba lo tuyo

      zypper pa –orphaned
      zypper pa –unneeded

      1. tannhausser says:

        Vaya! ahora no tengo openSUSE pero juraría que abreviado también funcionaba e incluso juntado los dos, tipo:

        zypper pa -no

        En todo caso lo voy a cambiar y poner como te funciona a ti.

        Gracias por el comentario

        1. Jorge Romero says:

          Gracias a vos y a tu pagina

  3. D'Artagnan says:

    Con este comando no me funciona: “sudo pacman -Rsn $(pacman -Qdtq)”.
    Sin embargo con este: “pacman -Qtdq” (Sin ser root) es chapeau. Y con este otro :”sudo pacman -Rs $(pacman -Qtdq)” remato la jugada.

    1. tannhausser says:

      Si da error del estilo “no se especificaron objetivos” o “se ha especificado sin referencia respecto a la entrada estándar”, no es el que el comando esté mal. Significa que no existen paquetes huerfanos que eliminar.

      Otro comando que puede valer es este:

      pacman -Qdtq | sudo pacman -Rns -

      En realidad es lo mismo, la primera parte del comando se encarga de buscar los paquetes y la segunda de borrarlos. Si “pacman -Qdtq” no encuentra nada también va a dar error.

  4. Raul P says:

    Fedora no recomiendo tocarlo. Por ejemplo, vas a eliminar x dependencia y te desinstala más de la mitad de tus programas.

  5. tannhausser says:

    Exacto o si lo tocas mirar exactamente que hace cada paquete (obviamente el comando que posteo no hace nada si después no le das a confirmar)

    Mientras escribía el artículo y buscaba las diferencias entre yum y DNF a la hora de tratar esto, me he encontrado con algunos bugs bastante recientes.

    https://bugzilla.redhat.com/show_bug.cgi?id=1382673

    Y quejas varias en los foros de Fedora, porque incluso sugería desinstalar xorg

    http://forums.fedoraforum.org/showthread.php?t=311685

  6. Victor says:

    Muy bien yo ya sabia ese de archlinux asi lo tengo en un alias del .zshrc o .bashrc segun usen
    y lo ejecuto de vez en cuando

    alias purgar=’sudo pacman -Rsn $(pacman -Qdtq)’

  7. xxmlud gnu says:

    Gracias por la aportación!.

    Saludos

  8. Henry GR (HenryGR) says:

    Un apunte:
    En Ubuntu, la opción clean no es válida en apt.
    Para poder hacer eso, hay que usar apt-get, en su lugar; es decir:

    sudo apt-get purge & sudo apt-get clean

    Saludos.

    1. Henry GR (HenryGR) says:

      Perdón, un “typo”, ha de ser:

      sudo apt-get purge && sudo-get apt clean

      1. JCSenar - linuxirun.com says:

        Henry GR (HenryGR): A la tercera va la vencida 😉

        sudo apt-get purge && sudo apt-get clean

  9. nonamed says:

    en debian para buscar paquetes obsoletos, es decir, que ya no es encuentran en nuestros repositorios, tenemos algo especifico:

    aptitude search ~o

    y uno a uno vamos investigando por qué es obsoleto, y eliminarlo con cuidado de no romper nada

  10. 9acca9 says:

    Hola. Gracias por el artículo.
    Quizás puedas darme una mano con esto; debería ser sencillo… pero algo no funciona según la lógica… 🙂
    (uso Antergos gnome)
    Es esto: muchas veces quiero subir le volumen de la notebook, porque está muy bajo, y ejecuto esto en una terminal.
    pactl set-sink-volume 0 200%

    perfecto, sube el volumen todo va de 10…
    Ahora bien, con esto quise hacer un atajo de teclado, y lo hice, en el apartado “teclado” del centro de configuración, con la combinación Ctrl + 1… resulta que cuando presiono la combinación, el resultado es justamente lo opuesto… baja el volumen a 0.

    Qué demonios?¡?¡?
    En la terminal funciona como debería, no así con la combinación.
    Alguna idea???

    saludos y muchas gracias.

    pd:raro no?

    1. 9acca9 says:

      mmmm…
      Acabo de “resolverlo”… jjaja

      con este comando sí funciona incluso desde el atajo de teclado

      pacmd ‘set-sink-volume 0 150000’

      Igual sería interesante saber por qué??
      La verdad que es raro que en la terminal un comando se ejecute de una manera y sin embargo como atajo de teclado resulte lo contrario…

      Pero bueno, el nuevo comando que puse funciona en ambos casos.
      Saludos y gracias

  11. elendilnarsil says:

    Que una distro tan robusta como Opensuse carezca de un método más seguro para la eliminación de paquetes innecesarios e inservibles, no deja de ser una grave carencia. Más aún si considero que Yast es la herramienta de configuración mas completa que haya visto en cualquier sistema.

Deja un comentario