Empacotador de AppImage Baseado no Projeto ArchImage que usa o Conteiner Junest para criar AppImage a partir de pacotes do Arch Linux.
O ArchAppImage facilita o empacotamento de programas no no formato AppImage
usando pacotes do Arch Linux. Ele automatiza a criação de pacotes e melhora a
compatibilidade com o sistema, além de contar com vários métodos de criação de
AppImage e inclusão do GLibC.
Além disso, há outras formas disponiveis de fazer AppImage usando pacotes Debian com
inclusão do GLibC, e também empacotar programas autocontidos em  TarBall
para quem optar por AppImages mais leves, porém com uma menor garantia de funcionalidade,
por não incluir o GLibC.
- ---| SUPORTE EXPERIMENTAL |--- -Foi decidido não usar o projeto Conty para a detecção do driver da nvidia. Ao invés
disso, foi usado um método simplificado e preciso para a detecção baseado em POSIX, que
para um AppImage faz mais sentido, já que a ideia é que o AppImage execute no máximo de
sistemas Linux possíveis. Além disso, é mais simples para manutenção.
O objetivo do ArchAppImage é oferecer uma solução simplificada para facilitar a
criação de AppImage em qualquer sistema usando vários métodos, principalmente via
contêiner, reduzindo a complexidade do processo e garantindo maior compatibilidade
entre vários sistemas Linux.
- 
O formato AppImagepermite rodar aplicativos de forma portátil sem necessidade de instalação. No entanto, a criação de AppImage pode ser trabalhosa. O método convencional de empacotamento, pode exigir muitos testes em várias distrosLinuxpara garantir o máximo de compatibilidade possível. Portanto, é muito difícil garantir que o AppImage vai funcionar na maioria das distros.
- 
O método tradicional de criação de AppImage, sugere que você use um sistema mais antigo para criar seus AppImages por conta do GLibC, o que faria com que fosse necessário usar ou dedicar um ambienteoldstableseparado do seu host ou uma VM dedicada para a criação de Appimage.
- 
Para cobrir o problema de compatibilidade com o GLibC, o mais recomendado é a adição do próprio recurso ao AppImage, pois assim é possível usar old-linuxpara abrir os programas.
- 
O projeto ArchImageé uma excelente ferramenta de criação de AppImage. Mas, segundo meus testes, o desempenho e o modo como ele funcionava, não era satisfatório e as vezes precisava esperar muito tempo ao repetir a criação do AppImage. Por isso, eu decidi que eu queria uma solução extremamente rápida para criar AppImages sem precisar esperar o AppImage empacotar de imediato para saber se o programa ia funcionar perfeitamente após a criação do AppImage.
- 
A ideia de empacotar por Contêinerfunciona bem, mas nem todos os programas precisam ser empacotados dessa forma, então é necessário um modo de empacotamento que criasse o AppImage, sem precisar de um contêiner para isso.
- 
Soluções como bwrap, podem falhar em sistemas com restrições denamespacese não funcionarão. Uma solução é oproot, que é um pouco mais lento para iniciar programas via conteiner, mas que é totalmente funcional.
- 
Não é possível a execução do Junestusando superusuário. É preciso uma conta de usuário comum para poder executar o AppImage. Distros modulares como oPuppycostumam usar conta root por padrão, o que faz do AppImage baseado no Junest incompatível com o sistema sem uma conta de usuário comum.
- 
Alguns programas podem precisar acessar o sistema hostpara poder realizar alguma função no sistema. Eles podem acabar assumindo o contêiner como se fosse o host.
- 
Trabalhar com AppImage é uma forma de entender como o Sistema Linuxfunciona.
- 
Se o seu Sistema for muito desatualizado, você vai se deparar com um erro parecido com esse: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/lib/libstdc++.so.6) 
- 
Não é possível garantir a adição de todas as dependências, uma vez que bibliotecas de baixo nível não costumam ser recomendadas para adição no AppImage. 
- 
Ainda há programas que não foram pensados para serem portáteis e podem exigir acesso a caminhos absolutos em seus códigos. 
- 
É difícil criar Appimages de programas desenvolvidos em Python.
- 
O Projeto conta com uma interface de linha de comando para a configuração mais básica. Os ajustes mais refinados devem ser feitos normalmente no script de construção conforme a necessidade. 
- 
Várias opções de Scripts de Construção: - ✅ APP-ArchAppImage- usando contêiner junest.
- ✅ APP-DebAppImage- cria AppImage usando contêiner debootstrap.
- ✅ APP-Tarball2AppImage- cria AppImage com pacotes em tarball.
 
