Este artículo fue publicado originalmente en go2linux.org el 13 de marzo de 2008. El dominio ya no me pertenece, pero soy el autor original. Lo republico aquí en garron.me con correcciones y mejoras.
Introducción
Tanto apt-get como aptitude son interfaces para el sistema de gestión de paquetes APT en distribuciones basadas en Debian. Ambos pueden instalar, eliminar y actualizar paquetes, pero difieren en cómo gestionan las dependencias al desinstalar.
El problema de los paquetes huérfanos
Cuando instalas un paquete, APT también instala las dependencias necesarias. Si luego eliminas el paquete principal, esas dependencias pueden quedarse en el sistema sin ser usadas — ocupando espacio y ensuciando la instalación. Estos paquetes sobrantes se llaman huérfanos.
apt-get y autoremove
apt-get remove solo elimina el paquete que especificas. Deja las dependencias huérfanas en el sistema y te lo avisa:
The following packages were automatically installed and are no longer required:
libxvidcore4 libamrnb3 libx264-57 ...
Use 'apt-get autoremove' to remove them.
Para eliminar el paquete y sus dependencias huérfanas a la vez, usa autoremove:
sudo apt-get autoremove mplayer
O, tras un remove normal, ejecuta autoremove por separado para limpiar todos los huérfanos acumulados:
sudo apt-get autoremove
aptitude
aptitude rastrea qué paquetes se instalaron manualmente y cuáles automáticamente. Al eliminar un paquete, marca automáticamente las dependencias huérfanas para ser eliminadas — sin pasos extra:
sudo aptitude remove mplayer
apt — el comando moderno
Desde Ubuntu 16.04 y Debian 9, el comando apt es la herramienta recomendada para uso interactivo. Unifica las operaciones más comunes de apt-get y apt-cache en una sola interfaz más amigable, con barras de progreso y salida en color:
sudo apt install mplayer
sudo apt remove mplayer
sudo apt autoremove
sudo apt update && sudo apt upgrade
sudo apt search término
sudo apt show mplayer
apt-get y apt-cache siguen siendo el estándar en scripts, ya que su formato de salida está garantizado como estable entre versiones.
apt-mark — controlar el estado manual/automático
Puedes controlar explícitamente si APT trata un paquete como instalado manualmente o automáticamente. Esto determina si autoremove lo eliminará o no:
sudo apt-mark manual mplayer # protegerlo — autoremove nunca lo tocará
sudo apt-mark auto mplayer # marcarlo como automático — autoremove puede eliminarlo
apt-mark showmanual # listar todos los paquetes instalados manualmente
apt-mark showauto # listar todos los paquetes instalados automáticamente
Útil cuando quieres proteger una dependencia de ser eliminada, o cuando tienes un paquete que instalaste manualmente hace tiempo y ya no necesitas.
Cuál usar hoy en día
- Uso interactivo diario:
apt - Scripts de shell:
apt-get(salida estable) - Resolución de dependencias complejas:
aptitude
Referencia rápida
| Tarea | apt | apt-get |
|---|---|---|
| Instalar | apt install paquete | apt-get install paquete |
| Eliminar | apt remove paquete | apt-get remove paquete |
| Eliminar + limpiar huérfanos | apt autoremove paquete | apt-get autoremove paquete |
| Actualizar listas | apt update | apt-get update |
| Actualizar paquetes | apt upgrade | apt-get upgrade |
| Actualización completa | apt full-upgrade | apt-get dist-upgrade |
| Buscar | apt search término | apt-cache search término |
| Info del paquete | apt show paquete | apt-cache show paquete |