Primi passi di Alpine Linux

Ecco una breve introduzione a Linux alpino, specificamente per la piattaforma Raspberry Pi

Perché Alpine Linux?

  • è piccolo
  • può essere installato copiando i file sulla partizione FAT della SD
  • può essere eseguito dalla RAM, il filesystem rimarrà in sola lettura (la persistenza delle modifiche è ovviamente possibile)
    • Questo è molto buono per i sistemi embedded dove la potenza può essere tagliata in modo imprevedibile!
  • è un sistema essenziale - nessun disordine, migliore sicurezza
  • quindi è una buona scelta per lo sviluppo embedded

Alpine Linux è spesso usato per i container Docker. Ed è anche supportato sulla piattaforma Raspberry Pi.

Perché non Alpine Linux?

  • non è raccomandato iniziare con Alpine per i principianti - dovrebbero sicuramente usare NOOBS o Raspbian
    • Alpine presuppone un certo livello di conoscenza di Linux, e aggiunge i propri strumenti per gestire l'installazione
  • Uso alpino musl invece di glibc come libc (libreria C standard) - questo è buono per sistemi embedded e con risorse limitate;
    • Le "grandi distribuzioni" usano però glibc - la compatibilità del software potrebbe essere un problema.
  • Sono disponibili meno pacchetti precompilati che per Raspbian - il che significa che potresti dover costruire da solo i pacchetti di cui hai bisogno.
  • Dovrete occuparvi di molte cose, per esempio impostare il corretto CRDA - questo può essere molto dispendioso in termini di tempo (noi hanno scritto un post sul blog in precedenza su questo)

Lettura altamente raccomandata

Installazione

Raccomandiamo di usare il armhf non quella aarch64. Al momento di scrivere questo, la più recente release di Alpine è la 3.8.1.

Ho testato Alpine sul Pi 3 B+, e sullo Zero W, e sono sicuro che funzionerà sul Pi 1, 2 e 3.

  • Per assicurare l'integrità dei dati verificare l'hash SHA256. Su Windows questo può essere fatto usando VisualHash
  • estrarre il file tar.gz. Su windows, questo può essere fatto usando 7-zip
  • estrarre anche il file tar (nella sua propria directory)

L'estrazione del file tar vi darà il contenuto che deve essere copiato nella partizione FAT32 della scheda SD.

Non sono necessarie altre partizioni per avviare Alpine.

Ricordate che il Raspberry Pi ha bisogno di una partizione FAT come prima partizione per avviarsi correttamente.

Suggerimento bonus: se avete bisogno di formattazione, SD Card Association's SD Formatter farà il trucco su Windows.

  • copiare il contenuto della directory nella partizione FAT della scheda SD

immagine

Lo screenshot mostra un Alpine Linux appena installato.

elenchi degni di nota:

  • apks - contiene i pacchetti Alpine

Modalità senza disco

La modalità di installazione predefinita per il Raspberry Pi è modalità senza disco.

In modalità senza disco, la scheda SD è usata solo inizialmente per caricare il sistema (e le tue modifiche apkovl, vedi sotto) in un filesystem RAM.

Dovete conservare le modifiche tra una sessione e l'altra usando il sistema Alpine  lbu (backup locale) utilità.

Accesso predefinito per Alpine su Raspberry Pi

Avviare il Raspberry Pi con la scheda SD Alpine inserita.

  • utente: root
  • password: .

La password non è necessaria, dopo aver inserito root e premuto invio, sarete loggati.

Procedura di installazione

Una volta effettuato l'accesso, digitare

setup-alpino

Suggerimento: nella disposizione della tastiera tedesca il trattino "-" è sul tasto "?

  • Alpine suggerirà di impostare un layout di tastiera come primo passo
    • e poi chiedere la variante della tastiera

Ho usato "de" e "de-nodeadkeys"

  • Alpine chiederà l'hostname del sistema
  • Poi si può impostare il collegamento in rete
    • è possibile impostare il collegamento in rete per dispositivi cablati e wireless
  • impostare l'IP, dhcp è supportato
  • se non volete impostare altri dispositivi di rete potete digitare fatto e premere invio; in alternativa è possibile impostare wlan0 (su Pi 3B+)
  • Alpine ti chiederà se vuoi fare un'ulteriore configurazione manuale della rete. Premere enter per selezionare l'impostazione predefinita (no)

Impostazioni aggiuntive

  • Dopo questo Alpine vi chiederà di impostare una nuova password di root
  • fuso orario
    • per esempio l'Europa
    • per esempio, Berlino come sotto-zona temporale
    • Anche Europa/Berlino funzionerà.
  • URL proxy HTTP/FTP (nessuno se si è in un ambiente di rete "normale")

