====== Guía rápida y completa de apt y dpkg ======
===== APT =====
Algo a tener en cuenta es que actualmente se recomienda el uso de apt y no apt-get/apt-cache en la medida de lo posible. Tanto apt como apt-get gestionan la resolución de dependencias; sin embargo, apt puede hacerlo de forma más inteligente. Determina cadenas de dependencias complejas en las que instala los paquetes en el orden correcto y recomienda los paquetes sugeridos para su instalación. También el comando apt proporciona información un poco más detallada al usuario, incluida una barra de progreso para cada tarea. Al actualizar usando apt upgrade se eliminan de la cache las versiones antiguas de los paquetes
==== Instalación / Desinstalación / Actualización ====
# Instalar / Actualizar paquete (previamente se debe ejecutar apt-get update).
apt install XXX # Instala o actualiza el paquete si está instalado.
apt install XXX=2.3.0-6 # Instalar una versión concreta de un paquete.
apt --only-upgrade install nginx # Actualiza el paquete si este se encuentra instalado. No instala nada si el paquete no fue instalado.
# Al actualizar el sistema puede ser de interés marcar paquetes como no actualizables.
apt-mark hold XXX # Marcar un paquete como actualizable.
apt-mark unhold XXX # Desmarcar un paquete como no actualizable.
# Reinstalar paquete.
apt --reinstall install XXX
# Desinstalar manteniendo ficheros de configuración.
apt remove XXX
# Desinstalar incluyendo ficheros de configuración.
apt purge XXX
# Actualizar el índice de paquetes de los repositorios (recomendable antes de instalar/actualizar).
apt update
# Actualizar todos los paquetes del sistema (Se debe usar apt-get update previamente).
# Solo se instalarán nuevos paquetes en el caso de que sea necesario satisfacer dependencias pero NO desinstalará nada, ni siquiera las dependencias.
apt upgrade
# Al no desinstalatar dependencias puede ser buena idea ejecutar "apt-get autoremove" de vez en cuando.
# Simulación de una actualización, no realiza ningún cambio sobre el sistema y no necesita por tanto sudo/root.
apt -s upgrade
# Tiene el mismo funcionamiento que "upgrade" pero SÍ puede desinstalar paquetes que sean requeridos para resolver una actualización.
apt full-upgrade
apt dist-upgrade # Antiguo nombre, actualmente se usa "full-upgrade".
Instalar y desinstalar al mismo tiempo uso de "+" y "-".
# Estos dos comandos hacen lo mismo.
apt install paquete1 paquete2-
apt remove paquete1+ paquete2
NOTA: Al listar los paquetes actualizables, si hay nuevas versiones del kernel disponibles, puede que no se muestren como el resto de paquetes. Esto se debe a que el sistema los trata como nuevos paquetes y no actualizaciones.
==== Buscar paquetes y ficheros de paquetes ====
# Permite buscar paquetes usando expresiones regulares, por ejemplo ^gnome\-. Busca tanto en descripción como en nombre de paquete.
apt search XXX
# Muestra todos los paquetes que apt conoce. Permite usar como parámetro un prefijo (no regex)
apt-cache pkgnames
# apt-cache pkgnames ngi # Mostrará todos los paquetes con prefijo ngi*.
# apt-file permite buscar qué paquetes contienen X ficheros.
apt-file update # Actualizar lista de ficheros de todos los paquetes de los repositorios.
apt-file search nginx.conf # Buscar qué paquete del repositorio contiene X fichero.
# NOTA: apt-file es un paquete extra que debe ser instalado.
==== Obtener información sobre paquetes ====
# Muestra más información como las versiones disponibles,las dependencias del paquete por versión, dependencias reversas del paquete disponible.
apt-cache showpkg XX
# Muestra información como dependencias, repositorio, tamaño, URLs a Bugs, web oficial, etc.
apt show XX
# Muestra información sobre las dependencias de un paquete.
apt depends XX
# Muestra información sobre las dependencias reversas de un paquete.
apt rdepends XX
# Lista los paquetes instalados
apt list --installed
# Lista los paquetes con actualizaciones disponibles.
apt list --upgradeable
# Muestra todas las versiones disponibles de un paquete (Puede utilizar expresiones glob ?,*,[]). Los dos comandos muestran la misma información.
apt list --all-versions XX
apt-cache policy XX
==== Obtener información sobre la configuración actual del funcionamiento de apt ====
# Vuelca la configuración de apt (hooks, triggers, etc).
apt-config dump
==== Limpieza de cache y paquetes no necesarios ====
Dependendias huérfanas.
# Eliminar todos los paquetes instalados para satisfacer dependencias y que actualmente no son necesarios.
apt autoremove
Cache.
# Limpiar el repositorio local de paquetes descargados
apt clean # Elimina todos los paquetes.
apt autoclean # Sólo elimina paquetes que ya no se pueden descargar desde sus fuentes
==== Problemas comunes y su solución ====
Algunos mensajes de error que pueden aparecer cuando hay un problema con apt.
ERROR Lock could not be acquired (another package manager running?)
The following packages have unmet dependencies
Cache lock can not be acquired, exiting
Cache has broken packages, exiting
Comprobar si algún proceso está bloqueando apt.
fuser /var/lib/dpkg/lock /var/lib/apt/lists/lock /var/cache/apt/archives/lock
Corregir el sistema cuando hay dependencias rotas.
apt --fix-broken install