[Tutorial] Executando o PureOS (Phosh) via VM

Olá a todos!

Este é um texto que publiquei no meu LinkedIn, como o conteúdo ficou bem interessante resolvi portar ele aqui pro fórum também :slightly_smiling_face:.

O assunto que o texto aborda é um tanto quanto especifico, contudo faz referencia a diversas tecnologias que tem aparecido bastante recentemente (pelo menos na minha bolha social :sweat_smile: :rofl:).


OBS : VM abreviação para virtual machine (máquina virtual).

A Purism utiliza em seus notebooks o sistema operacional PureOS, o mesmo é uma distribuição Linux que utiliza como base o Debian juntamente com o ambiente de desktop Gnome.

Para o Librem 5, que é um smartphone da empresa, é utilizada uma versão do PureOS que utilizar um prototipo de shell chamado Phosh juntamente com um compositor que utiliza Wayland chamado Phoc.

Neste texto vamos ver como realizar o download do arquivo de disco e como utilizar este arquivo de disco no Gnome Boxes. Veremos também que é possível utilizar essa VM para testar aplicativos construídos com GTK, em especifico aplicativos construídos com o Gnome Builder e empacotados em formato Flatpak.

Para saber mais sobre o Gnome Builder clique aqui.

Baixando o arquivo de disco

O primeiro passo para baixar o arquivo de disco que será utilizado no virtualizador é acessar o site de integração continua (CI server) do projeto:

https://arm01.puri.sm/job/Images/job/Image%20Build/

Procure pelos históricos de builds que estão em verde :

histórico de builds

Ao acessar o histórico de builds procure por qemu-x86_64.qcow2 , caso não encontre este arquivo basta clicar no botão Previous Build :

Procurando pelo arquivo qemu-x86_64.qcow2

Ao localizar a imagem basta fazer o download da mesma clicando sobre o nome:

Localizando e realizando o download do arquivo de disco

Como o arquivo é do tipo qcow2 é interessante que se utilize KVM/QEMU para a virtualização, algumas distribuições Linux vem com o Gnome Boxes por padrão, contudo também é possível utilizar o virt-manager.

Como estou utilizando o Fedora o Gnome Boxes já vem instalado por padrão, neste caso basta clicar no ícone de soma ( + ) e selecionar a opção Criar uma máquina virtual… :

Adicionado uma nova máquina virtual no Gnome Boxes

Em seguida clique na opção Selecione um arquivo :

Não foi fornecido texto alternativo para esta imagem

Navegue até a pasta onde está o arquivo qemu-x86_64.qcow2 e clique em Abrir :

Selecionando o arquivo de disco

É exibida a tela onde podemos configurar a quantidade de memória RAM que será utilizada pela máquina virtual, por padrão a mesma utiliza 2 GIB, o qual é um bom valor. Clique em Criar :

Criando a maquina virtual

Aguarde alguns minutos até que seja exibida a tela de desbloqueio do sistema, a senha padrão é 123456 :

Tela de desbloqueio do PureOS Phosh

Ao realizar o desbloqueio é exibida a primeira tela de configuração, onde podemos definir o idioma para o sistema (ainda não tem português do brasil). Clique em Next :

Selecionando o idioma

Logo em seguida temos a tela de configuração do teclado, selecione o mais adequado e clique em Next :

Selecionando o layout do teclado

Selecionando o layout do teclado

Agora podemos configurar a privacidade, marque as opções que você julgar interessantes para a sua privacidade. Clique em Next :

Configuração de privacidade

Caso queira configurar uma conta de e-mail ou do NextCloud este é o momento, caso contrario clique em Skip :

Conectando contas online

Por fim basta clicar em Start Using your Librem 5 para começar a utilizar o sistema:

Tela final da configuração

Com o fim das configurações temos a tela inicial do sistema onde podem ser vistos alguns apps:

Tela inicial do sistema

Ao clicar na região do relógio temos uma área de notificações e algumas configurações rápidas:

Área de notificação e configuração rápida do sistema

Assim como em sistema Linux para desktop podemos realizar diversas operações pelo terminal, basicamente são os mesmo comandos que se utilizariam em sistemas como Debian/Ubuntu:

Executando o terminal no PureOS Phosh

OBS : Vale enfatizar que o usuário padrão é purism e a senha é 123456 .

Nos testes que realizei, a VM apresenta um comportamento bem estável e é muito interessante analisar a forma com que os aplicativos feitos com a libhandy (ou não) se comportam em telas pequenas.

Deploy do aplicativo na VM

O objetivo aqui é apenas exemplificar o processo de instalação de um aplicativo na VM, para isso vou utilizar o próprio aplicativo de exemplo que é criado quando se inciar um projeto no Gnome Builder. Clique aqui para ver como instalar e criar um projeto no Gnome Builder.

