Introducción a Alpine Linux

Alpine Linux es una distribución ligera y segura basada en musl y busybox, diseñada especialmente para entornos minimalistas y de alto rendimiento. Su enfoque en la simplicidad y la seguridad la ha convertido en una opción popular para contenedores Docker, sistemas embebidos y servidores de producción que requieren una huella reducida y una gran estabilidad.

Un poco de historia

Alpine Linux fue creada en 2005 por Natanael Copa, con la idea de desarrollar un sistema operativo seguro, liviano y eficiente para servidores y dispositivos embebidos. Su diseño se inspira en otras distribuciones minimalistas, pero con un enfoque en la seguridad desde el núcleo, utilizando herramientas como PaX y grsecurity (en versiones anteriores) para mitigar vulnerabilidades.

Con el tiempo, Alpine Linux se ha convertido en una de las distribuciones más utilizadas en el mundo de los contenedores, especialmente en Docker, donde su tamaño reducido (aproximadamente 5 MB en su imagen base) la hace ideal para despliegues rápidos y eficientes.

Características principales

  • Ligereza extrema: Su imagen base es increíblemente pequeña en comparación con distribuciones más tradicionales como Ubuntu o Debian.
  • Seguridad reforzada: Utiliza musl libc en lugar de glibc y busybox en lugar de GNU coreutils, lo que reduce la superficie de ataque y mejora la seguridad.
  • Sistema de paquetes APK: Alpine emplea su propio gestor de paquetes, apk, que es rápido y eficiente.
  • Modo de ejecución en RAM: Permite ejecutar el sistema en memoria, ideal para entornos donde la persistencia no es un requisito.
  • Flexibilidad: Puede utilizarse tanto en servidores, como en sistemas embebidos o incluso como una estación de trabajo ligera con entornos gráficos como XFCE.

Dado su enfoque en la ligereza y el rendimiento, Alpine Linux es una excelente opción para aquellos que buscan un sistema optimizado y seguro. En esta guía, veremos cómo instalar y configurar Alpine Linux con el entorno de escritorio XFCE, habilitar audio y realizar ajustes adicionales para mejorar la experiencia de uso.

Descarga e instalación

La web oficial del proyecto es https://alpinelinux.com. En su sección de descargas podremos obtener la versión que más se adapte a nuestras necesidades. En este caso, vamos a utilizar la versión estándar, concretamente la versión x86_64.

Una vez hemos obtenido el fichero ISO, procedemos a montarlo en una unidad USB, a grabarlo en un CD o a usarlo en una máquina virtual. En este caso, usaré una máquina virtual.

Al iniciar la ISO, podemos ver que esta distribución no funciona bajo systemd sino que lo hace bajo un init llamado OpenRC, usado en distribuciones como Gentoo. Una vez que OpenRC ha cargado todo lo necesario, vemos la terminal de Linux solicitando iniciar sesión.

Podemos iniciar sesión con el usuario root. En este caso, no necesitamos contraseña alguna. Lo primero que ejecutaremos será el script de instalación del propio Alpine Linux:

setup-alpine

El primer paso de todos nos solicitará qué distribución principal de teclado que vamos a usar, en mi caso es, pero puede ser cualquier otra. Posteriormente, nos preguntará una variante dentro de la principal, escribimos también es y pulsamos intro para continuar.

Después, nos preguntará el nombre que queremos asignarle a nuestro host. Escribimos el nombre y pulsamos intro. Seguidamente, nos preguntará por las interfaz de red por defecto. Si sólo disponemos de una interfaz, podemos pulsar intro para seleccionarla y pasar al siguiente paso. En caso de tener varias, bastará con escribir el nombre de la interfaz que deseamos usar. En el siguiente paso nos preguntará si vamos a usar una IP fija o si por el contrario vamos a usar DHCP, que es la opción por defecto. Pulsamos intro y nos preguntará la confirmación de que no queremos configurar la red manualmente. Indicamos n para decir que no y pulsamos intro.

Ahora, veremos como se asigna una dirección IP a nuestra máquina, junto con una puerta de enlace. En siguiente paso nos pedirá una contraseña para el usuario root. Introducimos una contraseña fuerte, nos pedirá confirmación y posteriormente, nos pedirá la zona horaria con la que deseamos funcionar. Aquí escribimos ? y pulsamos intro para ver las zonas horarias disponibles. En mi caso, usaré la zona horaria Europe/Madrid.

Hecho eso, nos preguntará si vamos a usar servidor proxy. Le indicamos que no con none y pulsamos intro para ir al siguiente paso, donde nos preguntará por el servidor NTP que usaremos. Recomiendo dejar esta opción por defecto y usar chrony.

