Skip to main content

Teoría - Software y Actualizaciones

Características del Software

Dependencias

Un software normalmente no funciona si no tiene una serie de librerías o programas de apoyo que el propio software usa para no tener que implementar todas las funciones.
Importante: Es tarea de los programadores del software indicar las dependencias del mismo. Sin embargo, al igual que hay errores en el código, a veces ocurren errores en la definición de las dependencias y será tarea de los administradores hacer que el software funcione.
Si una dependencia no está instalada, el software puede:
  • No funcionar correctamente
  • No funcionar en absoluto
La resolución de dependencias es el proceso de instalar las dependencias y las dependencias de las mismas en el orden correcto.

Versionado de Software

El versionado es el proceso de asignación de un nombre, código o número único para indicar el nivel de desarrollo. Formato: mayor.menor.micro-fase Se aumenta el número cuando:
  • Mayor: El software sufre grandes cambios y mejoras
  • Menor: El software sufre pequeños cambios y/o correcciones de errores
  • Micro: Se aplica una corrección al software con pocos cambios
  • Fase: Indica fase de desarrollo (alpha, beta, rc)

Seguridad y Actualizaciones

Las versiones del software son siempre “crecientes” en el tiempo. Mantener el software actualizado es especialmente importante en servidores y estaciones críticas, ya que un software desactualizado es un software vulnerable.

Parches

Un parche es un pequeño trozo de código que modifica un software previamente instalado:
  • Arreglando un error
  • Ampliando funcionalidad
  • Modificando su comportamiento
Los parches pueden llegar como:
  1. Código fuente - Para compilar e incluir
  2. Revisión de software - Versión menor (Actualización)
  3. ServicePacks o Releases - Actualización mayor

Instalación en GNU/Linux

Archivos Binarios (.bin)

Los archivos con extensión .bin son archivos binarios ejecutables. Normalmente se distribuyen programas comerciales bajo este sistema.
1

Dar permisos de ejecución

sudo chmod +x nombre_binario.bin
2

Ejecutar el instalador

sudo ./nombre_binario.bin

Scripts Shell (.sh)

Los archivos .sh son scripts de shell.
# Método 1
bash nombre-paquete.sh

# Método 2 (tradicional)
cd RutaAlDirectorio/
chmod +x nombrepaquete.sh
./nombrepaquete.sh

# Con privilegios
sudo ./nombrepaquete.sh

Archivos de Asistente (.run)

Asistentes normalmente gráficos para la instalación.
sh ./archivo.run

# Con privilegios
sudo sh ./archivo.run

Compilación desde Código Fuente

1

Instalar herramientas de compilación

sudo apt update
sudo apt install build-essential
sudo apt install linux-headers-$(uname -r)
2

Descomprimir el código

# Extraer archivo .tar.gz o .tar.bz2
tar -xzf archivo.tar.gz
cd carpeta_descomprimida
3

Configurar la compilación

./configure
4

Compilar

make
5

Instalar

sudo make install
# O mejor aún, usar checkinstall
sudo apt install checkinstall
sudo checkinstall
Ventaja de checkinstall: El sistema tendrá constancia de los programas instalados, facilitando su desinstalación.

Gestión de Paquetes en Debian/Ubuntu

dpkg - Herramienta Base

dpkg es el programa base para manejar paquetes Debian (.deb). Tiene una visión parcial del universo Debian: sabe lo que está instalado y lo que se le provee en la línea de comandos, pero no conoce otros paquetes disponibles.
dpkg fallará si no se satisface una dependencia. Para instalaciones complejas, es mejor usar apt.

Comandos Principales

ComandoAcción
dpkg -I paquete.debMuestra información del paquete
dpkg -i paquete.debInstala el paquete
dpkg -r paqueteDesinstala el paquete (mantiene configuración)
dpkg -P paquetePurga el paquete (elimina todo)
dpkg -S /ruta/archivoIndica qué paquete contiene el archivo
dpkg -L paqueteLista archivos del paquete instalado
dpkg -s paqueteMuestra estado del paquete
dpkg -c paquete.debMuestra contenido antes de instalar
En la desinstalación con dpkg NO se pone el nombre del .deb sino el nombre del paquete.

apt - Gestor Avanzado

apt es la herramienta de administración que busca paquetes en repositorios, resuelve dependencias automáticamente y los instala.

¿Qué es un Repositorio?

Un repositorio es un sitio donde se almacenan y mantienen paquetes de aplicaciones y librerías. Pueden ser:
  • Servidores FTP o HTTP en Internet
  • Dispositivos locales (DVD-ROM)
  • Espejos distribuidos mundialmente

