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

por | 28 febrero, 2014

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

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

  1. hispalis70

    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.

    Responder
    1. tannhausser Autor

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

      Responder
  2. D'Artagnan

    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.

    Responder
    1. Mysta

      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.

      Responder
    2. Mysta

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

      Responder
      1. tannhausser Autor

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

        Responder
  3. Eugenio M. Vigo

    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 😉

    Responder
  4. dago

    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.

    Responder
  5. tannhausser Autor

    @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 🙂

    Responder
  6. dmacias

    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»

    Responder
    1. Yoyo

      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» 😛

      Responder
      1. dmacias

        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.

        Responder
        1. tannhausser Autor

          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

          Responder
  7. moscosov (@moscosov)

    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!

    Responder
    1. tannhausser Autor

      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!

      Responder
  8. alteros

    un apoyo : pacman -Rsdn $(pacman -Qqdt) o pacman -Rsdn $(pacman -Qtdq) , yaourt -Syyu –devel –aur –noconfirm o sudo pacman -Syyu –noconfirm
    necesito saber diferencia y la explicación del comando soy nuevo en archlinux (apricity os)

    Responder
    1. tannhausser Autor

      Los dos primeros hacer referencia a lo que comentamos en el artículo.

      En cuanto a:

      yaourt -Syyu --devel --aur --noconfirm

      Ese comando sirven para actualizar todos los paquetes de AUR y los paquetes en desarrollo (por ej. los programas de git o svn). Lo de –noconfirm se utiliza para impedir continúas confirmaciones en cada paso (algo molesto si son muchos paquetes).

      Convengamos que yaourt a pesar de ser el helper para AUR más usado en Arch y derivadas, no es el mejor de su clase. Tiene la ventaja sin embargo de que se integra muy bien en los gestores de software gráficos como los que utiliza Apricity o Antergos.

      Pacaur por ej., es más cómodo de usar a nivel de consola porque te pide las confirmaciones todas al principio y no una a una. También más seguro (te permite revisar el script antes de ejecutarlo). Una manera de hacer eso en yaourt es ir a la página de AUR y hacerlo allí in situ.

      En todo caso yaourt pese a ser el más denostado sigue siendo por costumbre el más utilizado en Arch Linux (yo mismo lo uso) y ese comando no hace más que actualizar el sistema.

      Y el último comando con pacman, más de lo mismo. Sirve para refrescar la lista de paquetes y actualizar el sistema evitando pasos de confirmación.

      Responder
      1. alteros

        conoci a «argon» (pacaur ->gui) hoy pero no entiendo aun Top-level packages ,si estoy en lo correcto es la base de mi sistema o que sera? :
        alsa-utils
        apricityassets
        apricity-freezedry
        apricity-icons
        apricity-keyring
        apricity-themes-cinnamon
        apricity-wallpapers
        argon
        b43-fwcutter
        baobab
        bind-tools
        bluez-firmware
        bluez-utils
        boost
        broadcom-wl-dkms
        cinnamon
        cronie
        efitools
        eog
        exfat-utils
        file-roller
        filezilla
        gdm
        gedit
        gimp
        gksu
        gnome-calculator
        gnome-calendar
        gnome-disk-utility
        gnome-font-viewer
        gnome-photos
        gnome-screenshot
        gnome-system-log
        gnome-system-monitor
        gnome-terminal
        gnome-tweak-tool
        gnome-user-docs
        google-chrome
        google-talkplugin
        grub
        gst-plugin-libde265
        gstreamer0.10-bad-plugins
        gstreamer0.10-base-plugins
        gstreamer0.10-ffmpeg
        gstreamer0.10-good-plugins
        gstreamer0.10-ugly-plugins
        gtk-engine-murrine
        gucharmap
        gufw
        haveged
        hplip
        ice-ssb
        inkscape
        intel-ucode
        ipw2100-fw
        ipw2200-fw
        libmatroska
        libreoffice-still
        mc
        memtest86+
        mkinitcpio-openswap
        nbd
        networkmanager-openvpn
        networkmanager-pptp
        ntp
        orca
        pamac-aur
        pkgfile
        playonlinux
        pulseaudio-bluetooth
        python2-powerline-git
        python-mako
        python-mock
        refind-efi
        rhythmbox
        sbackup
        splix
        steam
        sushi
        syncthing-gtk
        syslinux
        tlp
        totem
        transmission-gtk
        ttf-arphic-uming
        ttf-baekmuk
        virtualbox-guest-utils
        whois
        wireless_tools
        x264
        xdg-user-dirs-gtk
        xf86-video-ati
        xf86-video-dummy
        xf86-video-fbdev
        xf86-video-intel
        xf86-video-nouveau
        xf86-video-openchrome
        xf86-video-sisusb
        xf86-video-vesa
        xf86-video-vmware
        xf86-video-voodoo
        xorg-server-utils
        xorg-xinit
        xorg-xkill
        zd1211-firmware

        Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.