Skip to main content

Eliminar paquetes huerfanos con Deborphan

Cuando instalas un paquete en Debian/Ubuntu éste suele tener dependencias, las cuales se instalan automáticamente. Si desinstalas ese paquete padre, las dependencias se quedarán en el disco ocupando un espacio inútil. A estos paquetes se les llama huérfanos (no tienen padre). Deborphan encuentra paquetes «huérfanos» en el sistema. Determina qué paquetes no tienen a otros que dependan de su instalación, y le muestra una lista de estos paquetes. Su mayor utilidad es buscar bibliotecas, pero se puede usar con paquetes de todas las secciones.

Este paquete también incluye orphaner, una interfaz de menú de texto para deborphan. Instale los paquetes recomendados dialog, gettext-base y apt si desea un orphaner plenamente funcional, con todas sus características.

Ahora bien, lo primero que debemos hacer es instalarlo

root@luke:/home/hbautista# aptitude install deborphan

Y después de instalado, se puede ejecutar tal cual:

root@luke:/home/hbautista# deborphan 
libgnomekbd4
kdepimlibs-kio-plugins
librpcsecgss3
libchamplain-gtk-0.8-1
libcryptui0a
libslab0a
libkdcraw9
libgweather1
libkexiv2-9
libxcb-render-util0
ttf-sil-gentium
libgnome-window-settings1
libmicroblog4
libakonadi-kcal4
libevent-1.4-2
libswscale0
libcvaux2.1
ttf-droid
libksane0
libakonadi-kabc4
libabiword-2.8
pnm2ppa
liboobs-1-4
libkcalutils4
libmailtransport4
libtracker-client-0.10-0
libgck0
libedataserverui1.2-11
ttf-larabie-straight
libpolkit-gtk-1-0
libgucharmap7
libavformat52
chromium-browser-l10n
libkipi8
libkdb5-5
kerneloops
libboost-iostreams1.42.0
libgnome-bluetooth7
ttf-prociono
root@luke:/home/hbautista#

O podemos usar algunos argumentos:

root@luke:/home/hbautista# deborphan --guess-all
digikam-doc
libgnomekbd4
kdepimlibs-kio-plugins
librpcsecgss3
libchamplain-gtk-0.8-1
python-coherence
libcryptui0a
libslab0a
libkdcraw9
libcurl4-openssl-dev
libgweather1
libkexiv2-9
digikam-data
libxcb-render-util0
ttf-sil-gentium
libgnome-window-settings1
libgnome2-perl
gnome-desktop-environment
libmicroblog4
python-gdbm
conky
python-statgrab
libakonadi-kcal4
python-gdata
libevent-1.4-2
libswscale0
libcvaux2.1
ttf-droid
libksane0
libakonadi-kabc4
libabiword-2.8
python-gtksourceview2
pnm2ppa
kipi-plugins-common
liboobs-1-4
libkcalutils4
libmailtransport4
libtracker-client-0.10-0
python-gtkglext1
libgck0
libedataserverui1.2-11
ttf-larabie-straight
libpolkit-gtk-1-0
python-rdflib
libgucharmap7
libavformat52
chromium-browser-l10n
libkipi8
libkdb5-5
kerneloops
icedove-quotecolors
python-bugbuddy
libboost-iostreams1.42.0
libgnome-bluetooth7
ttf-prociono
root@luke:/home/hbautista#

Que como podrán darse cuenta, los paquetes también cambian. Hay varias formas de obtener listados de los paquetes huerfános, por ejemplo:

root@luke:/home/hbautista# dpkg -l $(deborphan --find-config)
Deseado=Desconocido/Instalar/Eliminar/Purgar/Retener
| Estado=No/Instalado/Config-files/Desempaquetado/Medio-conf/Medio-inst/espera-disparo/pendiente-disparo
|/ Err?=(ninguno)/Requiere-reinst (Estado,Err: mayúsc.=malo)
||/ Nombre                       Versión                     Descripción
+++-============================-============================-========================================================================
rc  capplets-data                1:2.30.1-3                   configuration applets for GNOME - data files
rc  checkgmail                   1.13+svn43-2                 alternative Gmail Notifier for Linux via Atom feeds
rc  gnome-netstatus-applet       2.28.1-1                     Network status applet for GNOME
rc  gwibber                      3.0.0.1-2                    Open source social networking client for GNOME (client)
rc  libbrasero-media0            2.30.3-3                     CD/DVD burning library for GNOME - runtime
rc  libechonest1.1               1.1.9-2                      Qt library for communicating with The Echo Nest platform
rc  libedata-book-1.2-9          3.0.3-2                      Backend library for evolution address books
rc  libedata-cal-1.2-11          3.0.3-2                      Backend library for evolution calendars
rc  libegroupwise1.2-13          3.0.3-2                      Client library for accessing groupwise POA through SOAP interface
rc  libepc-ui-1.0-2              0.3.11-1                     Easy Publish and Consume library - shared widget libraries
rc  libevince3                   2.32.0-1                     Document (PostScript, PDF) rendering library
rc  libgadu3                     1:1.11.0+r1184-2             Gadu-Gadu protocol library - runtime files
rc  libgcr-3-0                   3.0.3-2                      Library for Crypto UI related task - runtime
rc  libgdata11                   0.8.1-2                      Library for accessing GData webservices - shared libraries
rc  libgnome-desktop-3-0         3.0.2-2                      Utility library for loading .desktop files - runtime files
rc  libgnome-media0              2.30.0-1                     runtime libraries for the GNOME media utilities
rc  libgps19                     2.95-13.1                    Global Positioning System - library
rc  libgupnp-igd-1.0-3           0.1.11-1                     library to handle UPnP IGD port mapping
rc  libhunspell-1.2-0            1.2.14-4                     spell checker and morphological analyzer (shared library)
rc  libicu44                     4.4.2-2                      International Components for Unicode
rc  libimobiledevice1            1.0.6-3                      Library for communicating with the iPhone and iPod Touch
rc  libindicate-gtk2             0.5.0-3                      library for raising indicators via DBus - GTK+ bindings
rc  libmarblewidget11            4:4.6.5-1+b1                 Marble globe widget library
rc  libmatroska4                 1.2.0-1                      extensible open standard audio/video container format (shared library)
rc  libmetacity-private0         1:2.30.1-3                   library for the Metacity window manager
rc  libmozjs5d                   5.0-6                        Mozilla SpiderMonkey JavaScript library
rc  libmozjs6d                   6.0.2-1                      Mozilla SpiderMonkey JavaScript library
rc  libmozjs7d                   7.0.1-4                      Mozilla SpiderMonkey JavaScript library
rc  libnautilus-extension1       2.30.1-3                     libraries for nautilus components - runtime version
rc  libnm-glib2                  0.8.4.0-2                    network management framework (GLib shared library)
rc  libpostproc52                4:0.7.1-5                    Libav video postprocessing library
rc  libv8-3.4.14.21              3.4.14.21-5                  v8 JavaScript engine - runtime library
rc  libwebp0                     0.1.2-1                      Lossy compression of digital photographic images.
rc  libxalan2-java-gcj           2.7.1-5                      XSL Transformations (XSLT) processor in Java (native code)
rc  libxml-sax-perl              0.99+dfsg-1                  Perl module for using and building Perl SAX2 XML processors
rc  nvidia-kernel-3.0.0-1-686-pa 280.13.really.275.28-1+3.0.0 NVIDIA binary kernel module for Linux 3.0.0-1-686-pae
rc  tucan                        0.3.10-2                     Download and upload manager for 1-Click Hosters
root@luke:/home/hbautista#

