Primeros pasos de Alpine Linux

He aquí un breve manual para Alpine Linuxespecíficamente para la plataforma Raspberry Pi

¿Por qué Alpine Linux?

  • es pequeño
  • se puede instalar copiando los archivos en la partición FAT de la SD
  • puede ejecutarse desde la RAM, el sistema de archivos seguirá siendo de sólo lectura (por supuesto, es posible persistir los cambios)
    • esto es muy bueno para los sistemas embebidos en los que la energía puede cortarse de forma impredecible.
  • es un sistema básico: no hay desorden, es más seguro
  • por lo que es una buena opción para el desarrollo integrado

Alpine Linux se utiliza a menudo para los contenedores Docker. Y también es compatible con la plataforma Raspberry Pi.

¿Por qué no Alpine Linux?

  • no se recomienda empezar con Alpine para los principiantes - deberían usar definitivamente NOOBS o Raspbian
    • Alpine asume un cierto nivel de conocimiento de Linux, y añade sus propias herramientas para gestionar la instalación
  • Los usos alpinos musl en lugar de glibc como libc (biblioteca C estándar) - esto es bueno para los sistemas embebidos y con recursos limitados;
    • Sin embargo, las "grandes distribuciones" utilizan glibc, por lo que la compatibilidad del software podría ser un problema.
  • Hay menos paquetes precompilados disponibles que para Raspbian - lo que significa que podrías estar por tu cuenta construyendo los paquetes que necesitas.
  • Tendrás que ocuparte de muchas cosas, por ejemplo establecer el CRDA correcto - esto puede llevar mucho tiempo (nosotros haber escrito una entrada en el blog anteriormente sobre esto)

Lectura muy recomendada

Instalación

Se recomienda utilizar el armhf no la de aarch64. En el momento de escribir esto, la versión más reciente de Alpine es la 3.8.1.

He probado Alpine en la Pi 3 B+, y en la Zero W, y estoy seguro de que funcionará en las Pi 1, 2 y 3.

  • Para garantizar la integridad de los datos verificar el hash SHA256. En Windows, esto se puede hacer utilizando VisualHash
  • extraiga el archivo tar.gz. En Windows, esto se puede hacer usando 7-zip
  • extraiga también el archivo tar (en su propio directorio)

Al extraer el archivo tar se obtendrá el contenido que hay que copiar en la partición FAT32 de la tarjeta SD.

No se necesita ninguna otra partición para iniciar Alpine.

Recuerda que la Raspberry Pi necesita una partición FAT como primera partición para arrancar correctamente.

Consejo adicional: si necesita formatear, el formateador de tarjetas SD de la Asociación de Tarjetas SD hará el truco en Windows.

  • copiar el contenido del directorio en la partición FAT de la tarjeta SD

imagen

La captura de pantalla muestra un Alpine Linux recién instalado.

directorios notables:

  • apks - contiene paquetes Alpine

Modo sin disco

El modo de instalación por defecto de la Raspberry Pi es modo sin disco.

En el modo sin disco, la tarjeta SD sólo se utiliza inicialmente para cargar el sistema (y sus cambios apkovl, ver más abajo) en un sistema de archivos RAM.

Hay que conservar las modificaciones entre sesiones mediante el sistema de Alpine  lbu (copia de seguridad local) utilidad.

Inicio de sesión por defecto para Alpine en Raspberry Pi

Arranca la Raspberry Pi con la tarjeta SD de Alpine insertada.

  • usuario: root
  • contraseña:

La contraseña no es necesaria, tras introducir root y pulsar enter, se iniciará la sesión.

Procedimiento de instalación

Una vez iniciada la sesión, escriba

setup-alpine

pista: en la disposición del teclado alemán, el guión "-" está en la tecla "?

  • Alpine le sugerirá que configure una distribución de teclado como primer paso
    • y luego pedir la variante del teclado

He utilizado "de" y "de-nodeadkeys"

  • Alpine le pedirá el nombre de host del sistema
  • A continuación, puede configurar la red
    • puedes configurar la red para los dispositivos alámbricos e inalámbricos
  • configurar la IP, dhcp es compatible
  • si no desea configurar más dispositivos de red, puede escribir hecho y pulse enter; alternativamente puede configurar wlan0 (en la Pi 3B+)
  • Alpine le preguntará si desea realizar una configuración manual adicional de la red. Pulse enter para seleccionar el valor por defecto (no)

Ajustes adicionales

  • Después de esto Alpine le pedirá que establezca una nueva contraseña de root
  • zona horaria
    • Por ejemplo, Europa
    • por ejemplo, Berlín como subzona horaria
    • Europa/Berlín también funcionará.
  • URL del proxy HTTP/FTP (ninguna si está en un entorno de red "normal")

