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
- https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview - explicando los diferentes modos (sys, diskless, data), y la filosofía general de Alpine - ¡lea esto primero!
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi - instalación de Alpine en Raspberry Pi
- https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management - la apk utilidad
- https://wiki.alpinelinux.org/wiki/Alpine_local_backup - la lbu utilidad
- https://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos - lista de tutoriales y Howto's para Alpine
Instalación
- Descargar desde https://alpinelinux.org/downloads/ - mira debajo de la Raspberry Pi título.
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
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 / ...).
en mi caso llamé al sistema "mir", por eso el apkovl se llama mir.apkovl.tar.gz
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
- https://en.wikipedia.org/wiki/Alpine_Linux
- Wiki de los Alpes
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi - Tutorial de instalación de Raspberry Pi
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth
- https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
- https://wiki.alpinelinux.org/wiki/Configure_Networking
- https://wiki.alpinelinux.org/wiki/Installing_Oracle_Java
- https://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos
- https://wiki.alpinelinux.org/wiki/Comparison_with_other_distros - compara cómo ejecutar diferentes tareas de administración en diferentes distros, y cómo se hace en Alpine
- https://pi3g.com/2018/08/06/wifi-channel-13-14-on-alpine-linux-aka-i-cant-connect-to-my-router-aka-crda-configuration/ - añadiendo los canales WiFi 13 y 14 (Europa) a Alpine, instalando paquetes desde el borde / probando
- (no se ha investigado, podría ser interesante): Construir imágenes personalizadas de Raspberry Pi basadas en Alpine a través de Pieman