Como usar AppImages no Linux

Laptop em um fundo azul mostrando um prompt de comando do Linux.

AppImages permite que os desenvolvedores Linux agrupem seus aplicativos em um único arquivo que pode ser instalado em qualquer distribuição Linux. Isso simplifica tremendamente as coisas. Veja como usá-los e integrá-los à sua área de trabalho.

Instalando software no Linux

A instalação do software deve ser simples e conveniente. O quão simples e conveniente isso é depende em grande parte do gerenciador de pacotes da sua distribuição . Gerenciadores de pacotes são aplicativos de software que permitem baixar outros programas Linux e instalá-los.

Distribuições derivadas do Linux tendem a usar os gerenciadores de pacotes de sua distribuição pai. Por exemplo, as muitas variantes e derivados do Debian usam 

 apt 

, as distribuições RedHat e Fedora usam 

 dnf 

, e a família de distribuições Arch usa

 pacman 

. Então, felizmente, não existem tantos gerenciadores de pacotes quanto distribuições.

Mesmo assim, do ponto de vista do desenvolvedor, suportar todos os diferentes formatos de pacotes significa agrupar seu aplicativo em um arquivo DEB para a família Debian, em um RPM para a família RedHat e assim por diante. Isso representa muita sobrecarga adicional.

Isso também significa que se nem os desenvolvedores nem ninguém tiver criado um pacote de instalação para sua distribuição, você não poderá instalar esse software. Pelo menos, não nativamente.

Você pode conseguir instalar um pacote de uma distribuição diferente em seu computador, mas esse não é um método isento de riscos e nem é garantido que funcione. Se você sabe o que está fazendo, pode baixar o código-fonte e construir o aplicativo em seu computador, mas isso está longe de ser simples e conveniente.

Projetos como  Snap  e  Flatpak  foram desenvolvidos para superar o problema de empacotamento de aplicativos para cada distribuição. Se você puder agrupar um pacote em um único arquivo para que ele venha empacotado com as bibliotecas apropriadas e quaisquer outras dependências que possua, de modo que não exija (virtualmente) o sistema operacional host, ele deverá ser capaz de rodar em qualquer distribuição.

O projeto AppImage é exatamente uma dessas iniciativas. AppImage é o nome do projeto e AppImages é o nome dos aplicativos empacotados.

Como funcionam as imagens de aplicativos

Os arquivos AppImage não são instalados no sentido tradicional. Os arquivos componentes que compõem o pacote do aplicativo estão todos contidos em um único arquivo. Eles não são descompactados e armazenados em diretórios diferentes no sistema de arquivos.

Recomendado:  Como desbloquear seu telefone celular (para levá-lo a uma nova operadora)

Um aplicativo instalado pelo seu gerenciador de pacotes terá seu executável copiado no diretório “/bin” apropriado, seu

 man 

as páginas serão armazenadas no diretório “/usr/share/man” e assim por diante. Essa etapa de descompactação e cópia não acontece com AppImages.

Há um sistema de arquivos dentro de um AppImage, geralmente um sistema de arquivos squashFS . Os arquivos necessários para executar o aplicativo são armazenados neste sistema de arquivos, não no sistema de arquivos principal da instalação do Linux. Quando o AppImage é executado, ele inicia um de seus programas auxiliares internos que monta o sistema de arquivos squashFS em “/tmp/mount” para que seja acessível a partir do seu sistema de arquivos principal. Em seguida, ele inicia o próprio aplicativo.

É por isso que iniciar aplicativos de Snaps, Flatpaks e AppImages é um pouco mais lento do que executar um aplicativo normal. Para que tudo isso funcione, o sistema de arquivos host deve ter algo chamado ” filesystem in userspace ” instalado. Esta é a única dependência que o AppImages coloca no host. O FUSE geralmente vem pré-instalado em distribuições Linux modernas.

Usando um arquivo AppImage

