A história de fundo da AppImage [entrevista]

14 de fevereiro de 2020

Como um usuário Linux, você pode ter encontrado AppImages. Este é um formato de pacote portátil que permite executar um aplicativo em qualquer distribuição Linux.

Usando AppImage é realmente simples. Você só precisa dar permissão de execução e clicar duas vezes para executá-lo, como os arquivos .exe do Windows. Isso resolve um grande problema no Linux, pois diferentes tipos de distribuições têm diferentes tipos de formatos de pacotes. Você não pode instalar arquivos .deb (do Debian/Ubuntu) no Fedora e vice-versa.

Conversamos com Simon, o desenvolvedor do AppImage, sobre como e por que ele criou este projeto. Leia algumas das interessantes histórias de fundo e percepções que Simon compartilha sobre a AppImage.

Interagindo com Simon Peter, o criador da AppImage

Entrevista AppImage Simon É FOSS: Poucas pessoas sabem sobre a pessoa por trás do AppImage. Que tal compartilhar algumas informações sobre você?

Simon: Olá, sou Simon Peter, moro perto de Frankfurt, na Alemanha. Minha formação é em Economia e Administração de Empresas, mas sempre fui um consertador e hacker em meu tempo livre e trabalho com tecnologia desde que me formei.

O AppImage, porém, é estritamente um hobby no qual gosto de trabalhar nas minhas horas vagas. Eu faço muito do meu trabalho com AppImage enquanto estou em um trem indo daqui para lá. De alguma forma, pareço estar em movimento o tempo todo. Profissionalmente, atuo na gestão de produtos de uma grande empresa de telecomunicações.

É FOSS: Por que você criou o AppImage?

Simon: O primeiro computador em que consegui colocar as mãos foi um Macintosh no final dos anos 80. Para mim, esta é a referência quando se trata de simplicidade e usabilidade. Quando comecei a experimentar o Linux no desktop, sempre desejei que fosse tão elegante e simples de operar e me desse tanta flexibilidade quanto os primeiros Macs.

Quando experimentei o Linux pela primeira vez no final dos anos 90, tive que passar por um processo complicado de formatação e particionamento de discos rígidos, instalação de coisas - demorava muito e era realmente complicado. Alguns anos depois, experimentei um CD-ROM Linux Live. Foi uma virada de jogo completa. Você colocou o CD, inicializou o computador e tudo funcionou, direto da caixa. Sem instalação, sem configuração. O sistema estava sempre no estado de novo de fábrica sempre que você reiniciava a máquina. Exatamente como eu gostei.

Havia apenas uma desvantagem: você não podia instalar aplicativos adicionais em um CD somente leitura. Os pacotes sempre insistiram em escrever em/usr, onde o Live CD não era gravável. Assim, eu me perguntei: por que não posso simplesmente colocar os aplicativos onde eu quiser, como em uma unidade USB ou em um compartilhamento de rede, já que sou usado no Mac? Não seria legal se cada aplicativo fosse apenas um único arquivo que eu pudesse colocar onde quiser? E assim nasceu a ideia do AppImage (naquela época com o nome de “klik”).

Acontece que, com o tempo, os sistemas Live se tornaram mais capazes, mas ainda gosto da simplicidade e da liberdade que vem com a ideia “um aplicativo = um arquivo”. Por exemplo, quero estar no controle de onde as coisas residem em meus discos rígidos. Quero decidir o que atualizar ou não atualizar e quando. Para a maioria das tarefas, preciso de um sistema operacional estável, que raramente muda, com os aplicativos mais recentes. Até hoje, tudo que eu executo são sistemas Live, porque o sistema operacional "simplesmente funciona" fora da caixa, sem qualquer instalação ou configuração do meu lado, e toda vez que reinicializo a máquina, tenho um "novo de fábrica", em bom estado Estado.

É FOSS: Quais desafios você enfrentou no passado e quais desafios você está enfrentando agora?

Simon: As pessoas me disseram que a ideia era maluca, e eu não tinha ideia de como “as coisas são feitas no Linux”. Quase quando eu estava começando a desistir, me deparei com um vídeo de Linus Torvalds de todas as pessoas que percebi que estavam reclamando de muitas das mesmas coisas que sempre achei que eram muito complicadas quando se tratava de distribuição aplicativos para Linux. Enquanto assistia ao discurso dele, também percebi, ei, o AppImage na verdade resolve muitos desses problemas. Algum tempo depois, Linus encontrou o AppImage e aparentemente gostou da ideia. Isso me fez pensar, talvez não seja uma ideia tão estúpida como as pessoas me faziam acreditar o tempo todo até aquele ponto.