- ✅ 
- 
São vários tipos de AppRundisponíveis:- ✅ AppRun_bwrap_proot- contêiner bwrap com proot como fallbak.
- ✅ AppRun_default- modo padrão, sem contêiner.
- ✅ AppRun_junest- contêiner junest.
- ✅ AppRun_proot- contêiner proot.
- ✅ AppRun_tarball- para AppImage em tarball.
- ✅ AppRun_debian- modo padrão, sem contêiner, para AppImage usando Debian.
 
- ✅ 
- 
Não há a necessidade de separar os projetos de AppImageem vários diretórios. Pode ser usado o mesmo contêiner para empacotar vários AppImages diferentes, economizando espaço em disco.
- 
Se for preciso, pode ser criado um conteiner só para uma aplicação específica da mesma forma que é feito no projeto do ArchImagee escolher se vai ser preciso uma dessas opções para a construção do AppImage:- ✅ Mutilib- para programas que precisam de multilib.
- ✅ ChaoticAUR- para programas do repositório do ChaoticAUR.
- ✅ ArchLinuxCN- para programas do repositório do ArchLinuxCN.
- ✅ AUR- para programas que serão compilados do repositório AUR.
 
- ✅ 
- 
Possui resolução automática de dependências, podendo ser ajustado usando diferentes níveis de busca por dependências. 
- 
Em programas binários, pode ser habilitado uma busca por libs, que pode ajudar a executar o programa usando menos níveis de busca por dependências, o que pode reduzir o tamanho do AppImage.
- 
Você pode ativar a autointegração na área de trabalho e a autointegração de inicialização durante a primeira execução do AppImage. 
- 
Para o modo conteiner, foi implementado suporte ao driver NVidia. Ao ativar o suporte, os drivers serão verificados toda vez que o AppImage for iniciado e atualizado automaticamente conforme a necessidade.
- 
Possui uma forma alternativa para configurar a detecção correta do idioma de forma definitiva em caso de programas que não detectam o idioma de forma alguma. 
- 
O método padrão conta com um método automático para resolver o cache do gdk-pixbuf2 para ajudar na compatibilidade de programas que usam GTK.
Não há a necessidade de instalação, basta clonar o repositório e, se quiser, colocar em
algum local no sistema e linkar no /bin ou em algum local para ser adicionado na
variável PATH.
$ git clone https://github.com/LinuxDicasPro/ArchAppImage.git
$ cd ArchAppImage
$ sudo ln -s ArchAppImageGen /usr/bin/ArchAppImageGen- 
A primeira coisa que você vai fazer, é abrir o utilitário via terminal: $ ArchAppImageGen Isso vai abrir uma ferramenta de configuração do script de construção do AppImage, que você pode configurar o local padrão do projeto pressionando CouEnterpara iniciar a configuração. Após a configuração, o script de construção será salvo no diretório padrão~/ArchAppImageou no local que você configurou.
- 
Depois você vai até o script gerado para a construção do AppImage no diretório do projeto que foi configurado, faça os ajustes e execute o script para criar o AppImage: $ cd ~/ArchAppImage $ kate package-ArchAppImage # Faça os ajustes com o editor de sua preferência. $ ./package-ArchAppImage Se tudo der certo e o script estiver configurado corretamente, o AppImage será criado. 
O RECOMENDADO é configurar o script para não criar o AppImage de imediato.
Assim, os testes serão feitos usando o AppRun. Entretanto, mesmo que o AppImage abra
corretamente, é sim necessário verificar seu funcionamento a procura de algum bug ou
alguma inconsistência.
- 
Execute o AppImage no terminal e verifique se não há nenhum erro durante a execução do programa: $ ./Sample-1.2.3-x86_64.AppImage 
- 
Para uma saída mais detalhada, use LD_DEBUG. Portanto, para procurar porlibsfaltantes, use:$ LD_DEBUG=libs ./Sample-1.2.3-x86_64.AppImage 
- 
Para ver os arquivos ausentes, use: $ LD_DEBUG=files ./Sample-1.2.3-x86_64.AppImage Para uma deparação mais aprimorada, consulte: 
     🔹The LD_DEBUG environment variable
