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
- https://wiki.alpinelinux.org/wiki/Alpine_Linux:Overview - explicando os diferentes modos (sys, diskless, data), e a filosofia geral alpina - leia isto primeiro!
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi - instalação de Alpine em Raspberry Pi
- https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management - o apk utilidade
- https://wiki.alpinelinux.org/wiki/Alpine_local_backup - o lbu utilidade
- https://wiki.alpinelinux.org/wiki/Tutorials_and_Howtos - lista de tutoriais e Howto's para Alpine
Instalação
- Descarregar de https://alpinelinux.org/downloads/ - ver debaixo do Raspberry Pi título.
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
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 / ...).
no meu caso eu chamei o sistema de "mir", é por isso que o apkovl é chamado de mir.apkovl.tar.gz
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
- https://en.wikipedia.org/wiki/Alpine_Linux
- Wiki Alpino
- https://wiki.alpinelinux.org/wiki/Raspberry_Pi - Tutorial de instalação do 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 como executar diferentes tarefas administrativas em diferentes distros, e como é feito em Alpine
- https://pi3g.com/2018/08/06/wifi-channel-13-14-on-alpine-linux-aka-i-cant-connect-to-my-router-aka-crda-configuration/ - adicionando os Canais WiFi 13 e 14 (Europa) aos Alpes, instalando pacotes a partir de edge / testing
- (não investigado, pode ser interessante): Construir imagens personalizadas do Raspberry Pi com base no Alpine via Pieman