Saltar al contenido principal

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ísticaapt/yumSnapFlatpakCompilación
UniversalNoSíSíSí
AislamientoNoSíSíNo
TamañoPequeñoGrandeGrandeVariable
RendimientoExcelenteBuenoBuenoExcelente
ActualizacionesManualAutoAutoManual
UsoSistemaAplicacionesEscritorioDesarrollo

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