Unidades USB

Pode-se distribuir flatpaks junto com suas dependências em unidades USB (ou compartilhamentos de rede, etc.), o que é especialmente útil em situações onde o acesso à Internet é limitado ou inexistente.

Para que a distribuição offline funcione, existem alguns pré-requisitos:

  • os repositórios remotos que fornecem o aplicativo ou qualquer uma de suas dependências devem utilizar assinaturas GPG

  • todos os repositórios remotos devem ter um ID de coleção definido no lado do servidor

  • os remotos configurados localmente devem ter um conjunto de ID de coleção (no lado do cliente)

  • os controles remotos relevantes devem ser configurados no computador receptor (aquele que está instalando a partir da unidade)

Os aplicativos podem ser copiados para unidades USB usando o comando flatpak create-usb. Você pode consultar esta postagem do blog para uma introdução.

Por exemplo, se você quiser colocar o Gedit em uma unidade USB:

  1. Primeiro identifique o ID do aplicativo usando flatpak list --app. No caso do Gedit é org.gnome.gedit. Use flatpak info -o org.gnome.gedit para determinar o remoto de origem. Por exemplo, pode ser flathub.

  2. Certifique-se de que o remoto de origem tenha um ID de coleção definido usando flatpak remotes -d e verificando a coluna “ID de coleção”. Caso contrário, configure um com, por exemplo, flatpak remote-modify --collection-id=org.flathub.Stable flathub. Se alguma dependência vier de outros remotos, eles também precisarão de um ID de coleção configurado.

  3. Em seguida, use o comando df para identificar o ponto de montagem da unidade USB. Pode ser algo como /media/user/FLATPAKS.

  4. Agora copie o flatpak e suas dependências para a unidade:

    $ flatpak create-usb /media/user/FLATPAKS org.gnome.gedit
    
  5. Aguarde a conclusão do processo de cópia, nesse ponto você deverá obter um prompt de comando ($). Esse processo pode levar dezenas de minutos, especialmente se a unidade USB e a porta USB não forem USB 3.0+. Em seguida, desmonte a unidade antes de removê-la:

    $ umount /media/user/FLATPAKS
    

O processo de instalação de uma unidade USB (por exemplo, em uma máquina offline) difere entre as versões do Flatpak anteriores a 1.8.0 e posteriores. Com versões anteriores, você pode simplesmente usar o comando flatpak install como faria normalmente online:

$ flatpak install flathub org.gnome.gedit

Para versões posteriores a 1.8.0, se sua distribuição Linux tiver empacotado as unidades systemd relevantes, usando flatpak install sem argumentos extras ainda funciona. Caso contrário, você pode usar a opção --sideload-repo em sua invocação de comando:

$ flatpak install --sideload-repo=/media/user/FLATPAKS/.ostree/repo flathub org.gnome.gedit

O comando flatpak update também aceita uma opção --sideload-repo.

Alternativamente, é possível especificar fontes de download local (sideloaded) usando links simbólicos colocados em diretórios de todo o sistema ou específicos do usuário e tais fontes serão usadas para todas as operações do Flatpak sem a necessidade de uma opção --sideload-repo. Veja a página de manual do flatpak.