Hoje, as pessoas tendem a mencionar AppImage como “um dos novos formatos de pacote” junto com Snap e Flatpak. Acho que é comparar maçãs com laranjas. O AppImage não é apenas "novo" (já existe há mais de uma década), mas também tem objetivos e princípios de design muito diferentes dos outros sistemas. AppImage tem tudo a ver com pacotes de aplicativos de arquivo único que podem ser “gerenciados” por nada mais do que um navegador da web e um gerenciador de arquivos. Destina-se a "meros princípios morais", usuários finais, não administradores de sistema. Não precisa de gerenciador de pacotes, não precisa de direitos de root, não precisa de nada para ser instalado no sistema. Ele dá total liberdade aos desenvolvedores e usuários de aplicativos.

É FOSS: AppImage é um “sistema de empacotamento universal” e aí você compete com Snap (apoiado pelo Ubuntu) e Flatpak (apoiado pelo Fedora). Como você planeja "lutar" contra essas grandes corporações?

Simon: Vê? É o que eu quero dizer. AppImage joga em um campo de jogo totalmente diferente.

AppImage quer ser o que os arquivos exe ou PortableApps são para Windows e quais aplicativos dentro dos arquivos dmg estão no Mac - mas melhor.

Além disso, Snap (apoiado por Canonical) não funciona pronto para uso no Fedora, e Flatpak (apoiado por Red Hat) não funciona pronto para uso no Ubuntu. O AppImages pode ser executado em qualquer um dos sistemas e em muitos outros, sem a necessidade de instalação.

É FOSS: Como você vê a adoção do AppImage? Você está feliz com o crescimento?

Simon: No início de 2020, havia agora cerca de 1.000 AppImages oficiais feitos pelos respectivos autores do aplicativo que estão passando em meus testes de compatibilidade e podem ser executados na versão mais antiga do Ubuntu LTS ainda com suporte, e centenas mais estão sendo trabalhados enquanto falamos. Aplicativos de “nomes domésticos” como Inkscape, Kdenlive, KDevelop, LibreOffice, PrusaSlicer, Scribus, Slic3r, Ultimaker Cura (muitos para nomear todos) estão sendo distribuídos no formato AppImage. Isso me deixa muito feliz e sempre fico animado quando leio sobre uma nova versão sendo lançada no Twitter, e então posso baixar e executar o AppImage instantaneamente, sem ter que esperar que minha distribuição Linux carregue essa nova versão, e sem ter que jogar fora a versão antiga (boa) só porque quero experimentar a nova (avançada).

A adoção de AppImage é especialmente forte para compilações noturnas e contínuas. Isso ocorre porque o conceito “um aplicativo = um arquivo” do AppImage se presta especialmente bem para testar software, onde você mantém várias versões para fins de teste e nunca precisa instalar nada no sistema em execução. A pior coisa que pode acontecer com AppImage é que um aplicativo não inicia. Nesse caso, registre um bug, exclua o arquivo e pronto. A pior coisa que pode acontecer com os pacotes de distribuição: quebra total do sistema ...

É FOSS: um grande problema com o AppImage é que nem todos os desenvolvedores fornecem uma maneira fácil de atualizar as versões do AppImage. Alguma sugestão para lidar com isso?

Simon: AppImage tem este conceito de “atualizações binárias delta”. Pense nisso como um “diferencial para aplicativos”. Uma nova versão de um aplicativo é lançada, você baixa apenas as partes que foram alteradas e as aplica à versão anterior. Como resultado, você obtém a versão antiga e a nova e pode mantê-las em paralelo até determinar que não precisa mais da versão antiga e jogá-la fora.

Em geral, não quero impor nada com AppImage. Os autores do aplicativo têm a liberdade de controlar toda a experiência. Até agora, os autores do aplicativo têm que fazer algum trabalho de configuração para criar AppImages com esse recurso de atualização. Dito isto, estou convencido de que, se tornarmos fácil o suficiente para os desenvolvedores obterem atualizações binárias delta "de graça", muitos as oferecerão. Para esse fim, estou trabalhando em um novo conjunto de ferramentas escritas em Go que configurará atualizações quase automaticamente e espero que isso aumente significativamente a porcentagem de AppImages que vêm com esse recurso.

