Primeiros passos do Alpine Linux

Aqui está uma pequena cartilha para Linux alpinoespecificamente para a plataforma Raspberry Pi

Porquê Linux Alpino?

  • é pequeno
  • pode ser instalado através da cópia de arquivos na partição FAT do SD
  • pode ser executado a partir da RAM, o sistema de arquivos permanecerá somente de leitura (mudanças persistentes são possíveis, é claro)
    • isto é muito bom para sistemas embutidos onde a energia pode ser cortada de forma imprevisível!
  • é um sistema de ossos nus - sem desordem, melhor segurança
  • portanto, é uma boa escolha para o desenvolvimento integrado

O Alpine Linux é frequentemente utilizado para contentores Docker. E também é suportado na plataforma Raspberry Pi.

Porque não Alpine Linux?

  • não é recomendado começar com Alpine para iniciantes - eles devem definitivamente usar NOOBS ou Raspbian
    • Alpine assume algum nível de conhecimento do Linux, e adiciona suas próprias ferramentas para gerenciar a instalação
  • usos alpinos miscelânea em vez de glibc como libc (biblioteca C padrão) - isto é bom para sistemas embutidos e com restrições de recursos;
    • As "grandes distribuições" usam glibc no entanto - a compatibilidade de software pode ser um problema.
  • Há menos pacotes pré-compilados disponíveis do que para o Raspbian - o que significa que você pode estar por conta própria construindo pacotes que você precisa.
  • Você terá que tomar conta de muitas coisas, por exemplo definição do CRDA correto - isto pode ser muito demorado (nós ter escrito um post de blog anteriormente sobre isto)

Leitura altamente recomendada

Instalação

Recomendamos a utilização do armhf construir, não o aarch64. Desde que escrevemos isto, a mais recente versão alpina é a 3.8.1.

Eu testei os Alpes no Pi 3 B+, e o Zero W, e estou confiante de que ele irá funcionar no Pi 1, 2 e 3.

  • Para garantir a integridade dos dados verificar o hash SHA256. No Windows isto pode ser feito usando VisualHash
  • extrair o arquivo tar.gz. No windows, isto pode ser feito usando o 7-zip
  • extrair o arquivo de alcatrão também (em seu próprio diretório)

A extracção do ficheiro tar dar-lhe-á o conteúdo que necessita de ser copiado para a partição FAT32 do cartão SD.

Não são necessárias outras partições para iniciar a Alpine.

Lembre-se, o Raspberry Pi precisa de uma partição FAT como a primeira partição a arrancar correctamente.

Dica de bônus: se você precisar de formatação, o SD Card Formatter da SD Card Association fará o truque no Windows.

  • copiar o conteúdo do diretório para a partição FAT do cartão SD

imagem

A captura de tela mostra um Linux Alpino recém-instalado.

diretórios dignos de nota:

  • apks - contém embalagens alpinas

Modo Diskless

O modo de instalação padrão para o Raspberry Pi é modo diskless.

No modo diskless, o cartão SD só é usado inicialmente para carregar o sistema (e seu apkovl muda, veja abaixo) em um sistema de arquivos RAM.

Você tem que preservar as modificações entre as sessões usando o  lbu (backup local) utilidade.

Login predefinido para Alpine em Raspberry Pi

Inicie o Raspberry Pi com o cartão SD alpino inserido.

  • usuário: raiz
  • senha:

A senha não é necessária, depois de digitar root e pressionar enter, você estará logado.

Procedimento de configuração

Uma vez logado, digite

setup-alpine

Dica: no teclado alemão o traço "-" está na tecla "?".

  • Alpine irá sugerir a configuração de um layout de teclado como o primeiro passo
    • e depois pedir a variante de teclado

Eu usei "de" e "de-nodeadkeys".

  • A Alpine vai pedir o nome do sistema de hostname
  • Então você pode configurar a rede
    • você pode configurar a rede para dispositivos com e sem fio
  • configurar o IP, o dhcp é suportado
  • se você não quiser configurar mais dispositivos de rede, você pode digitar feito e prima enter; em alternativa, pode configurar wlan0 (em Pi 3B+)
  • A Alpine irá perguntar se você deseja fazer uma configuração manual de rede adicional. Pressione enter para selecionar a configuração padrão (não)

Configurações adicionais

  • Depois disto, a Alpine pedir-lhe-á para definir uma nova palavra-passe de raiz
  • fuso horário
    • por exemplo, a Europa
    • por exemplo, Berlim como subzona temporal
    • A Europa/Berlim também vai funcionar.
  • URL proxy HTTP/FTP (nenhuma se você estiver em um ambiente de rede "normal")

