apt-get
El comando apt-get es la herramienta clásica de línea de comandos en distribuciones Linux basadas en Debian (como Ubuntu, Mint o Debian) para la gestión avanzada de paquetes de software. Permite instalar, actualizar, configurar y desinstalar aplicaciones y dependencias directamente desde los repositorios oficiales de forma automatizada.
| Categoría | Sistema y software |
|---|---|
| Disponible en | Linux (Debian / Ubuntu / derivadas) |
| Equivalente en Windows | winget, choco (Chocolatey), gestión de características de Windows |
| Sustituye a | Antiguos sistemas de gestión de paquetes de bajo nivel (como dpkg de forma aislada). Coexiste con el comando moderno apt. |
| ¿Requiere permisos de administrador? | Sí, todas las acciones que modifican el sistema (instalar, actualizar o eliminar software) exigen privilegios de superusuario (sudo). |
¿Qué significa su nombre?
APT-GET proviene de la combinación de APT (Advanced Packaging Tool, Herramienta Avanzada de Empaquetado) y el sufijo GET (obtener).
Representa la interfaz clásica orientada a la obtención y manipulación de paquetes de software dentro del ecosistema de gestión de Debian.
¿Para qué sirve?
El comando apt-get sirve para administrar el ciclo de vida del software en el sistema operativo. Permite sincronizar las listas locales con los repositorios remotos, actualizar el sistema operativo completo, instalar nuevas aplicaciones resolviendo automáticamente las dependencias necesarias y eliminar programas de forma limpia.
Aunque en las distribuciones actuales se suele recomendar el uso del comando simplificado apt para el trabajo interactivo del día a día, apt-get sigue siendo el estándar indiscutible en scripts de automatización, contenedores Docker y despliegues debido a su compatibilidad estricta y estabilidad retroactiva.
Sintaxis
sudo apt-get [opción] [acción] [paquete]
Las acciones o subcomandos más habituales son:
| Subcomando | Descripción |
|---|---|
update |
Actualiza la lista local de paquetes disponibles en los repositorios remotos. |
upgrade |
Instala las actualizaciones disponibles para todos los paquetes ya instalados en el sistema. |
install [paquete] |
Descarga e instala una nueva aplicación junto con todas sus dependencias. |
remove [paquete] |
Desinstala un paquete de software conservando sus archivos de configuración locales. |
purge [paquete] |
Desinstala por completo un paquete eliminando también todos sus archivos de configuración. |
Comandos más utilizados
| Comando | Descripción |
|---|---|
sudo apt-get update |
Sincroniza y refresca la base de datos de los repositorios de software. |
sudo apt-get upgrade |
Actualiza todos los paquetes instalados en el sistema operativo. |
sudo apt-get install [nombre_paquete] |
Instala un programa específico en el equipo. |
sudo apt-get purge [nombre_paquete] |
Elimina un programa y borra todos sus ficheros de configuración asociados. |
Equivalencia con otros sistemas
| Acción | Linux antiguo | Linux actual | Windows |
|---|---|---|---|
| Actualizar repositorios | apt-get update |
apt update |
winget upgrade (busca actualizaciones) |
| Instalar un programa | apt-get install |
apt install |
winget install [programa] |
| Desinstalar programa | apt-get remove |
apt remove |
winget uninstall [programa] |
| Limpiar paquetes huérfanos | apt-get autoremove |
apt autoremove |
Liberador de espacio en disco |
Ejemplos
Actualizar las listas de paquetes disponibles en los repositorios
sudo apt-get update
Instalar un nuevo paquete de software (ej. el servidor web Apache)
sudo apt-get install apache2
Desinstalar un programa conservando su configuración
sudo apt-get remove nano
Desinstalar un programa por completo borrando sus ficheros de configuración
sudo apt-get purge apache2
Ejemplo de salida
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes adicionales:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1
Se instalarán los siguientes paquetes NUEVOS:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
0 actualizados, 6 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 2.500 kB de archivos.
¿Cómo interpretar la salida?
- Árbol de dependencias: muestra cómo APT calcula automáticamente los paquetes adicionales o librerías secundarias necesarios para que el programa principal funcione.
- Paquetes NUEVOS / actualizados: resumen numérico de las acciones que se van a realizar en el sistema tras la confirmación.
- Volumen de descarga: cantidad exacta de datos que se descargarán de internet para completar el proceso de instalación.
Errores habituales
- Olvidar anteponer
sudoal ejecutar comandos de gestión de software, lo que provoca un fallo de permisos denegados. - Olvidar ejecutar
sudo apt-get updateantes de intentar instalar un paquete nuevo, lo que a veces genera errores de dependencias rotas o paquetes no encontrados (E: Unable to locate package).
Conceptos relacionados
- Gestor de paquetes
- Repositorio de software
- Dependencias
- Paquete .deb
- Comando
dpkg - Comando
apt
Comandos relacionados
aptdpkgapt-cachedpkg-reconfigurewinget
Curiosidades
Aunque el comando moderno apt (introducido en Ubuntu 16.04) es mucho más amigable para las personas en la terminal —mostrando barras de progreso visuales y resúmenes más limpios—, los desarrolladores de sistemas y scripts continúan utilizando preferentemente apt-get porque su interfaz de comandos está diseñada para no cambiar de formato entre versiones, garantizando la estabilidad de la automatización.
Prácticas propuestas
- Ejecuta
sudo apt-get updateen tu máquina virtual e identifica qué ocurre en la salida del terminal durante la conexión con los servidores de los repositorios. - Busca un paquete ligero de utilidad (como
htopotree) e instálalo utilizandosudo apt-get install. Comprueba que se ha instalado correctamente ejecutándolo después. - Prueba a desinstalar el paquete anterior utilizando la opción
purgeen lugar deremove. ¿Qué diferencia observas respecto a la permanencia de ficheros? - Ejecuta
sudo apt-get autoremovepara comprobar si existen dependencias huérfanas en tu sistema operativo que ya no sean necesarias. - Compara la salida y el comportamiento de
apt-get installfrente al comando simplificadoapt install. ¿Qué diferencias estéticas aprecias en pantalla? - Si dispones de un entorno Windows con gestor de paquetes moderno, prueba a instalar una aplicación utilizando
winget instally compara el proceso con APT.
Consejo: Adquiere el hábito de ejecutar siempre sudo apt-get update antes de instalar cualquier aplicación nueva; te asegurará obtener la versión más reciente y evitará errores molestos de dependencias.
Preguntas de reflexión:
- ¿Qué ocurre exactamente en el sistema al ejecutar
sudo apt-get updatey por qué no actualiza ningún paquete instalado? - ¿Qué diferencia fundamental existe a nivel interno entre los comandos
apt-get installyapt-get build-depo la instalación directa? - ¿Qué diferencia práctica hay entre desinstalar un paquete con
removey hacerlo conpurgerespecto a los archivos de configuración? - ¿Para qué sirve exactamente el comando
sudo apt-get autoremovey qué son las llamadas dependencias huérfanas? - ¿Qué mejoras estéticas y de usabilidad introdujo el comando simplificado
aptfrente a las herramientas clásicas deapt-get? - ¿Qué similitudes y diferencias principales aprecias al comparar el funcionamiento de APT en Linux con un gestor moderno como
wingeten Windows?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué ocurre exactamente en el sistema al ejecutar sudo apt-get update y por qué no actualiza ningún paquete instalado?
Este comando se conecta a los servidores remotos para descargar las listas de paquetes más recientes y actualizar la base de datos local del sistema. No actualiza ningún software instalado porque su único propósito es sincronizar la información del catálogo; la tarea de actualizar los programas se realiza posteriormente mediante el comando upgrade.
Es decir, sudo apt-get update descarga los catálogos nuevos de los repositorios y actualiza la información en tu ordenador (saber qué versiones nuevas existen), mientras que sudo apt-get upgrade mira ese catálogo recién actualizado y procede a descargar e instalar las actualizaciones reales de los programas que tienes en el sistema.
2. ¿Qué diferencia fundamental existe a nivel interno entre los comandos apt-get install y apt-get build-dep o la instalación directa?
Mientras que apt-get install descarga e instala los paquetes binarios ya compilados listos para su uso directo, comandos como build-dep analizan el código fuente de un programa para descargar e instalar todas las dependencias y librerías de desarrollo necesarias para que un programador pueda compilar ese software desde cero en su equipo.
3. ¿Qué diferencia práctica hay entre desinstalar un paquete con remove y hacerlo con purge respecto a los archivos de configuración?
El parámetro remove desinstala el binario del programa pero conserva intactos los archivos de configuración del usuario en el directorio /etc (por si se decide reinstalar el paquete más adelante). Por el contrario, la opción purge elimina por completo tanto el programa como todos los ficheros de configuración asociados, dejando el sistema totalmente limpio de rastro del software.
4. ¿Para qué sirve exactamente el comando sudo apt-get autoremove y qué son las llamadas dependencias huérfanas?
Las dependencias huérfanas son aquellas librerías o paquetes adicionales que se instalaron automáticamente en su día para satisfacer los requisitos de otro programa, pero que ya no son necesarios porque el programa principal fue desinstalado. El comando autoremove se encarga de detectarlas y eliminarlas de forma automatizada para liberar espacio en disco.
5. ¿Qué mejoras estéticas y de usabilidad introdujo el comando simplificado apt frente a las herramientas clásicas de apt-get?
El comando moderno apt unifica las funciones más comunes de apt-get y apt-cache en una interfaz de usuario más amigable. Añade mejoras visuales significativas en la terminal, como una barra de progreso gráfica de descarga más limpia, colores adaptados y mensajes de texto orientados a mostrar un resumen claro del número de paquetes que se van a actualizar o instalar.
6. ¿Qué similitudes y diferencias principales aprecias al comparar el funcionamiento de APT en Linux con un gestor moderno como winget en Windows?
Ambos comparten el concepto central de gestión centralizada de software desde la línea de comandos mediante repositorios remotos seguros. Sin embargo, APT está profundamente integrado a nivel de sistema operativo gestionando dependencias a nivel de librerías del sistema y binarios del núcleo Unix, mientras que winget en Windows actúa principalmente como un instalador automatizado de aplicaciones de usuario final (paquetes ejecutables y MSIs).