Espejos

  • debido a la desviación del reloj, puede tener problemas para configurar un paquete espejo (no se puede añadir ningún espejo)
  • para solucionar este problema ejecute setup-alpine una segunda vez, una vez que la primera vez la hayas revisado por completo
    • obtendrá algunas advertencias, ya que algunos servicios ya se habrán iniciado.
  • la opción por defecto f probará el espejo más rápido

Servidor SSH

  • openssh es el predeterminado, pero también puedes instalar dropbear

Dropbear ahorrará algo de RAM, pero tiene menos funciones. Recomendamos OpenSSH.

Alpine generará ahora claves de host SSH para usted.

Cliente NTP

  • busybox
  • openntpd
  • chrony (por defecto)

Almacenamiento de configuraciones

Un paso importante en el procedimiento de configuración es establecer dónde se van a guardar los cambios de configuración.

mmcblk0p1 es el valor por defecto preseleccionado

Esta es la primera partición (partición FAT32) de la tarjeta SD de la Raspberry Pi.

Después de eso, Alpine sugerirá un directorio local de caché para los paquetes apk, también en la tarjeta SD: /media/mmcblk01p/cache

Nota importante: Alpine no guardará cualquier cambios en el modo sin disco, incluso la configuración que acaba de completar. Es necesario utilizar la utilidad lbk para persistir estos cambios.


Actualización del sistema

actualización de la apk

apk ugrade

Bastante similar a los derivados de Debian, en realidad.


Instalación de paquetes

apk añadir htop

Añade el paquete htop. (Permite monitorizar el uso de recursos de forma más gráfica).

Recuerde que Alpine no persistirá en la instalación del paquete si no utiliza la utilidad lbk.

Cambios persistentes

La utilidad lbk (copia de seguridad local) se utiliza para persistir los cambios en el modo sin disco. Ejecútalo después de que estés satisfecho con tu configuración:

lbu commit -d

Esto creará un archivo llamado .apkovl.tar.gz en su partición FAT32. En este archivo lbu guardará los cambios respectivos a la configuración base.

Banderas útiles:

-d: eliminará los viejos archivos apk de superposición.

-n: no cometer, mostrar lo que se habría cometido.

Esto también es un gran lugar para estar parcheando estas configuraciones dinámicamente mientras se crean tarjetas SD en masa, y así inyectarlas en el sistema (por ejemplo, configuraciones modificadas / direcciones IP / ...).

imagen

en mi caso llamé al sistema "mir", por eso el apkovl se llama mir.apkovl.tar.gz

imagen

Tenga en cuenta que sólo la carpeta "etc" está contenida en el apkovl.

Eso es porque lbu, por defecto, sólo persistirán los cambios en el /etc directorio¡! (excepto /etc/init.d)

Añadir otros directorios a la lista de directorios persistentes de lbu:

Para añadir un directorio o archivo además de /etc para supervisar los cambios y confirmarlos (cuando se ejecuta lbu commit), utilice lbu incluyen:

lbu include /home/miaucat

y luego confirmar el sistema de archivos.

Sólo tendrá que incluir el directorio una vez, y confirmarlo. Las futuras confirmaciones conservarán también el directorio incluido.


Muestra los cambios actuales:

estado del lbu

mostrará los archivos modificados desde la última confirmación.

utilice el indicador -a para mostrar todos los archivos en comparación con la instalación nueva.

Tenga en cuenta que en el reinicio, Alpine extraerá el contenido del apkovl, lo que tomará un poco de tiempo adicional (y RAM).

Cosas interesantes que hay que saber

  • Para reducir el tamaño, Alpine utiliza busybox. Busybox es un único ejecutable que tiene enlaces simbólicos con diferentes utilidades (como alquitránetc.) Se trata de una técnica muy utilizada en los sistemas embebidos, por ejemplo, el Fritz!Box.
  • Alpine monta la partición FAT32 de sólo lectura como /media/mmcblk0p1. Se volverá a montar brevemente con capacidad de escritura para persistir los cambios.
  • Alpine creará un directorio de caché en la partición FAT32 para almacenar en caché los apk's descargados de los mirrors online.
  • Por defecto sólo vi está instalado como editor de texto. vi está incluido en el ejecutable de busybox (/usr/bin/vi es un enlace simbólico a /bin/busybox).
  • lbu puede mantener múltiples copias de seguridady puedes volver a una copia de seguridad anterior. Esto sólo afecta a qué apkovl se considera activo.
  • Alpine no tiene udev, tiene mdev.
  • Como Alpine utiliza un sistema de archivos basado en la RAM, puedes simplemente retirar la tarjeta SD después de que Alpine haya arrancado, y arrancar la siguiente Pi con ella. ¡Muy bueno!
    • nota simplemente conectarlo de nuevo no le permitirá comprometerse - obtendrá un error de E/S.

Recursos