Como migrar de pacotes Snap para Flatpak usando o Unsnap

Se você quer abandonar de vez os pacotes Snap e ir para o mundo do Flatpak, veja como migrar de pacotes Snap para Flatpak usando o Unsnap.

Neste artigo, vamos apresentar a você uma ferramenta fantástica chamada Unsnap, que simplifica o processo de migração de pacotes Snap para Flatpak no Ubuntu e seus derivados.

Como migrar de pacotes Snap para Flatpak usando o Unsnap
Como migrar de pacotes Snap para Flatpak usando o Unsnap

Você está procurando fazer a mudança de usar pacotes snap para flatpaks? Se sim, você está no lugar certo!

Para quem ainda não conhece, o Unsnap é um script de shell que permite uma transição rápida e fácil do uso de pacotes snap para aplicativos para flatpak.

Como o próprio nome sugere, o Unsnap tem tudo a ver com ajudar os usuários a ‘desacoplar’ ou se desvincular dos pacotes snap e migrar para o uso do flatpak.

Desenvolvido pelo ex-co-desenvolvedor do Snap, Alan Pope, o Unsnap permite que os usuários migrem perfeitamente do uso do snap para aplicativos para o flatpak no Ubuntu e nos sistemas baseados no Ubuntu.

O Unsnap é licenciado sob a licença MIT, o que significa que é gratuito e de código aberto.

Unsnap opera como um processo de dois estágios. Inicialmente, o Unsnap gera um conjunto de scripts responsáveis por executar a migração real dos pacotes snap para o flatpak.

Este recurso permite que os usuários visualizem e, se necessário, editem os scripts antes da execução para validá-los ou modificá-los de acordo com suas necessidades.

Depois de gerar os scripts, os usuários podem executá-los em sequência para concluir o processo de migração. O procedimento é bastante direto: clone o repositório Unsnap, navegue até o diretório Unsnap e execute o comando Unsnap.

Para usuários que preferem pular etapas manuais, há uma opção ‘auto’, que gera e executa automaticamente os scripts.

Como migrar de pacotes Snap para Flatpak usando o Unsnap

Como migrar de pacotes Snap para Flatpak usando o Unsnap
Como migrar de pacotes Snap para Flatpak usando o Unsnap

A execução do Unsnap é um processo direto. Tudo o que você precisa fazer é clonar o repositório do GitHub e executar o comando unsnap. Esta ação irá gerar um conjunto de scripts. Em seguida, você executa esses scripts gerados em sequência para obter a inatividade.

Como alternativa, você pode executar o unsnap com a opção auto para gerar e executar os scripts imediatamente.

Aqui está um processo passo a passo para substituir pacotes Snap por Flatpaks usando o Unsnap:

Primeiro, clone o repositório:
git clone https://github.com/popey/unsnap

Altere o diretório para o repositório clonado:
cd unsnap

Execute o comando unsnap:
sudo ./unsnap

Ou execute o unsnap com a opção automática:
sudo ./unsnap auto

Isso vai demorar um pouco dependendo do número de Snaps instalados em seu sistema. Então, por favor, seja paciente!

Após a migração flatpak bem-sucedida, você verá uma saída como abaixo:
[...]
INFO: flatpaks installed
INFO: These flatpaks are now installed:
Freedesktop Platform org.freedesktop.Platform 22.08.12.1 22.08 system
Mesa org.freedesktop.Platform.GL.default 23.1.1 22.08 system
Mesa (Extra) org.freedesktop.Platform.GL.default 23.1.1 22.08-extra system
openh264 org.freedesktop.Platform.openh264 2.1.0 2.2.0 system
Firefox org.mozilla.firefox 114.0.2 stable system
INFO: Removing snaps
firefox removed
INFO: Snaps removed
WARNING: These snaps are still installed:
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical** base
core20 20230613 1950 latest/stable canonical** base
core22 20230612 766 latest/stable canonical** base
gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** -
snap-store 41.3-71-g709398e 959 latest/stable/… canonical** -
snapd 2.59.5 19457 latest/stable canonical** snapd
snapd-desktop-integration 0.9 83 latest/stable/… canonical** -

A saída acima mostra que o aplicativo Firefox Snap foi desinstalado e posteriormente substituído por sua versão Flatpak.

Aqui está a lista de Snaps instalados antes de executar o Unsnap no meu sistema Ubuntu 22.04 LTS:
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical** base
core20 20230613 1950 latest/stable canonical** base
core22 20230612 766 latest/stable canonical** base
firefox 103.0-1 1589 latest/stable/… mozilla** -
gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** -
snap-store 41.3-71-g709398e 959 latest/stable/… canonical** -
snapd 2.59.5 19457 latest/stable canonical** snapd
snapd-desktop-integration 0.9 83 latest/stable/… canonical** -