A primeira coisa que você precisa fazer é baixar o AppImage do aplicativo desejado. Eles não estarão no repositório da sua distribuição. Normalmente, você os encontra no site do próprio aplicativo.

Baixaremos e usaremos o FreeCAD, um pacote de design 3D auxiliado por computador de código aberto. Navegue até a  página de download do FreeCAD  e clique no botão “AppImage de 64 bits”.

A página de download do FreeCAD

Após o download, localize o arquivo em uma janela do terminal. A menos que você tenha alterado os padrões do seu navegador, ele provavelmente estará no diretório “Downloads”. Precisamos tornar o AppImage executável. Usaremos chmodcomando para adicionar o

 -x 

permissão (executável).

chmod +x FreeCAD-0.20.0-Linux-x86_64.AppImage

tornando o AppImage executável usando o comando chmod

Baixamos nosso arquivo e o tornamos executável. Para executá-lo podemos chamá-lo pelo nome.

./FreeCAD-0.20.0-Linux-x86_64.AppImage

Iniciando o arquivo AppImage

Isso é tudo que tivemos que fazer no Fedora e no Manjaro. No Ubuntu 22.04 , tivemos que instalar um arquivo de biblioteca. O FUSE já está instalado no Ubuntu 22.04, mas é uma versão mais recente que a utilizada pela maioria dos AppImages. A instalação do arquivo de biblioteca não afeta a versão instalada do FUSE.

Recomendado:  Como desligar notificações de Flash no iPhone

sudo apt instalar libfuse2

Instalando o arquivo da biblioteca libfuse2

Isso resolveu o problema imediatamente e pudemos lançar o AppImages sem problemas no Ubuntu Jammy Jellyfish 22.04.

O aplicativo freeCAD rodando a partir de um AppImage

Tudo isso é ótimo. Mas e se você quiser pegar seu bolo e comê-lo? Imagine se houvesse uma maneira de usar AppImages que não exigisse que você os iniciasse a partir de uma janela de terminal . Seria muito mais conveniente poder iniciar aplicativos AppImage como aplicativos nativos normais.

Há uma contradição óbvia aqui: o objetivo do AppImages é que eles não se instalam no sentido tradicional, inclusive não se integram à sua área de trabalho. Mesmo assim, é possível com AppImageLauncher.

AppImageLauncher

AppImageLauncher monitora um diretório nomeado. Ele verifica o diretório em busca de arquivos AppImage. Para cada um que encontra, ele extrai o ícone do aplicativo (se houver) e integra o AppImage ao desktop, como um aplicativo normal.

Isso é repetido para cada novo AppImage adicionado ao diretório. Ao detectar que um AppImage foi excluído, ele remove a integração. Portanto, apenas colocando os arquivos AppImage baixados no diretório monitorado, eles serão integrados ao seu ambiente de desktop.

Se você estiver usando Ubuntu ou Fedora, vá para a  página de download do AppImageLauncher  e clique no link “Ativos” na seção “Release Build (Latest)”.

Clique no link “appimagelauncher-XXX.x86_64.rpm” para Fedora ou no arquivo “appimagelauncher_XXX.bionic_arm64.deb” para Ubuntu. O “XXX” representa o número da versão do software.

Os links de download do AppImageLauncher RPM e DEB

Observe que existem links para AppImageLauncher Lite  e para AppImageLauncher. Use os links do AppImageLauncher.

Navegue até o arquivo baixado e clique duas vezes nele para iniciar a instalação. No GNOME , isso iniciará o aplicativo “Software”.

O arquivo AppImageLauncher DEB aberto no programa Ubuntu Software

No Manjaro, você pode instalar o AppImageLauncher com este comando:

sudo pacman -S appimagelauncher

Instalando AppImageLauncher no Manjaro

Você pode iniciar o AppImageLauncher pressionando a tecla “Super”. Na maioria dos teclados, ele está localizado entre as teclas “Ctrl” e “Alt” do lado esquerdo. Digite “appim” na barra de pesquisa.