Para criar um pacote Flatpak no Gnome Builder é extremamente simples, basta acessar o menu superior e clicar na opção Exportar pacote :

Exportando pacote no Gnome Builder

OBS : Caso o botão não esteja disponível execute uma vez o projeto.

O processo de construção do pacote é exibido no terminal do Gnome Builder:

Processo de construção do pacote Flatpak no terminal do Gnome builder

Com o final do processo, uma janela contendo os arquivos costuma ser aberta:

Pasta contendo os arquivos gerados pelo Gnome Builder

Pasta contendo os arquivos gerados pelo Gnome Builder

Caso a janela não abra, basta verificar no terminal do Gnome Builder o caminho onde os arquivos foram gerados.

A copia do arquivo br.natorsc.OlaMundo.flatpak (o seu pode ter outro nome!) é feita com o comando scp , para utilizar esse comando é necessário saber o IP da VM, para isso basta abrir um terminal nela e digitar o comando ip a ou mesmo ip a | grep inet :

Verificando o IP da VM

Vale notar que não é necessário utilizar apenas o terminal da VM, também é possível se conectar a mesma utilizando-se SSH :

Acessando VM por ssh

OBS : Utilize a forma que lhe for mais confortável.

Ao descobrir o IP da VM abra um terminal no mesmo diretório do arquivo br.natorsc.OlaMundo.flatpak e execute:

scp br.natorsc.OlaMundo.flatpak purism@192.168.122.102:~/

Após a cópia podemos verificar que o arquivo foi copiado para a VM utilizando o comando ls :

Verificando se o arquivo foi copiado

Agora que o aplicativo está na VM precisamos configurar o repositório Flathub na VM, isso porque o aplicativo que copiamos no momento da instalação irá baixar os pacotes e o runtime necessário para a sua execução.

O repositório Flathub pode ser adicionado utilizando-se:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Para confirmar se o repositório foi adicionando:

flatpak remotes

Com o repositório configurado basta instalar o aplicativo com o comando:

flatpak install br.natorsc.OlaMundo.flatpak

Instalando o aplicativo

Digite a senha do usuário purism ( 123456 ):

Digitando a senha para instalação

O instalador irá verificar e realizar o download dos pacotes necessários:

Flatpak instalando as dependências necessárias

Importante! :rotating_light:

Esse foi um problema que tive ao tentar instalar o aplicativo, durante a tentativa de download do runtime e demais pacotes recebi um alerta de falta de espaço.

Isso pode ter sido gerado por estar realizando diversos teste durante a escrita deste texto ou mesmo posso ter baixado uma build que não estava legal.

Para resolver este problema eu aumentei o tamanho do disco virtual no Gnome Boxes:

Aumentando o tamanho do disco virtual

Com o aumento do disco não houve um aumento da partição ( /dev/sda2 ), para corrigir isso utilizei uma imagem bootável do Gparted para redimensionar o tamanho da partição.

Para iniciar pela imagem do Gparted, basta acionar a mesma nas propriedades da VM:

Adicionando iso do Gparted no Gnome Boxes

Ao iniciar a VM pressione Esc e em seguida pressione o numero 3 (No meu Gnome Boxes a unidade de CD/DVD está no 3):

Realizando boot pela imagem do Gparted

Quando o Gparted estiver aberto basta clicar com o botão direito sobre a partição que deseja redimensionar e clicar em Verificar :

Redimencionando a partição da VM

Após a verificação a partição já deve estar utilizando todo o espaço disponível, desligue o Gparted e inicie novamente na VM.

Ao iniciar tente realizar a instalação novamente e a mesma deve ocorrer sem problemas.


A execução do aplicativo pode ser feita com o comando:

flatpak run br.natorsc.OlaMundo

Aplicativo em execução na VM

Na tela inicial o atalho do aplicativo não estará sendo exibido, reinicie a VM para que o mesmo apareça:

Ícone do aplicativo na tela inicial do PureOS (Phosh)

Com isso finalizamos esse passeio pelo PureOS com Phosh, o estado da VM para testes de software está realmente muito bom.

Sem falar que é extremante útil e pratico poder simular o comportamento do aplicativo na plataforma em que ele será executado.

Em caso de erros ou mesmo inconsistências entre em contato para que o conteúdo possa ser melhorado :nerd_face:.

Dicas e criticas também são bem vindas :grin:.

7 curtidas

A típica postagem que eu não tenho interesse nenhum sobre o assunto, mas eu curto pra dar um apoio pois imagino o trabalho que deve ter dado. Parabéns :smile:.

2 curtidas

Se percebe que flatpaks não são pra mobile