Instalación de Linux y gestión de paquetes
Domina el diseño de particiones, gestores de arranque, librerías compartidas y gestión de paquetes.
102.1 Diseño del esquema de particionado
Puntos de montaje
Para acceder a un sistema de archivos, este debe estar montado en un directorio. Históricamente se usaba /mnt, hoy /media es más común para montajes automáticos (ej. USB en /media/USER/ETIQUETA). Para montajes manuales, /mnt sigue siendo la práctica estándar.
Manteniendo las cosas separadas
Arranque
Contiene kernel y GRUB. Recomendado separarlo. ~300MB.
Usuarios
Facilita reinstalaciones sin perder datos de usuario.
Logs y Caché
Evita que un bucle de logs llene el disco raíz y bloquee el sistema.
Partición de intercambio (SWAP)
La partición SWAP intercambia páginas de memoria RAM a disco. No se monta como un sistema de archivos normal. Se configura con mkswap y se activa con swapon.
- Tamaño: Igual a RAM si ≤ 8GB; mínimo 4GB si > 8GB.
- Linux también admite archivos de intercambio.
LVM (Logical Volume Manager)
Permite una gestión flexible del almacenamiento:
- PV (Physical Volume): Partición o disco físico.
- VG (Volume Group): Agrupación de PVs.
- LV (Logical Volume): Particiones lógicas dentro de un VG donde se crean los sistemas de archivos.
- Extents: Unidad mínima de almacenamiento en un VG.
102.2 Instalar un gestor de arranque
GRUB Legacy vs. GRUB 2
| Característica | GRUB Legacy | GRUB 2 |
|---|---|---|
| Configuración | /boot/grub/menu.lst |
/etc/default/grub (y scripts en /etc/grub.d) |
| Estado | Obsoleto (finalizado en 2005) | Estándar actual |
Ubicación del cargador
En sistemas MBR, el código de arranque reside en los primeros 512 bytes y carga el gestor secundario. En GPT (soluciona límites de 2TB y 4 particiones), en BIOS se usa una partición de arranque especial; en UEFI, GRUB se carga desde la partición EFI (ESP) usando archivos .efi.
La partición /boot
Contiene los archivos esenciales para el arranque (Kernel, initrd, configuración GRUB). Archivos clave:
vmlinuz-version: Núcleo comprimido.initrd.img-version: Disco RAM inicial.system.map-version: Tabla de símbolos./boot/grub/: Archivos del gestor (ej.grub.cfg,lvm.mod).
Configuración de GRUB 2
No editar /boot/grub/grub.cfg directamente. Editar /etc/default/grub y ejecutar update-grub o grub-mkconfig.
GRUB_DEFAULT: Entrada por defecto.GRUB_TIMEOUT: Tiempo de espera.GRUB_CMDLINE_LINUX: Parámetros del kernel (root, ro, etc).
Rescate: Si el sistema no arranca, usar un Live-CD, montar la partición en /mnt y ejecutar grub-install --boot-directory=/mnt/boot /dev/sda.
102.3 Gestión de librerías compartidas
Conceptos
- Estáticas: Compiladas dentro del programa (sin dependencias externas, tamaño mayor).
- Dinámicas (.so): Compartidas entre programas (menos tamaño, dependencias externas).
Nomenclatura y Rutas
Formato: libnombre.so.version.
Ubicaciones estándar: /lib, /lib64, /usr/lib, /usr/local/lib.
Configuración y Gestión
ld.so.confy/etc/ld.so.conf.d/: Definen rutas de búsqueda.ldconfig: Actualiza la caché de enlaces a librerías tras modificar la configuración.LD_LIBRARY_PATH: Variable de entorno para añadir rutas temporales.ldd programa: Muestra las librerías compartidas de las que depende un ejecutable.
102.4 Gestión de paquetes Debian
dpkg (Bajo nivel)
Gestiona archivos .deb individualmente. No resuelve dependencias automáticamente.
| Acción | Comando |
|---|---|
| Instalar | dpkg -i paquete.deb |
| Eliminar | dpkg -r paquete (config persiste) |
| Purgar | dpkg --purge paquete |
| Listar | dpkg -l |
apt (Alto nivel)
Gestiona repositorios y resuelve dependencias.
| Acción | Comando |
|---|---|
| Actualizar índice | apt update |
| Actualizar sistema | apt upgrade |
| Instalar | apt install paquete |
| Eliminar | apt remove paquete |
| Limpiar caché | apt autoclean |
Repositorios en /etc/apt/sources.list y /etc/apt/sources.list.d/.
102.5 Gestión de paquetes RPM y YUM
RPM (Bajo nivel)
Usado en Red Hat, Fedora, SUSE. No resuelve dependencias complejas.
| Acción | Comando |
|---|---|
| Instalar/Actualizar | rpm -Uvh paquete.rpm |
| Eliminar | rpm -e paquete |
| Listar instalados | rpm -qa |
| Info paquete | rpm -qi paquete |
YUM / DNF (Alto nivel)
YUM (Yellowdog Updater Modified) y su sucesor DNF manejan repositorios y dependencias.
| Acción | Comando |
|---|---|
| Instalar | yum/dnf install paquete |
| Actualizar sistema | yum/dnf update |
| Eliminar | yum/dnf remove paquete |
| Buscar | yum/dnf search paquete |
Zypper (SUSE)
Herramienta equivalente para openSUSE/SLES. Comandos: zypper install, zypper update, zypper remove.
Repositorios en /etc/yum.repos.d/ (YUM/DNF) o gestionados con zypper addrepo.
102.6 Linux como sistema virtualizado
Conceptos de Virtualización
Permite ejecutar múltiples sistemas operativos (máquinas virtuales o "guests") sobre un único hardware físico ("host") mediante un hipervisor.
- Hipervisores Tipo 1 (Bare Metal): Corren directamente sobre el hardware (ej. Xen).
- Hipervisores Tipo 2 (Hospedados): Corren como una aplicación sobre un SO anfitrión (ej. KVM - integrado en kernel Linux, VirtualBox).
Tipos de Máquinas Virtuales
- Totalmente virtualizadas: El sistema operativo invitado ignora que es virtual. Requiere soporte de hardware (Intel VT-x / AMD-V).
- Paravirtualizadas: El SO invitado sabe que es virtual y usa controladores específicos para mejor rendimiento.
- Híbridas: Combinación de ambos (hardware virtualizado con controladores paravirtualizados).
Plantillas y Nube
Las plantillas son imágenes preconfiguradas para despliegues rápidos. Es crítico verificar el D-Bus Machine ID único tras clonar.
En entornos de Nube (IaaS) como AWS o Azure, gestionamos instancias, almacenamiento y redes. El acceso es vía SSH y la configuración inicial se automatiza a menudo con cloud-init.