E aqui está a saída do comando snap list depois que os Snaps são migrados para Flatpaks.
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical** base
core20 20230613 1950 latest/stable canonical** base
core22 20230612 766 latest/stable canonical** base
gnome-3-38-2004 0+git.6f39565 140 latest/stable/… canonical** -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical** -
snap-store 41.3-71-g709398e 959 latest/stable/… canonical** -
snapd 2.59.5 19457 latest/stable canonical** snapd
snapd-desktop-integration 0.9 83 latest/stable/… canonical** -

Viu? A versão Snap do Firefox foi removida.

Quais scripts o Unsnap gera?
Como já foi dito, o Unsnap gera uma série de scripts para facilitar o processo de migração. Cada script executa uma função específica.

Aqui está uma breve visão geral dos scripts gerados pelo Unsnap e suas funções:

  • 00-backup: este script executa o snap savecomando para cada snap instalado que está sendo migrado. Isso garante que você tenha um backup de todos os seus dados antes de prosseguir com a migração.
  • 01-install-flatpak: Se ainda não estiver instalado, este script instala o gerenciador de pacotes flatpak em seu sistema.
  • 02-enable-flathub: este script adiciona o local do flathub remoto no flatpak, se ainda não estiver ativado.
  • 03-install-flatpaks: este script instala flatpaks equivalentes para cada pacote de snap identificado.
  • 04-remove-snaps: Após a instalação bem-sucedida de flatpaks, este script remove os snaps correspondentes.
  • 99-remove-snapd: Este script remove snapda si mesmo, o que, por sua vez, remove todos os pacotes snap do seu sistema.

Mapeamento de pacotes

Um dos principais recursos do Unsnap é a capacidade de ‘Mapeamento de pacotes’. Unsnap vem com um arquivo chamado ‘applist.csv’ que contém um mapeamento de nomes de pacotes snap para nomes flatpak.

Esse mapeamento um-para-um, embora não totalmente completo, abrange um subconjunto substancial de aplicativos disponíveis na loja instantânea e no flathub.

Modo de verificação

Para facilitar a verificação dos nomes snap e flatpak no arquivo ‘applist.csv’, o Unsnap possui um ‘Modo de verificação’. Este modo permite que os usuários verifiquem a precisão do mapeamento entre pacotes snap e flatpaks, garantindo um processo de migração tranquilo.

Observe que no modo “Verificar”, o programa Unsnap não gera scripts, altera dados ou instala Flatpaks. Em vez disso, ele cria um arquivo unsnap.log para referência e rastreamento.

Dados de aplicativos

Atualmente Unsnap executa um snap save para cada snap que está sendo migrado. Essa operação aproveita o mecanismo interno do snapd para criar backups dos dados do aplicativo.

É essencial garantir espaço em disco e tempo suficientes para esse processo, considerando que alguns aplicativos podem ter dados substanciais para backup.

Você pode encontrar mais detalhes sobre o snap save na snap snapshots documentation.

Se preferir ignorar o backup, simplesmente evite executar os scripts de backup antes de iniciar a migração real.

Por padrão, os backups criados com snap save são armazenados como arquivos zip no diretório /var/lib/snapd/snapshots.

No momento, a tarefa de restaurar os dados, se necessário, fica a cargo do usuário.

Logging

Unsnap fornece saída para o console e para um arquivo de log. O arquivo de log, denominado unsnap.log, está localizado no subdiretório ./log-YYYY-MM-DD.HH.MM.SS do diretório atual em que o Unsnap está sendo executado.

Snaps excluídos

O arquivo exclude_snaps.txt contém uma lista de snaps que não possuem equivalentes diretos no Flathub. Esta lista inclui snaps como bare, core18 e core20. Como tal, não é benéfico solicitar aos usuários que migrem desses snaps específicos para outro Flatpak.

Vale a pena notar que, embora existam pacotes conceitualmente semelhantes disponíveis no Flathub, eles são incluídos automaticamente durante a instalação de aplicativos relevantes e não requerem manuseio pelo Unsnap.

A função de exclude_snaps.txt não é catalogar pacotes que ainda não foram disponibilizados como Flatpak, mas sim identificar pacotes que provavelmente nunca serão convertidos em Flatpak.

A seguir está a lista de Snaps excluídos no meu sistema Ubuntu 22.04 LTS:
bare
canonical-livepatch
core
core18
core20
core22
gnome-3-28-1804
gnome-3-34-1804
gnome-3-38-2004
godot-runtime
gtk-common-themes
gtk2-common-themes
kde-frameworks-5
qt513
qt551
snapd
wine-platform-3-stable
wine-platform-5-stable
wine-platform-6-stable
wine-platform-runtime

Status do projeto
A partir de agora, o Unsnap está em seu estágio pré-alfa. Isso significa que ele foi testado e tem mostrado resultados promissores no computador do desenvolvedor.

No entanto, a menos que você esteja planejando contribuir com o projeto, provavelmente ainda não está pronto para você. É um trabalho em andamento, e contribuições para melhorar sua funcionalidade e versatilidade são muito bem-vindas!

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.