Espelhos

  • devido ao enviesamento do relógio você pode se deparar com problemas na configuração de um espelho de pacotes (nenhum espelho pode ser adicionado)
  • para resolver este problema setup-alpine uma segunda vez, depois de teres passado por isso completamente da primeira vez.
    • você receberá alguns avisos, já que alguns serviços já terão sido iniciados.
  • a opção padrão f irá testar para o espelho mais rápido

Servidor SSH

  • openssh é o padrão, mas você também pode instalar o dropbear

O Dropbear vai salvar alguma RAM, mas tem menos características. Nós recomendamos o OpenSSH.

A Alpine irá agora gerar chaves de anfitrião SSH para si.

NTP Cliente

  • busybox
  • openntpd
  • chrony (padrão)

Armazenamento de configurações

Um passo importante no procedimento de configuração é definir onde as alterações de configuração serão salvas.

mmcblk0p1 é o padrão pré-selecionado

Esta é a primeira partição (partição FAT32) do cartão SD do Raspberry Pi.

Depois disso, a Alpine irá sugerir um diretório cache local para pacotes apk, também no cartão SD: /media/mmcblk01p/cache

Nota importante: os Alpes não vão salvar qualquer mudanças no modo diskless, mesmo a configuração que acabou de completar. Você precisa usar o utilitário lbk para persistir nestas mudanças!


Atualizando o sistema

atualização do apk

apk ugrade

Bastante similar aos derivados do Debian, na verdade.


Instalação de pacotes

apk add htop

Adiciona o pacote de topo. (permitindo que você monitore o uso dos recursos de uma forma mais gráfica).

Lembre-se, Alpine não vai persistir na instalação do pacote se você não usar o utilitário lbk!

Mudanças persistentes

O utilitário lbk (backup local) é usado para persistir em mudanças no modo diskless. Execute-o depois de estar satisfeito com a sua configuração:

lbu commit -d

Isto irá criar um ficheiro chamado .apkovl.tar.gz na sua partição FAT32. Neste ficheiro o lbu irá guardar as alterações respectivas à configuração base.

Bandeiras úteis:

-d: removerá arquivos antigos de apk overlay.

-n: não te comprometas, mostra o que teria sido cometido.

Este é também um óptimo lugar para estar a remendar dinamicamente estas configurações enquanto cria cartões SD em massa, e assim injectá-los no sistema (por exemplo, configurações modificadas / endereços IP / ...).

imagem

no meu caso eu chamei o sistema de "mir", é por isso que o apkovl é chamado de mir.apkovl.tar.gz

imagem

Note que apenas a pasta única "etc." está contida na apkovl.

Isso é porque o Ibu, por defeito, só persistirão as mudanças no /etc diretório! (excepto /etc/init.d)

Adicionando outros diretórios à lista de diretórios persistidos do Ibu:

Para adicionar um diretório ou arquivo além de /etc para monitorar as mudanças e fazer commit (quando você executar o commit lbu), use lbu incluem:

lbu inclui /home/miaucat

e depois comprometer o sistema de ficheiros.

Você só precisará incluir o diretório uma vez, e se comprometer. Compromissos futuros irão preservar o diretório incluído também.


Mostrando as mudanças atuais:

estado de Ibuprofeno

irá mostrar os arquivos alterados desde a última submissão.

use a bandeira -a para mostrar todos os arquivos em comparação com a nova instalação.

Note que na reinicialização, a Alpine irá extrair o conteúdo da apkovl, o que levará um pouco de tempo adicional (e RAM).

Coisas interessantes para saber

  • Para diminuir o tamanho, os usos alpinos busybox. O Busybox é um único executável que está ligado a diferentes utilitários (como alcatrão...e assim por diante.) Esta é uma técnica frequentemente utilizada em sistemas embutidos, por exemplo, o Fritz!Box.
  • Alpine monta a partição FAT32 somente leitura como /media/mmcblk0p1. Ela será brevemente remontada para poder ser escrita por alterações persistentes.
  • Alpine irá criar um diretório de cache na partição FAT32 para o cache dos apk's baixados dos espelhos online.
  • Por defeito apenas vi é instalado como editor de texto. vi está incluído no executável busybox (/usr/bin/vi é um link simbólico para /bin/busybox).
  • lbu pode manter backups múltiplose você pode reverter para um backup mais antigo. Isto só afecta qual apkovl é considerado activo.
  • Alpine não tem udev, ele tem mdev.
  • Como a Alpine usa um sistema de arquivos baseado em RAM, você pode simplesmente remover o cartão SD após a inicialização da Alpine, e inicializar o próximo Pi com ele. Muito legal!
    • Nota: se simplesmente o ligar de volta, não permitirá que você se comprometa - você receberá um erro de E/S.

Recursos