Pesquisa de site

Migrar de pacotes Snap para Flatpak usando Unsnap


Fazendo a transição de pacotes Snap para Flatpak: uma introdução ao Unsnap

Você está pensando em mudar do uso de pacotes instantâneos para flatpaks? Se sim, você está no lugar certo! Neste artigo, apresentaremos uma ferramenta fantástica chamada Unsnap, que simplifica o processo de migração de pacotes Snap para Flatpak no Ubuntu e seus derivados.

O que é Desbloquear?

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 como objetivo ajudar os usuários a 'desencaixar' ou se separar dos pacotes instantâneos 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 em sistemas baseados no Ubuntu.

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

Como funciona o desbloqueio?

O Unsnap opera como um processo de duas etapas. 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 aos usuários visualizar e, se necessário, editar os scripts antes da execução para validá-los ou modificá-los de acordo com suas necessidades.

Após gerar os scripts, os usuários podem executá-los em sequência para concluir o processo de migração. O procedimento é bastante simples: clone o repositório Unsnap, navegue até o diretório Unsnap e execute o comando Unsnap. Para usuários que preferem pular etapas manuais, existe uma opção 'auto', que gera e executa os scripts automaticamente.

Como migrar do Snap para o Flatpak usando o Unsnap

Executar o Unsnap é um processo simples. Tudo que você precisa fazer é clonar o repositório 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 desconforto. Alternativamente, você pode executar 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 Unsnap:

Primeiro, clone o repositório:

git clone https://github.com/popey/unsnap

Mude o diretório para o repositório clonado:

cd unsnap

Execute o comando unsnap:

sudo ./unsnap

Ou execute o unnap com a opção auto:

sudo ./unsnap auto

Migrar do Snap para o Flatpak usando o Unsnap

Isso demorará um pouco dependendo do número de Snaps instalados em seu sistema. Por favor, seja paciente!

Após a migração flatpak bem-sucedida, você veria uma saída semelhante a 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**  -

Mude de Snap para Flatpak com Unsnap

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 em 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**  -

Listando pacotes Snap antes de executar o Unsnap

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**  -

Ver? 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:

  1. 00-backup: Este script executa o comando snap save 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.
  2. 01-install-flatpak: Se ainda não estiver instalado, este script instala o gerenciador de pacotes flatpak em seu sistema.
  3. 02-enable-flathub: Este script adiciona a localização remota do flathub no flatpak se ainda não estiver habilitado.
  4. 03-install-flatpaks: Este script instala flatpaks equivalentes para cada pacote snap identificado.
  5. 04-remove-snaps: Após a instalação bem-sucedida dos flatpaks, este script remove os snaps correspondentes.
  6. 99-remove-snapd: Este script remove o próprio snapd, 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'. O Unsnap vem com um arquivo chamado 'applist.csv' que contém um mapeamento de nomes de pacotes snap para nomes flatpak. Este mapeamento um-para-um, embora não totalmente completo, abrange um subconjunto substancial de aplicações disponíveis no snap store 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 aos usuários verificar 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 unsnap.logfile para referência e rastreamento.

dados de aplicativos

Atualmente, o Unsnap executa um snap save para cada snap que está sendo migrado. Esta operação aproveita o mecanismo interno do snapd para criar backups de dados de aplicativos. É essencial garantir espaço e tempo em disco suficientes para esse processo, considerando que alguns aplicativos podem ter dados substanciais para backup.

Você pode encontrar mais detalhes sobre snap save na documentação de snap snapshots.

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.

Exploração madeireira

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 onde Unsnap está sendo executado.

Snaps excluídos

O arquivo excluded_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 que os usuários migrem desses snaps específicos para outro Flatpak.

É importante 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 excluded_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 em 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 apresentou resultados promissores no computador do desenvolvedor. No entanto, a menos que você esteja planejando contribuir para o projeto, provavelmente ele 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!

perguntas frequentes

Aqui está o FAQ sobre o Unsnap.

P: O que é Unsnap?

R: Unsnap é uma ferramenta projetada para ajudar os usuários a migrar do uso de pacotes Snap para Flatpak. Funciona gerando scripts que tratam do processo de migração, que os usuários podem revisar e modificar antes da execução.

P: Quem é o desenvolvedor do Unsnap?

R: O Unsnap foi desenvolvido por Alan Pope, um ex-co-desenvolvedor do Snap. Pope esteve na Canonical, empresa-mãe do Ubuntu, por 10 anos antes de sair em 2021. Após sua saída, ele criou o Unsnap para ajudar os usuários a migrar de pacotes Snap para Flatpak.

P: Como faço para usar o Unsnap?

R: Para usar o Unsnap, você precisa clonar o repositório 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 migrar do Snap para o Flatpak.

P: Quais são os scripts gerados?

R: O Unsnap gera uma série de scripts para facilitar o processo de migração. Eles incluem scripts para fazer backup de seus dados Snap, instalar Flatpak, habilitar Flathub, instalar Flatpaks equivalentes e remover os Snaps originais e o snapd.

P: O que é o modo de 'verificação'?

R: O modo 'verificar' é um recurso do Unsnap que permite verificar os nomes Snap e Flatpak no arquivo applist.csv sem fazer nenhuma alteração em seu sistema ou instalar qualquer Flatpaks. Ele também gera um unsnap.logfile.

P: O que é o arquivo 'applist.csv'?

O arquivo 'applist.csv' no Unsnap contém um mapeamento de nomes de pacotes Snap para nomes Flatpak. Isso facilita o mapeamento um a um entre os dois, auxiliando no processo de migração.

P: O que é o arquivo 'excluded_snaps.txt'?

O arquivo 'excluded_snaps.txt' lista pacotes Snap que não possuem equivalentes diretos no Flathub, como bare, core18 e core20. O Unsnap não solicitará que os usuários migrem esses pacotes específicos.

P: O Unsnap está pronto para uso?

R: A partir de agora, o Unsnap está em seu estágio pré-alfa. Embora tenha mostrado resultados promissores no computador do desenvolvedor, pode ainda não estar pronto para uso geral, a menos que você planeje contribuir para o projeto.

P: O Unsnap é de código aberto?

R: Sim, o Unsnap é de código aberto e licenciado sob a licença MIT. Isso permite que qualquer pessoa use, modifique e distribua sob a mesma licença.

Conclusão

Unsnap é uma excelente ferramenta para usuários que desejam migrar de pacotes snap para flatpak. Ainda está em fase pré-alfa, o que significa que está nos estágios iniciais de desenvolvimento e pode não estar totalmente pronto para todos os usuários. Use-o com cautela!

Recurso:

  • Desbloquear repositório GitHub

Leitura relacionada:

  • Gerenciadores de pacotes Linux comparados – AppImage vs Snap vs Flatpak

Artigos relacionados