Para mais detalhes sobre o uso e as funcionalidades do ArchAppImage, projetos
incorporados e como solucionar problemas, consulte a documentação na wiki do github:
📜 Documentação Oficial do ArchAppImage
- 📌 Empacotamento usando sharun.
- 📌 Reempacotador de AppImage para adição de modificações.
- 📌 Empacotamento usando flatpack.
- 📌 Futuramente, um Software de Desenvolvimento de AppImage em QT.
Contribuições são sempre Bem-Vindas! Se você deseja ajudar a melhorar este projeto,
siga as diretrizes abaixo para garantir um fluxo organizado e eficiente.
- 
Faça um fork do repositório - Clique no botão Forkpara criar uma cópia doArchAppImagena sua conta.
 
- Clique no botão 
- 
Clone o repositório - No seu terminal, execute:
git clone https://github.com/<seu-repositorio>/ArchAppImage.git cd ArchAppImage 
 
- No seu terminal, execute:
- 
Crie um branch para sua modificação - Escolha um nome descritivo para o branch:
git checkout -b my-contrib 
 
- Escolha um nome descritivo para o branch:
- 
Faça as alterações e commit - Após editar os arquivos necessários, adicione suas mudanças:
git add . git commit -m "description my contrib" 
 
- Após editar os arquivos necessários, adicione suas mudanças:
- 
Envie para o repositório remoto - Envie seu branch para o seu fork no GitHub:
git push origin my-contrib 
 
- Envie seu branch para o seu fork no GitHub:
- 
Crie um Pull Request (PR) - Acesse o repositório original no GitHub e clique em New Pull Request.
- Escolha o branch do seu fork e descreva suas alterações de forma clara.
 
- Acesse o repositório original no GitHub e clique em 
- ✅ Explique suas mudanças: Escreva um título e uma descrição detalhada das alterações.
- ✅ Siga o padrão do código: Mantenha a consistência do projeto.
- ✅ Faça commits pequenos e organizados: Isso facilita a revisão.
- ✅ Revise seu código antes de enviar: Evite bugs e erros desnecessários.
Agradecemos sua contribuição! 🚀✨
Este projeto é distribuído sob os termos da GNU General Public License version 3.
Para mais detalhes sobre a licença, consulte o arquivo LICENSE ou acesse
o texto completo da licença no site da Free Software Foundation:
🔗 https://www.gnu.org/licenses/gpl-3.0.html
Este projeto tem como objetivo facilitar a criação de arquivos AppImage de forma prática
e acessível, inteiramente ao benefício da Comunidade e também para uso pessoal.
O autor não se responsabiliza por:
- 
❌ Problemas em relação ao conteúdo, legalidade, qualidade, integridade ou segurança dos AppImages criados com esta ferramenta. O empacotador é quem deve garantir a segurança e a integridade do AppImage. 
- 
❌ Qualquer violação de direitos autorais, licenças de software ou outras leis decorrentes do uso da ferramenta. Softwares proprietários têm licenças restritivas. Geralmente, você não terá o direito de redistribuir, modificar ou empacotar eles livremente, a menos que o dono permita.OBS: Nesse caso, disponibilizar o script de criação para que o próprio usuário crie o AppImage para uso pessoal pode ser uma opção. 
- 
❌ Danos causados a sistemas operacionais, arquivos ou dispositivos devido ao uso de AppImages gerados por essa ferramenta, principalmente AppImage contendo código malicioso, vulnerabilidades ou qualquer outro tipo de ameaça à segurança de sistemas. 
- 
❌ Qualquer outro uso que viole as leis locais, nacionais ou internacionais decorrentes do uso da ferramenta. 
O usuário é inteiramente responsável pelas ações que realizar utilizando esta ferramenta, incluindo o que empacota, distribui e executa. Ao utilizar este projeto, você declara estar ciente de sua responsabilidade e concorda em isentar o autor de qualquer responsabilidade civil, criminal ou legal decorrente do mau uso dessa ferramenta.
- Esta ferramenta é fornecida no estado em que se encontra, sem garantias explícitas ou implícitas de qualquer tipo, incluindo garantias de funcionamento, segurança ou adequação a qualquer propósito específico, embora submetido a testes rigorosos.
- Esta ferramenta não é destinada à criação de AppImages de software proprietário sem a devida autorização do proprietário ou entidade.
- Este aviso de isenção de responsabilidade não altera nem restringe as liberdades garantidas pela licença GPLv3.
- 📧 Email: contatolinuxdicaspro@gmail.com
- 💬 Telegram: LinuxDicasPro
- ▶️ YouTube: LinuxDicasPro
- 👥 Reddit: r/LinuxDicasPro