É FOSS: Nitrux é uma das raras distribuições que depende muito do AppImage. Ou existem outras distribuições desse tipo? O que pode ser feito para tornar o AppImage mais popular?

Simon: As distribuições Linux tradicionalmente pensavam em si mesmas como mais do que apenas o sistema operacional de base em si - elas também queriam controlar a distribuição de aplicativos. Agora, como a Apple e a Microsoft estão tentando obter mais controle sobre a distribuição de aplicativos em suas plataformas de desktop, a tendência está lentamente se revertendo na terra do Linux, onde as pessoas estão lentamente começando a entender que as distribuições poderiam ser muito mais refinadas se focassem no sistema operacional de base e deixou a embalagem dos aplicativos para os autores dos aplicativos.

Para tornar o AppImage mais popular, acho que os usuários e autores de aplicativos devem continuar a espalhar a palavra de que os AppImages fornecidos pelo upstream estão, em muitos casos, funcionando melhor do que os pacotes de distribuição. Com o AppImage, você obtém uma pilha de software onde o autor do aplicativo teve a chance de escolher quais versões das bibliotecas funcionam juntas, testar e ajustar a funcionalidade e o desempenho. Quem fica surpreso com o fato de que o resultado tende a funcionar melhor do que uma combinação “aleatória” de quaisquer versões que estivessem em uma distribuição Linux em um determinado ponto aleatório no tempo quando um lançamento de distribuição foi criado?

Ambientes de desktop podem aumentar muito a usabilidade, não apenas para AppImages, mas também para qualquer outro tipo de aplicativo “side-carregado” que não esteja sendo instalado. Basta ver como um ambiente de área de trabalho lida com um clique duplo em um arquivo executável que está sem o bit executável. Alguns estão fazendo um ótimo trabalho a esse respeito, como Deepin Linux. As coisas tendem a “simplesmente funcionar” como deveriam.

Por fim, estou trabalhando em um novo conjunto de ferramentas escritas em Go que espero simplificar muito e tornar ainda mais agradável a produção e o consumo de AppImages. Meu objetivo aqui é tornar as coisas menos complexas para os usuários, remover a necessidade de configuração, fazer as coisas “simplesmente funcionarem”, como nos primeiros Macintoshes. Há algum desenvolvedor Go interessado em participar do esforço?

É FOSS: posso ver que há um site que lista os aplicativos AppImage disponíveis. Você tem planos de integrá-lo com outros gerenciadores de software no Linux ou criar um gerenciador de software para AppImage?

Simon: appimage.github.io lista AppImages que passou em meus testes de compatibilidade na versão mais antiga do Ubuntu LTS com suporte. Projetos que criam lojas de aplicativos ou gerentes de software podem usar esses dados gratuitamente. Eu mesmo não estou muito interessado nessas coisas, pois sempre faço download do AppImages direto das páginas de download do respectivo projeto. Minha descoberta típica do AppImage é assim:

  1. Leia no Twitter que PrusaSlicer tem esse novo recurso legal
  2. Vá para o projeto PrusaSlicer GitHub e leia as notas de lançamento lá
  3. Enquanto estiver lá, baixe o AppImage e execute-o alguns segundos depois

Então, para mim, pessoalmente, não preciso de centros de aplicativos e lojas de aplicativos, mas se as pessoas gostarem deles, eles podem colocar AppImages lá. Eu nunca senti a necessidade ...

É FOSS: Quais planos você tem para o AppImage no futuro (novos recursos que você planeja adicionar)?

Simon: Simplifique as coisas ainda mais, remova opções de configuração, faça as coisas “simplesmente funcionarem”. Reduza o número de projetos GitHub necessários para obter a experiência principal do AppImage para produzir e consumir AppImages, incluindo aspectos como atualizações binárias delta, sandboxing, etc. Melhore a usabilidade.

É FOSS: o AppImage projetaganha dinheiro? Que tipo de suporte (se houver) você busca dos usuários finais?

Simon: Não, AppImage não ganha dinheiro nenhum.

Vou apenas pedir aos leitores que espalhem a palavra. Diga aos autores do seu aplicativo favorito que você gostaria de ver um AppImage e por quê.

Equipe It’s FOSS parabeniza Simon por seu trabalho árduo. Sinta-se à vontade para transmitir qualquer mensagem e perguntas a ele na seção de comentários.

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Abhishek Prakash e publicado no site itsfoss.com. Tradução sujeita a revisão.

The Background Story of AppImage [Interview]

Propaganda
Blog Comments powered by Disqus.
Propaganda