Eliminar los paquetes huérfanos en Arch Linux y derivadas como Manjaro

pacman

A la mayoría de los linuxeros nos gusta probar todo tipo de programas, juegos o incluso entornos de escritorio, si encima eres de los que usa Arch o alguna de sus derivadas como Manjaro, Archbang o Antergos, la disponibilidad de software es espectacular y tienes la ventaja de estar siempre actualizado a la última versión, mediante repositorios como los de AUR, que yo mismo estoy disfrutando en un equipo con ManjaroBox, desde hace meses.

Al final tanto ir y venir, tanta instalación y desinstalación de programas, acaba generando un montón de dependencias innecesarias que ocupan espacio en nuestro sistema, en el blog amigo de La Vache Libre, nos explican un método para eliminarlas utilizando una sola linea de comandos, que me gustaría compartir con vosotros, se trata de ejecutar como root lo siguiente:

pacman -Qdt -q | xargs pacman --noconfirm -R

Donde:

  • -Qdt proporciona la lista de paquetes o dependencias que no son requeridas por otros paquetes.
  • -q muestra el nombre del paquete obviando el nº de versión
  • xargs es el comando que recibe el resultado y lo redirige hacia
  • pacman -R , que es el que se encarga de suprimir los paquetes

A pesar de que el comando parece bastante seguro, siempre hay que revisar con detenimiento los paquetes a eliminar , de hecho cuando ejecute el comando, la salida del mismo me marcaba algunos paquetes como dependencias “opcionales“, que finalmente opté por mantener.

Actualización 1/03:

Varios lectores me han hecho ver (y lo acabo de comprobar por mi mismo), que el comando no funciona sin el parámetro “no-confirm“, que automáticamente inicia la eliminación de archivos, por ello recomiendo usar en su lugar este otro, que amablemente nos dejó winniepei, autor del blog Rock n’ Linux, en los comentarios del post:

pacman -Rsdn $(pacman -Qqdt)

pacman_image2

Vía | La Vache Libre

Fuente | commandlinefu.com

23 thoughts on “Eliminar los paquetes huérfanos en Arch Linux y derivadas como Manjaro”

  1. hispalis70 says:

    Gracias majo, me acabas de dar una idea muy buena para hacer un script. Luego te mando una cosita para que la pruebes… y me cuentas.

    1. tannhausser says:

      Bueno estaré atento entonces 😉

  2. winniepei says:

    También vale:
    pacman -Rsdn $(pacman -Qqdt)

    😉

    1. tannhausser says:

      Gracias por el apunte! me gusta más que el “mío”, así que te lo voy a robar para el post.

  3. D'Artagnan says:

    Tu si eres un amigo tannhausser y no lo que uno ha tenido por ahí.
    Gracias a ti por el aporte y a la gran vaca de enormes ubres que ríe, je, je.

    1. Yoyo says:

      Amigo D’Artagnan

      Veo que te fuiste de mi blog por esta broma (decisión que respeto muy libre eres) HOWTO: Que hacer después de instalar Windows 8.1 Pro http://yoyo308.com/2014/02/10/howto-que-hacer-despues-de-instalar-windows-8-1-pro/

      Pero a donde yo quería llegar ¿te fuiste sin saber que era una broma por no haber pinchado en el link al tutto? 😛

      No fuiste el único.. la gente se espanta antes de leer completos los artículos 😉

      1. tannhausser says:

        Encima reincidente:

        http://yoyo308.com/2014/03/01/5-razones-para-no-usar-linux/

        Y es que vas provocando xD

    2. Mysta says:

      De casi los 2 años que llevo navegando entre los glaciales me he dado cuenta que este es el blog mas respetuoso con el medio ambiente, por lo mismo del tiempo que llevo leyendo al replicante se ve que no le gusta las polémicas aunque le esten tirando flores.
      No se que cosa habra pasado por ahí, solo quería decir porque respeto tanto este blog.
      Saludos.

    3. Mysta says:

      Ante cualquier duda, este comentario no tiene nada que ver con Yoyo o cualquier otro blog :), mi idea no es desprestigiar a nadie indirectamente.

      1. tannhausser says:

        Muchas gracias por las alabanzas! En cuanto a lo de Yoyo no te preocupes, conociéndole seguro que lo entiende así.
        Saludos

  4. Eugenio M. Vigo says:

    Eso de que hay que revisar los paquetes que te sugiere borrarbes importante. Hace unos días, ejecuté deborphan en Debían y me quería borrar nada más ni nada menos que GRUB 😛
    Recordad, siendo root nunca se ha de tener prisa 😉

  5. dago says:

    Una pequeña cuetión técnica, no sólo sobre este post, sino venideros. No es un comando para derivadas de Arch. Es un comando para distribuciones que usen pacman como administrador de paquetes. No necesariamente tienen que ser derivadas de Arch (caso KaOS, por ejemplo). Así como no sería correcto inferir que una distro es derivada de Debian porque use apt-get, como es el caso de PCLinuxOS que usa paquetería rpm pero usa apt-get.
    Saludos.

  6. holmeslinux says:

    hola que tal? estoy con un problema con el comando…mira http://bit.ly/1eydjAj. Holmes

    1. Rubén F. M. (@minhanaiquerida) says:

      Tengo el mismo problema. Yo utilicé el comando que dejó winniepei: pacman -Rsdn $(pacman -Qqdt)

      Un saludo.

  7. tannhausser says:

    @holmeslinux @Rubén Tenéis razón para que funcione correctamente hay que introducir el parámetro –noconfirm (que inicia la desinstalación automáticamente).
    Voy a corregir ese dato en el post, aunque así el comando no me hace tanta gracia…
    Ah y muchas gracias a los dos por el aviso 🙂

  8. tannhausser says:

    Gracias Dago! Tomo nota

    Saludos!

  9. dmacias says:

    Yo llevo tiempo que lo hago a mano como indican en la wiki de arch, pacman -Qtd o pacman -Qtdq ( hacen lo mismo pero uno muestra la version del paquete y otro no) y los elimino a mano. No me mola nada eso de eliminar el “bloque”

    1. Yoyo says:

      Igual yo….

      No auto-elimino huérfanos en bloque, ni en individual, si no molestan los dejo.

      Una vez un # apt-get autoremove se llevó media Debian sid mia palante y me dije “una y no más santo tomás” 😛

      1. dmacias says:

        Es que debian, almenos en mi experiencia, la estable y la testing, indestructible, la sid ejemmmm, deporte de alto riesgo. Para estar mas o menos a la par en versiones a Arch stable y seguramente por detras de KaOS es bastante complicada de sobrellevar Sid, yo no había día que no tuviera altercados y trifulcas con esa rama de Debian.

        1. tannhausser says:

          Es sábado por la noche, que mejor momento para romper el sistema, salir a tomar algo y a la vuelta intentar arreglarlo.

          Kernel panic asegurado xD

  10. winniepei says:

    Me alegro mucho de haber sido de ayuda.
    Un saludo a todos!

  11. moscosov (@moscosov) says:

    Me parece que en OpenSuse Zypper carece de algo similar, sin embargo para eliminar un paquete y todas las dependencias que otro programa no necesite basta con tipear;:

    zypper rm -u “nombredelprograma”

    Saludos a tod@s desde Chile.

    pd: Se ve muy bien el nuevo look del blog!

    1. tannhausser says:

      Hola moscosov, como tu bien dices creo que en zypper no es posible hacerlo de forma global.

      Para eso sería más sencillo utilizar Yast y filtrar en grupo de paquetes, por paquetes huerfanos.

      Un saludo y me alegra que te guste el theme del blog!

Deja un comentario