Capítulo 10.3 - Compilación y Paquetes Alternativos
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Compilar software desde las fuentes
- Utilizar Snap para paquetes universales
- Utilizar Flatpak para aplicaciones
- Comprender las ventajas/desventajas
- Elegir la herramienta adecuada según el caso
Compilación desde Fuentes
Requisitos Previos
# Herramientas de compilación
sudo apt install build-essential # Ubuntu/Debian
sudo yum groupinstall "Development Tools" # Red Hat/CentOS
# Herramientas necesarias
# - gcc/g++ (compilador)
# - make (sistema de build)
# - autoconf, automake
# - libtool
Proceso Estándar
# 1. Descargar fuentes
wget http://example.com/software-1.0.tar.gz
tar -xzf software-1.0.tar.gz
cd software-1.0
# 2. Configuración
./configure --prefix=/usr/local
# Opciones comunes
./configure --prefix=/usr/local \
--enable-feature \
--disable-other \
--with-library=/usr/lib
# 3. Compilación
make
# 4. Instalación
sudo make install
# 5. Limpieza (opcional)
make clean
Ejemplo Completo
#!/bin/bash
# Ejemplo de compilación
VERSION="1.0"
SOFTWARE="mon-software"
PREFIX="/usr/local"
# Descargar
wget "http://example.com/${SOFTWARE}-${VERSION}.tar.gz"
tar -xzf "${SOFTWARE}-${VERSION}.tar.gz"
cd "${SOFTWARE}-${VERSION}"
# Configurar
./configure --prefix="$PREFIX"
# Compilar
make -j$(nproc) # Usa todos los CPUs
# Instalar
sudo make install
# Verificar
which mon-software
mon-software --version
Snap
¿Qué es Snap?
Snap es un sistema de paquetes universal desarrollado por Canonical.
Ventajas:
- Universal (todas las distribuciones)
- Auto-actualización
- Aislamiento (sandbox)
- Dependencias incluidas
Instalación
# Ubuntu (ya instalado)
# Otras distribuciones
sudo apt install snapd # Debian
sudo yum install snapd # Red Hat/CentOS
Uso
# Buscar
snap find nom-paquet
# Instalar
sudo snap install nom-paquet
# Listar instalados
snap list
# Actualizar
sudo snap refresh nom-paquet
sudo snap refresh # Todos
# Eliminar
sudo snap remove nom-paquet
# Información
snap info nom-paquet
Ejemplos
# Aplicaciones populares
sudo snap install code # VS Code
sudo snap install docker # Docker
sudo snap install node --classic # Node.js
sudo snap install chromium # Chromium
Flatpak
¿Qué es Flatpak?
Flatpak es un sistema de distribución de aplicaciones universal.
Ventajas:
- Universal
- Aislamiento
- Aplicaciones de escritorio
- Repositorios (Flathub)
Instalación
# Ubuntu/Debian
sudo apt install flatpak
# Red Hat/CentOS/Fedora
sudo yum install flatpak
# o
sudo dnf install flatpak
Configuración
# Agregar Flathub (repositorio principal)
flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo
# Ver repositorios
flatpak remotes
Uso
# Buscar
flatpak search nom-app
# Instalar
flatpak install flathub nom-app
# Listar instalados
flatpak list
# Actualizar
flatpak update nom-app
flatpak update # Todos
# Eliminar
flatpak uninstall nom-app
# Información
flatpak info nom-app
Ejemplos
# Aplicaciones populares
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.videolan.VLC
flatpak install flathub com.spotify.Client
Comparación
| Característica | apt/yum | Snap | Flatpak | Compilación |
|---|---|---|---|---|
| Universal | No | Sí | Sí | Sí |
| Aislamiento | No | Sí | Sí | No |
| Tamaño | Pequeño | Grande | Grande | Variable |
| Rendimiento | Excelente | Bueno | Bueno | Excelente |
| Actualizaciones | Manual | Auto | Auto | Manual |
| Uso | Sistema | Aplicaciones | Escritorio | Desarrollo |
Elección de la Herramienta Adecuada
apt/yum
Cuándo usar:
- Paquetes de sistema
- Servicios de servidor
- Rendimiento crítico
- Control total
Snap
Cuándo usar:
- Aplicaciones universales
- Actualizaciones automáticas
- Aislamiento necesario
- Desarrollo
Flatpak
Cuándo usar:
- Aplicaciones de escritorio
- Aislamiento necesario
- Multi-distribuciones
- Aplicaciones gráficas
Compilación
Cuándo usar:
- Se necesita una versión específica
- Opciones de compilación personalizadas
- No hay paquete disponible
- Desarrollo
Buenas Prácticas
Compilación
# 1. Leer README/INSTALL
# 2. Verificar dependencias
# 3. Usar --prefix apropiado
# 4. Probar antes de instalar
# 5. Documentar opciones utilizadas
Snap/Flatpak
# 1. Verificar fuente (oficial)
# 2. Comprender permisos
# 3. Monitorear espacio en disco
# 4. Actualizar regularmente
Resumen
En este capítulo, usted ha aprendido:
Compilación: configure, make, make install
Snap: Paquetes universales, auto-actualización, aislamiento
Flatpak: Aplicaciones de escritorio, Flathub, aislamiento
Comparación: Elegir según necesidades
Práctica: Compilar, instalar Snap/Flatpak
Próximos Pasos
Módulo 11: Monitoreo y Logs (con crons de monitoreo)
Módulo 12: Administración Avanzada
Capítulo creado el: Diciembre 2024