Ahora, uno de los pasos más importantes de la instalación, será el de seleccionar los mirrors para obtener los paquetes y actualizaciones que necesitemos. Dependiendo de la parte del mundo en la que estés, será mejor usar un mirror u otro. Podemos usar la opción f y que el instalador compruebe qué mirror nos da menor ping y por lo tanto, mejor velocidad.

Una vez el instalador ha seleccionado por nosotros el mirror más óptimo, procedemos al paso de crear un usuario. Podemos omitir este paso escribiendo no y pulsando intro. Personalmente, recomiendo crear un usuario. En mi caso, voy a crear un usuario llamado samu. Introducimos el nombre de login, después el nombre completo y después, una contraseña adecuada con su respectiva confirmación.

Una vez creado el usuario, en el siguiente paso se nos pedirá una clave SSH. Pulsamos intro para indicar que no vamos a usar ninguna. Después, nos dirá qué servidor SSH preferimos usar. La opción por defecto es openssh.

Completados los anteriores pasos, llegamos al proceso de selección de disco y tipo de instalación. Elegimos el disco donde vamos a realizar la instalación, en mi caso, sda. Después indicaremos el tipo de instalación que vamos a realizar. Lo normal, en una instalación limpia es escribir sys y pulsar intro.

Nos pedirá confirmación para eliminar el contenido del disco sda. Indicamos que sí mediante y y pulsamos intro. En cuestión de segundos, la instalación finalizará, dándonos de nuevo el control de la terminal. Reiniciamos mediante el siguiente comando:

reboot

NOTA: Hay que tener en cuenta en retirtar el soporte de instalación para que durante el reinicio, no vuelva a iniciar el instalador de Alpine Linux.

Una vez reiniciada nuestra máquina, nos volveremos a conectar mediante el usuario root. Ahora, necesitamos instalar un sistema de privilegios como por ejemplo sudo. Para facilitar la configuración de ficheros desde la terminal, instalaremos el siempre fiable nano. Para ello, ejecutaremos el siguiente comando:

apk add nano

NOTA: APK (Alpine Package Keeper) es el sistema de paquetes de Alpine Linux, no tiene nada que ver con Android. Su funcionamiento es similar a APT en las distribuciones Debian. Si necesitas conocer más acerca de APK, puedes visitar la Wiki de Alpine al respecto.

El primer paso que haremos con nano será descomentar la línea correspondiente al repositorio community. Para ello, ejecutamos lo siguiente:

nano /etc/apk/repositories

Una vez con el editor abierto, nos desplazamos a la línea señalada en la imagen y eliminamos el carácter # del inicio. Guardamos los cambios con control+o y salimos con control+x.

El siguiente paso será actualizar el índice de paquetes:

apk update

Y después, instalar las actualizaciones disponibles, en caso de haberlas:

apk upgrade

Tal y como mencionamos antes, necesitamos un gestor de permisos. Una vez hemos habilitado el respositorio community, actualizado el índice de paquetes e instalado las actualizaciones, procedemos a instalar sudo.

apk add sudo

Después de instalar sudo, se habrá creado el fichero /etc/sudoers. Lo abrimos con nano:

nano /etc/sudoers

Con las flechas de nuestro teclado, nos desplazamos hasta la sección User privilege specification. Ahí, veremos que existe una entrada para el usuario root. Básicamente hay que añadir bajo esa línea, otra similar pero para el usuario que anteriormente hayamos creado en el proceso de instalación.

samu ALL=(ALL:ALL) ALL

Hecho eso, de nuevo guardamos con control+o y salimos con control+x.

Ahora, podremos cambiar de usuario mediante el comando su.

su samu

Ya estamos logueados como un usuario normal en lugar de root. A partir de ahora, cualquier instrucción que necesite permisos de administración, la escribiremos inicialmente con la palabra sudo.

Instalando y configurando un entorno gráfico

Alpine Linux dispone de un script para la instalación de algunos entornos gráficos. Para ver los escritorios disponibles y proceder a la instalación de uno de ellos, ejecutaremos el siguiente comando:

sudo setup-desktop

Una vez introducida la contraseña del usuario que hemos creado anteriormente, podremos ver que el script nos ofrece la instalación de los escritorios gnome, plama, xfce, mate, sway o lxqt. Siguiendo la filosofía ligera de Alpine Linux, elegiremos la opción xfce.

Llegados a este punto, comenzará a descargar todos los paquetes necesarios para la instalación del escritorio seleccionado. Una vez haya finalizado, volvemos a reiniciar nuestra máquina. Tras el reinicio, veremos la ventana de login donde podremos escribir la contraseña de nuestro usuario y acceder al entorno gráfico.