Specchi

  • a causa dello sfasamento dell'orologio si potrebbero avere problemi nell'impostare un mirror del pacchetto (non è possibile aggiungere alcun mirror)
  • per risolvere questo problema eseguire setup-alpino una seconda volta, dopo averla percorsa completamente la prima volta
    • si otterranno alcuni avvertimenti, poiché alcuni servizi saranno già stati avviati.
  • l'opzione predefinita f testerà lo specchio più veloce

Server SSH

  • openssh è quello predefinito, ma si può anche installare dropbear

Dropbear risparmierà un po' di RAM, ma ha meno funzioni. Noi raccomandiamo OpenSSH.

Alpine ora genererà le chiavi host SSH per te.

Cliente NTP

  • busybox
  • openntpd
  • cronia (predefinito)

Memorizzare le configurazioni

Un passo importante nella procedura di configurazione è impostare dove verranno salvati i cambiamenti di configurazione.

mmcblk0p1 è l'impostazione predefinita preselezionata

Questa è la prima partizione (partizione FAT32) della scheda SD del Raspberry Pi.

Dopo di che, Alpine suggerirà una directory di cache locale per i pacchetti apk, anche sulla scheda SD: /media/mmcblk01p/cache

Nota importante: Alpine non salverà qualsiasi cambia nella modalità senza disco, anche il setup che avete appena completato. È necessario utilizzare l'utilità lbk per persistere queste modifiche!


Aggiornamento del sistema

aggiornamento apk

apk ugrade

Molto simile alle derivate di Debian, in realtà.


Installazione di pacchetti

apk aggiungere htop

Aggiunge il pacchetto htop. (Permette di monitorare l'uso delle risorse in modo più grafico).

Ricorda, Alpine non persisterà nell'installazione del pacchetto se non usi l'utilità lbk!

Cambiamenti persistenti

L'utilità lbk (backup locale) è usata per persistere i cambiamenti in modalità senza disco. Eseguila dopo che sei soddisfatto della tua configurazione:

lbu commit -d

Questo creerà un file chiamato .apkovl.tar.gz nella tua partizione FAT32. In questo file lbu salverà le modifiche relative alla configurazione di base.

Bandiere utili:

-d: rimuoverà i vecchi file apk overlay.

-n: non commettere, mostrare ciò che sarebbe stato commesso.

Questo è anche un ottimo posto per patchare queste configurazioni in modo dinamico mentre si creano schede SD in massa, e quindi iniettarle nel sistema (ad esempio, impostazioni modificate / indirizzi IP / ...).

immagine

nel mio caso ho chiamato il sistema "mir", ecco perché l'apkovl si chiama mir.apkovl.tar.gz

immagine

Notate che solo la singola cartella "etc" è contenuta nell'apkovl.

Questo perché lbu, per impostazione predefinita, persisterà solo le modifiche nel file /etc directory! (tranne /etc/init.d)

Aggiungere altre directory alla lista di directory persistenti di lbu:

Per aggiungere una directory o un file oltre a /etc per monitorare le modifiche e il commit (quando si esegue lbu commit), usare lbu include:

lbu include /home/miaucat

e poi fare il commit del file system.

Avrete solo bisogno di includere la directory una volta e fare il commit. I commit futuri manterranno anche la directory inclusa.


Mostra le modifiche attuali:

stato di lbu

mostrerà i file cambiati dall'ultimo commit.

usare il flag -a per mostrare tutti i file rispetto all'installazione fresca.

Nota che al riavvio, Alpine estrarrà il contenuto dell'apkovl, il che richiederà un po' di tempo (e RAM) in più.

Cose interessanti da sapere

  • Per ridurre le dimensioni, Alpine usa busybox. Busybox è un singolo eseguibile che è collegato a diverse utilità (come tare così via). Questa è una tecnica usata frequentemente nei sistemi embedded, per esempio il Fritz!Box.
  • Alpine monta la partizione FAT32 in sola lettura come /media/mmcblk0p1. Sarà brevemente rimontata in scrittura per persistere delle modifiche.
  • Alpine creerà una directory cache nella partizione FAT32 per memorizzare gli apk scaricati dai mirror online.
  • Per impostazione predefinita solo vi è installato come text-editor. vi è incluso nell'eseguibile di busybox (/usr/bin/vi è un symlink a /bin/busybox).
  • lbu può mantenere backup multiplie si può tornare a un backup più vecchio. Questo influisce solo su quale apkovl è considerato attivo.
  • Alpine non ha udev, ha mdev.
  • Poiché Alpine utilizza un file system basato sulla RAM, puoi semplicemente rimuovere la scheda SD dopo che Alpine si è avviata, e avviare il Pi successivo con essa. Molto figo!
    • Nota: il semplice reinserimento non vi permetterà di impegnarvi - otterrete un errore di I/O.

Risorse