El cual es un listado de los paquetes que no se están ocupando y de esta forma han quedado inservibles, si quisieramos desintalar ocuparíamos el siguiente comando:

root@luke:/home/hbautista# dpkg --purge $(deborphan)
(Leyendo la base de datos ... 202977 ficheros o directorios instalados actualmente.)
Desinstalando libgnomekbd4 ...
Purgando ficheros de configuración de libgnomekbd4 ...
Desinstalando kdepimlibs-kio-plugins ...
Desinstalando librpcsecgss3 ...
Purgando ficheros de configuración de librpcsecgss3 ...
Desinstalando libchamplain-gtk-0.8-1 ...
Purgando ficheros de configuración de libchamplain-gtk-0.8-1 ...
Desinstalando libcryptui0a ...
...
root@luke:/home/hbautista#

Ese comando sin preguntas ni nada, empieza la desinstalación de los paquetes, ahora bien si queremos que antes de desinstalar nos informe de que paquetes lo harán, podemos usar aptitude de la siguiente forma:

root@luke:/home/hbautista# aptitude purge `deborphan`
Se ELIMINARÁN los siguientes paquetes:            
  chromium-browser-l10n{p} fonts-droid{u} fonts-larabie-straight{u} fonts-prociono{u} kerneloops{p} kerneloops-applet{u} 
  kerneloops-daemon{u} libabiword-2.8{p} libakonadi-kabc4{p} libakonadi-kcal4{p} libavformat52{p} libboost-iostreams1.42.0{p} 
  libchamplain-0.8-1{p} libclutter-gtk-0.10-0{p} libcvaux2.1{p} libedataserverui1.2-11{p} libevent-1.4-2{p} libgck0{p} 
  libgnome-bluetooth7{p} libgnome-desktop-2-17{u} libgnome-window-settings1{p} libgucharmap7{p} libkcalutils4{p} libkdb5-5{p} 
  libkimap4{p} libkipi8{p} libksane0{p} libmailtransport4{p} libmicroblog4{p} liboobs-1-4{p} libpolkit-gtk-1-0{p} libswscale0{p} 
  libtracker-client-0.10-0{p} libtracker-sparql-0.10-0{u} pnm2ppa{p} printer-driver-pnm2ppa{u} seahorse-daemon{u} ttf-droid{p} 
  ttf-larabie-straight{p} ttf-prociono{p} 
0 paquetes actualizados, 0 nuevos instalados, 40 para eliminar y 0 sin actualizar.
Necesito descargar 0 B de ficheros. Después de desempaquetar se liberarán 45.0 MB.
¿Quiere continuar? [Y/n/?]

En resumen, si queremos ver los paquetes huérfanos:

root@luke:/home/hbautista# deborphan

o

root@luke:/home/hbautista# deborphan --guess-all

Si queremos eliminarlos:

root@luke:/home/hbautista# dpkg --purge $(deborphan)

Y si tenemos instalado Synaptic (instalador de paquetes en modo gráfico) podemos eliminar los paquetes huerfános de forma sencilla, para empezar ejecutamos synaptic:

Synaptic

Crearemos un nuevo filtro, así que hacemos clic en el menú Configuración -> Filtros

Clic en Nuevo, le asignamos un nombre (en mi caso Huérfanos) y de la lista de opciones, quitar todos y dejar solamente el que dice precisamente Huérfanos:

 

En la pantalla de Synaptic, clic en Filtros -> Huerfános

Synaptic Filtro 3

Y es cuestión de seleccionar o marcar todos los que aparezcan para luego indicar que los elimine.

2 comentarios en “Eliminar paquetes huerfanos con Deborphan”

Deja un comentario

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