06. Instalación y gestión de software en Ubuntu Server: guía completa

Gestionar software es una habilidad fundamental para cualquier administrador de Ubuntu Server. Tanto si trabaja en un entorno de nube como Azure, AWS o GCP, como si gestiona infraestructura local, es esencial comprender herramientas de gestión de paquetes como APT para mantener un sistema seguro y optimizado.

En esta guía, cubriremos los conceptos básicos de la instalación, actualización y gestión de software, exploraremos escenarios específicos de la nube, resolveremos problemas comunes y ofreceremos ejemplos prácticos para ayudarle a dominar la administración de Ubuntu Server.


Artículo anterior:

01. Introducción a Ubuntu Server – SysOSX: AI & Cloud

02. Cómo configurar su primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud

03. Dominio de la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gestión de usuarios y permisos en Ubuntu Server: una guía completa – SysOSX: AI & Cloud

05. Conceptos básicos de redes para Ubuntu Server: una guía completa – SysOSX: AI & Cloud



1. Comprender APT y la gestión de paquetes en Ubuntu

Ubuntu Server utiliza APT (Advanced Package Tool) como su gestor de paquetes principal. APT simplifica la gestión de software gestionando las dependencias automáticamente y utilizando los repositorios como fuentes fiables de paquetes.

Componentes clave de APT:

  • apt: Herramienta de línea de comandos para gestionar paquetes.
  • dpkg: Gestor de paquetes de bajo nivel para .deb archivos.
  • Repositorios: Fuentes en línea donde se almacenan y recuperan los paquetes de Ubuntu.

2. Instalar software con APT

Para instalar software en Ubuntu Server, utilice el comando apt install .

Ejemplo: instalar el servidor web Apache

  • Actualice la lista de paquetes:
sudo apt update 

Salida:

Hit:1 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [922 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [364 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7076 B]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.3 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9024 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 1907 kB in 1s (2778 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded. Run 'apt list --upgradable' to see them.
  • Instale Apache:
sudo apt install apache2

3. Eliminar software

Si ya no necesita un paquete, puede eliminarlo con los comandos apt remove o apt purge .

Ejemplo: eliminar Apache

sudo apt remove apache2

Salida:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  apache2
...
After this operation, 2 MB disk space will be freed.
Do you want to continue? [Y/n]

Para eliminarlo por completo, incluidos los archivos de configuración:

sudo apt purge apache2


4. Actualización y mejora de paquetes

Las actualizaciones periódicas son fundamentales para la seguridad y la estabilidad del sistema.

Comandos:

  • Actualizar la lista de paquetes
sudo apt update 
  • Actualizar los paquetes instalados
sudo apt upgrade
  • Actualización completa (incluidas las actualizaciones del kernel)
sudo apt full-upgrade

Salida:

The following packages will be upgraded:
  linux-image-5.4.0-91-generic linux-headers-5.4.0-91-generic ...
Do you want to continue? [Y/n]

5. Gestión de repositorios

Los repositorios son esenciales para la gestión de paquetes. De forma predeterminada, Ubuntu usa repositorios oficiales, pero se pueden añadir, modificar o eliminar repositorios adicionales según sea necesario.

Gestión de repositorios en formato Deb822

Las versiones recientes de Ubuntu han adoptado el formato Deb822 para la gestión de repositorios. En lugar de usar el archivo tradicional /etc/apt/sources.list , ahora los repositorios se gestionan mediante archivos .sources ubicados en el /etc/apt/sources.list.d/ directorio.

Ver los repositorios actuales

Para ver sus repositorios actuales, consulte los archivos .sources en /etc/apt/sources.list.d/:

ls /etc/apt/sources.list.d/

Por ejemplo:

cat /etc/apt/sources.list.d/ubuntu.sources

Un .sources archivo en formato Deb822 se ve así:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Añadir un repositorio

Para añadir un nuevo repositorio en formato Deb822, cree un archivo .sources en /etc/apt/sources.list.d/. Por ejemplo, para añadir un repositorio PPA personalizado:

sudo nano /etc/apt/sources.list.d/custom.sources

Añada el contenido personalizado deseado:

Types: deb
URIs: http://customizedurl/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/repository-name.gpg

Guarde el archivo y actualice la lista de paquetes:

sudo apt update

Eliminar un repositorio

Para eliminar un repositorio, elimine el archivo .sources correspondiente de /etc/apt/sources.list.d/:

sudo rm /etc/apt/sources.list.d/custom.sources
sudo apt update

Ventajas del formato Deb822

  • Configuración estructurada: Separa claramente los tipos de repositorio, las URI, las suites y los componentes.
  • Seguridad mejorada: Permite especificar claves GPG para la firma de repositorios mediante el campo Signed-By .
  • Mejor compatibilidad: Facilita la gestión de varios repositorios en entornos de nube y contenedorizados.

Para obtener más información, consulte la página del manual sources.list(5).


6. Gestión de la caché de paquetes

APT usa un sistema de caché para almacenar localmente los archivos de paquetes descargados y los metadatos. Esta caché ayuda a acelerar operaciones como la instalación y las actualizaciones de software, pero puede crecer con el tiempo y consumir espacio en disco. Saber cómo gestionar la caché es esencial para mantener el rendimiento del sistema y liberar recursos.

Comprobar el tamaño de la caché

Para comprobar cuánto espacio está usando la caché:

sudo du -sh /var/cache/apt/

Ejemplo de salida:

126M    /var/cache/apt/

Limpieza de la caché

  1. Borrar la caché de paquetes
    Utilice el comando apt clean para eliminar todos los archivos de paquetes almacenados en caché:sudo apt clean Esto borra el /var/cache/apt/archives directorio, que almacena .deb archivos.
  2. Eliminar descargas parciales
    Si una descarga se interrumpió o se dañó, elimine los archivos parciales con:sudo apt autoclean Esto solo elimina archivos obsoletos y descargas parciales.

Ejemplo de salida de la limpieza de caché

sudo apt clean
sudo apt autoclean

Salida:

Cleaning up /var/cache/apt/archives...
Removing unused files...
Done.

Reconstrucción de la caché

Si sospecha que los metadatos de la caché están dañados, reconstrúyala actualizando la lista de paquetes:

sudo apt update 

Esto actualiza la caché local con los metadatos más recientes de los repositorios.


7. Escenarios en la nube: gestión de software en Azure, AWS y GCP

En entornos de nube, la gestión de software en Ubuntu Server funciona de forma similar a las configuraciones locales. Sin embargo, hay consideraciones adicionales:

Azure

  • Azure ofrece Extensiones de script personalizado para automatizar la instalación de software durante la implementación de máquinas virtuales.
  • Ejemplo: uso de un script para instalar Nginx:
az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name CustomScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"commandToExecute":"sudo apt update && sudo apt install -y nginx"}'

AWS

  • Utilice scripts de datos de usuario para instalar software durante el lanzamiento de la instancia.
  • Ejemplo: instalación de Docker en una instancia EC2:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io

GCP

  • Utilice scripts de inicio para gestionar la instalación de software en instancias de máquinas virtuales.
  • Ejemplo: instalación de MySQL:
#!/bin/bash
sudo apt update
sudo apt install -y mysql-server

8. Solución de problemas comunes durante la instalación o desinstalación

1. Paquete no encontrado

Si no se encuentra un paquete, asegúrese de que el repositorio esté habilitado:

sudo apt update 
sudo apt update

2. Errores de dependencia

Corrija las dependencias que faltan:

sudo apt --fix-broken install

3. Problemas con los repositorios

Compruebe si hay errores en los repositorios:

sudo apt update 

Ejemplo de salida:

Err:1 http://ppa.launchpad.net/repository-name/ubuntu noble Release
  404 Not Found

Solución: elimine o corrija la entrada del repositorio en /etc/apt/sources.list.

4. La desinstalación deja archivos residuales

Limpie los archivos restantes:

sudo apt autoremove
sudo apt purge package-name

5. Permiso denegado

Asegúrese de tener privilegios de root:

sudo apt install package-name


9. Prácticas recomendadas para la gestión de paquetes

  • Actualice siempre antes de instalar software
sudo apt update 
  • Actualice su sistema con regularidad
    Utilice apt upgrade o apt full-upgrade  para mantener su sistema seguro.
  • Elimine los paquetes innecesarios
sudo apt autoremove
  • Use repositorios de confianza
    Evite los repositorios de terceros a menos que sean necesarios.
  • Supervise los cambios de paquetes en entornos de nube
    Automatice las actualizaciones con scripts o herramientas de gestión de la configuración como Ansible.
  • Limpie la caché periódicamente
    Borre la caché con regularidad para liberar espacio en disco:
sudo apt clean

Conclusión

Tanto si gestiona un servidor local como si trabaja en la nube, dominar la instalación y la gestión de software en Ubuntu Server es fundamental para mantener un sistema seguro y eficiente. Siguiendo las prácticas recomendadas descritas en esta guía, puede asegurarse de que su servidor se mantenga optimizado y listo para cualquier carga de trabajo.

Para obtener más información, consulte la documentación oficial de Ubuntu sobre APT.

¿Qué sigue?

En el próximo artículo, profundizaremos en la aplicación de parches y la actualización de Ubuntu Server, una tarea crítica para mantener la seguridad y la estabilidad. Aprenderá:

  • Por qué la aplicación de parches es fundamental para la seguridad y la estabilidad y cómo previene las vulnerabilidades.
  • Cómo usar apt para actualizar y mejorar su servidor de forma eficaz.
  • Las diferencias entre apt update, apt upgrade, y apt full-upgrade para evitar errores comunes.
  • Automatización de actualizaciones con unattended-upgrades para ahorrar tiempo y garantizar la coherencia.
  • Cómo gestionar las actualizaciones del kernel y reiniciar el servidor sin problemas usando las notificaciones de reboot-required .

¡Esté atento a información práctica para mantener su Ubuntu Server seguro y actualizado!

4 thoughts on “06. Installing and Managing Software on Ubuntu Server: A Complete Guide”

Deja un comentario