Comandos apt

# Instalar paquete
apt install nombre_paquete

# Reinstalar paquete
apt install --reinstall nombre_paquete

Repositorios en Ubuntu

Repositorios Oficiales

  • main: Software libre soportado por Canonical
  • universe: Software libre mantenido por la comunidad
  • restricted: Controladores privativos para dispositivos
  • multiverse: Software restringido por copyright o cuestiones legales

Repositorios de Actualizaciones

  • security: Actualizaciones importantes de seguridad (siempre activada)
  • updates: Actualizaciones recomendadas (siempre activada)
  • proposed: Actualizaciones en prueba (desactivada)
  • backports: Últimas versiones no soportadas (opcional)

Gestión de Repositorios

El archivo principal de configuración es /etc/apt/sources.list
# Ver contenido
mousepad /etc/apt/sources.list

# Editar (requiere permisos)
sudo mousepad /etc/apt/sources.list
Precaución: Hacer copia de seguridad antes de modificar. Un error puede impedir que el sistema encuentre los repositorios.

Repositorios PPA (Personal Package Archive)

Los PPA son repositorios de terceros alojados en Launchpad. Nomenclatura: ppa:creador/nombre
# Añadir repositorio
sudo add-apt-repository ppa:webupd8team/java

# Actualizar lista
sudo apt update

Instalación en Windows

Páginas Oficiales

Siempre es recomendable conseguir el software desde la página oficial para asegurarse de que no se hayan introducido virus, troyanos o herramientas de ataque.

Archivos Ejecutables (.exe)

Archivos binarios ejecutables que contienen:
  • El instalador del software
  • O el ejecutable del programa (standalone)

Microsoft Installer (.msi)

Instaladores que contienen información para automatizar la instalación, minimizando la intervención manual del usuario. Equivalente: Similar a paquetes .deb en GNU/Linux

Microsoft Store

Plataforma de distribución digital centralizada y segura incluida desde Windows 8. Características:
  • Catálogo centralizado de aplicaciones
  • Gestión automática de instalación/actualización/desinstalación
  • Requiere cuenta Microsoft
  • Reparto de beneficios: 30% Microsoft, 70% desarrollador
  • Disponible en 120 países
Las aplicaciones Metro pueden desaparecer si el desarrollador las retira de la tienda. Es prácticamente imposible hacer respaldos de ejecutables de apps modernas.

Registro de Windows

¿Qué es el Registro?

El Registro de Windows es una base de datos jerárquica que almacena ajustes de configuración y opciones en sistemas operativos Microsoft Windows. Usuarios del Registro:
  • El núcleo (kernel)
  • Los drivers
  • Los servicios
  • El SAM (Security Account Manager)
  • La interfaz de usuario
  • Aplicaciones de terceros

Historia

Antes del Registro, los datos se almacenaban en ficheros .INI. Problemas como:
  • Acceso concurrente
  • Incapacidad de guardar datos diferentes a texto
Motivaron el desarrollo del Registro como base de datos.

Estructura

El Registro contiene dos elementos básicos:
  1. Claves: Similares a carpetas, pueden contener otras claves
  2. Valores: Pares de nombres y datos almacenados dentro de las claves

Claves Principales

HKEY_LOCAL_MACHINE (HKLM)

Almacena configuraciones específicas del equipo local. Subclaves:
  • SAM: Bases de datos de cuentas de seguridad
  • SECURITY: Base de datos de seguridad del dominio
  • SYSTEM: Información de instalación del sistema (solo administrador)
  • SOFTWARE: Ajustes de software organizados por vendedor
  • HARDWARE: Volátil, creada dinámicamente (dispositivos Plug-and-Play)
Ruta importante: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList - Define rutas a carpetas personales de usuarios

HKEY_CLASSES_ROOT (HKCR)

Contiene información sobre aplicaciones y asociaciones de archivo.

HKEY_CURRENT_USER (HKCU)

Almacena configuraciones específicas del usuario que tiene sesión iniciada.

HKEY_PERFORMANCE_DATA

Proporciona información de datos de rendimiento en tiempo de ejecución del kernel, controladores, programas y servicios. Acceso:
  • API de Windows
  • Administrador de tareas (pestaña Rendimiento)
  • Monitor de rendimiento
  • Analizador de rendimiento

Recursos Adicionales

Tareas Prácticas

Aplica estos conceptos con ejercicios prácticos

Siguiente Unidad

Continúa con UD08 - Seguridad

Build docs developers (and LLMs) love