O ícone AppImageLauncher nos resultados da pesquisa de atividades do GNOME

O ícone AppImageLauncher aparecerá. Clique nele para iniciar o aplicativo.

A tela principal do AppImageLauncher

Há um pouquinho de configuração a ser feita. Precisamos informar ao AppImageLauncher qual diretório queremos monitorar. Clique no ícone “pasta” e navegue até o diretório onde você normalmente armazena suas AppImages. Selecionamos nosso diretório “Downloads”. Você pode escolher um subdiretório, se desejar, talvez “/Downloads/apps”.

O aplicativo AppImageLauncher com /home/dave/Downloads definido como o diretório monitorado

Se você deseja que o AppImageLauncher se ofereça para mover AppImages que encontrar em outros diretórios para o diretório monitorado, certifique-se de que a caixa de seleção “Perguntar se deseja mover arquivos AppImage para o diretório de aplicativos” esteja marcada. Mas se o AppImageLauncher estiver monitorando apenas um único diretório, como ele encontrará o AppImages em qualquer outro lugar?

Recomendado:  Agora você pode comprar o primeiro teclado mecânico OnePlus

A resposta está na guia “appimagelauncherd”. Clique na guia “appimagelauncherd” e você verá que é possível fazer com que o AppImage monitore mais de um diretório.

A guia appimagelauncherd do aplicativo AppImageLauncher

Clique no ícone verde “Mais” para adicionar mais diretórios. Certifique-se de que a caixa de seleção “Auto Start Auto-Integration Daemon” esteja marcada. Clique no botão “OK” quando tiver feito suas seleções.

Aguarde alguns minutos, depois pressione a tecla “Super” e digite a primeira parte do nome de uma AppImage que está em seu diretório monitorado. No nosso caso, temos apenas um.

O ícone do FreeCAD nos resultados da pesquisa de atividades do GNOME

Assim que você digitar “grátis”, você verá um ícone do FreeCAD. Clicar nele inicia o aplicativo. Se o arquivo AppImage não contiver um ícone, um ícone genérico de roda dentada será usado, como foi o caso do FreeCAD.

Para testar ainda mais, baixamos o arquivo AppImage para o aplicativo Subsurface . Esperamos cerca de 30 segundos para ter certeza de que ele havia sido descoberto e integrado, depois pressionamos a tecla “Super”, digitamos “sub” e o ícone do aplicativo apareceu. Desta vez, o ícone genuíno do aplicativo foi encontrado e usado.

O ícone Subsurface nos resultados da pesquisa de atividades do GNOME

Clicar no ícone iniciou o aplicativo. Nem precisamos usar chmodpara tornar o AppImage executável.

O aplicativo Subsurface em execução a partir de um AppImage

Outro toque interessante é que clicar com o botão direito no ícone permite excluir o AppImage diretamente do menu de contexto.

O menu de contexto Subsuperfície

Também existe a opção de fixar o ícone em seu inicializador, tornando o uso de AppImages tão conveniente quanto os aplicativos nativos.

AppImages estão em ascensão

Em nossas máquinas de teste, os aplicativos iniciados a partir de AppImages carregaram um pouco mais rápido que os aplicativos Flatpak e muito mais rápido que os aplicativos Snap. Com o AppImages, não há nenhuma estrutura subjacente que precise ser instalada; portanto, além do espaço necessário para os próprios aplicativos, o espaço ocupado no disco rígido pelo uso do AppImages é zero.

O aplicativo AppImageLauncher opcional adiciona alguns toques de sutileza, mas você pode usar AppImages sem ele.

Cada vez mais aplicativos oferecem AppImages. Se você estiver tentando instalar algo que não parece estar nos repositórios da sua distribuição, verifique o site do aplicativo. Eles podem muito bem ter um AppImage.