Como usar AppImages no Linux
Publicados: 2022-09-27O AppImages permite que os desenvolvedores do Linux envolvam seus aplicativos em um único arquivo que é instalado em qualquer distribuição do 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 se torna depende em grande parte do gerenciador de pacotes de sua distribuição. Os gerenciadores de pacotes são aplicativos de software que permitem baixar outros programas do Linux e instalá-los.
Distribuições Linux derivadas 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 existem distribuições.
Mesmo assim, do ponto de vista de um desenvolvedor, suportar todos os diferentes formatos de pacote significa envolver seu aplicativo em um arquivo DEB para a família Debian, em um RPM para a família RedHat e assim por diante. Isso é um monte de sobrecarga adicional.
Isso também significa que se nem os desenvolvedores nem ninguém criou um pacote de instalação para sua distribuição, você não pode instalar esse software. Pelo menos, não nativamente.
Você pode conseguir encaixar um pacote de uma distribuição diferente em seu computador, mas esse não é um método isento de riscos 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 encapsulamento de aplicativos para cada distribuição. Se você pode agrupar um pacote em um único arquivo para que ele venha empacotado com as bibliotecas apropriadas e quaisquer outras dependências que ele tenha, de modo que ele não faça (praticamente) nenhuma demanda no sistema operacional host, ele deve ser capaz de ser executado em qualquer distribuição.
O projeto AppImage é apenas uma iniciativa desse tipo. AppImage é o nome do projeto e AppImages é o nome dos aplicativos encapsulados.
Como funcionam as AppImages
Os arquivos AppImage não são instalados no sentido tradicional. Os arquivos de 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.
Um aplicativo instalado pelo seu gerenciador de pacotes terá seu executável copiado no diretório “/bin” apropriado, suas páginas man
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.
Existe 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 dentro desse sistema de arquivos, não no sistema de arquivos principal de sua 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 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 comum. Para que tudo isso funcione, o sistema de arquivos do host deve ter algo chamado “sistema de arquivos no espaço do usuário” instalado. Esta é a única dependência que o AppImages coloca no host. O FUSE geralmente é pré-instalado em distribuições Linux modernas.
Usando um arquivo AppImage
A primeira coisa que você precisa fazer é baixar o AppImage para o aplicativo que você deseja. Eles não estarão no repositório da sua distribuição. Normalmente, você os encontra no site do próprio aplicativo.
Faremos o download e usaremos o FreeCAD, um pacote de design 3D assistido por computador de código aberto. Navegue até a página de download do FreeCAD e clique no botão “AppImage de 64 bits”.
Quando tiver sido baixado, localize o arquivo em uma janela de terminal. A menos que você tenha alterado os padrões do seu navegador, provavelmente ele estará no diretório “Downloads”. Precisamos tornar o AppImage executável. Usaremos o comando chmod
para adicionar a permissão -x
(executável).
chmod +x FreeCAD-0.20.0-Linux-x86_64.AppImage
Baixamos nosso arquivo e o tornamos executável. Para executá-lo podemos chamá-lo pelo nome.
./FreeCAD-0.20.0-Linux-x86_64.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.
sudo apt instalar libfuse2
Isso resolveu o problema imediatamente e pudemos iniciar o AppImages sem problemas no Ubuntu Jammy Jellyfish 22.04.
Tudo isso é ótimo. Mas e se você quiser ter 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 regulares.
Há uma contradição óbvia aqui - o ponto principal do AppImages é que eles não se instalam no sentido tradicional, inclusive não se integram ao seu desktop. Mas é possível, no entanto, com AppImageLauncher.
AppImageLauncher
AppImageLauncher monitora um diretório indicado. Ele verifica o diretório, procurando por arquivos AppImage. Para cada um que encontrar, ele extrai o ícone do aplicativo (se houver) e integra o AppImage na área de trabalho, como um aplicativo comum.
Isso é repetido para cada novo AppImage adicionado ao diretório. Quando detecta que um AppImage foi excluído, ele remove a integração. Assim, apenas soltando seus arquivos AppImage baixados no diretório monitorado, eles sã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 “Assets” 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.
Observe que há links para AppImageLauncher Lite e 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”.
No Manjaro, você pode instalar o AppImageLauncher com este comando:
sudo pacman -S appimagelauncher
Você pode iniciar o AppImageLauncher pressionando a tecla “Super”. Na maioria dos teclados, está localizado entre as teclas “Ctrl” e “Alt” do lado esquerdo. Digite “appim” na barra de pesquisa.
O ícone AppImageLauncher aparecerá. Clique nele para iniciar o aplicativo.
Há um pouco de configuração para fazer. Precisamos informar ao AppImageLauncher qual diretório queremos que ele monitore. Clique no ícone “pasta” e navegue até o diretório em que você costuma armazenar suas AppImages. Selecionamos nosso diretório “Downloads”. Você pode escolher um subdiretório, se quiser, talvez “/Downloads/apps”.
Se você quiser que o AppImageLauncher ofereça para mover AppImages que ele encontra em outros diretórios em seu diretório monitorado, certifique-se de que a caixa de seleção “Perguntar se mover arquivos AppImage para o diretório de aplicativos” está marcada. Mas se o AppImageLauncher estiver monitorando apenas um único diretório, como ele encontrará AppImages em qualquer outro lugar?
A resposta para isso está na guia “appimagelauncherd”. Clique na aba “appimagelauncherd” e você verá que é possível fazer com que o AppImage monitore mais de um diretório.
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, pressione a tecla “Super” e digite a primeira parte do nome de um AppImage que está em seu diretório monitorado. No nosso caso, temos apenas um.
Assim que você digitar “grátis”, você deverá ver um ícone para o 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.
Clicar no ícone lançou o aplicativo. Nós nem precisamos usar chmod
para tornar o AppImage executável.
Outro toque legal é que clicar com o botão direito do mouse no ícone permite excluir o AppImage diretamente do menu de contexto.
Há também uma opção para fixar o ícone ao seu iniciador, tornando o uso do 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 do 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á estrutura subjacente que precise ser instalada, portanto, além do espaço necessário para os próprios aplicativos, o espaço de disco rígido do uso do AppImages é zero.
O aplicativo AppImageLauncher opcional adiciona alguns toques de sutileza, mas você pode usar o AppImages sem ele.
Mais e mais aplicativos estão oferecendo AppImages. Se você estiver tentando instalar algo que não parece estar nos repositórios de sua distribuição, confira o site do aplicativo. Eles podem muito bem ter um AppImage.
RELACIONADO: apt vs. apt-get: Qual é a diferença no Linux?