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.
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
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 osnap save
comando 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 removesnapd
a 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!