{"id":26123048,"url":"https://github.com/linuxdicaspro/archappimage","last_synced_at":"2025-07-01T08:05:15.016Z","repository":{"id":277272504,"uuid":"931022268","full_name":"LinuxDicasPro/ArchAppImage","owner":"LinuxDicasPro","description":"Empacotador de AppImage usando Conteiner Junest","archived":false,"fork":false,"pushed_at":"2025-03-05T15:42:10.000Z","size":948,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-05T16:27:08.455Z","etag":null,"topics":["appimage","appimage-builder","appimagetool","archappimage","archimage","bwrap","glibc","junest","proot"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinuxDicasPro.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-11T15:43:17.000Z","updated_at":"2025-03-05T15:42:13.000Z","dependencies_parsed_at":"2025-02-13T04:20:55.724Z","dependency_job_id":"a8c479aa-e21b-42c2-bc1a-dc700791a54f","html_url":"https://github.com/LinuxDicasPro/ArchAppImage","commit_stats":null,"previous_names":["linuxdicaspro/archappimage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDicasPro%2FArchAppImage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDicasPro%2FArchAppImage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDicasPro%2FArchAppImage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDicasPro%2FArchAppImage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinuxDicasPro","download_url":"https://codeload.github.com/LinuxDicasPro/ArchAppImage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242873750,"owners_count":20199294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appimage","appimage-builder","appimagetool","archappimage","archimage","bwrap","glibc","junest","proot"],"created_at":"2025-03-10T15:19:20.085Z","updated_at":"2025-07-01T08:05:14.983Z","avatar_url":"https://github.com/LinuxDicasPro.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.png\" width=\"256\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eArchAppImage\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n  Empacotador de AppImage Baseado no Projeto ArchImage que usa o\n  Conteiner Junest para criar AppImage a partir de pacotes do Arch Linux.\n\n\u003c/h3\u003e\n\n## 📜 Descrição\n\nO **`ArchAppImage`** facilita o empacotamento de programas no no formato **`AppImage`** \nusando pacotes do Arch Linux. Ele automatiza a criação de pacotes e melhora a\ncompatibilidade com o sistema, além de contar com vários métodos de criação de\nAppImage e inclusão do **`GLibC`**.\n\nAlém disso, há outras formas disponiveis de fazer AppImage usando pacotes **`Debian`** com\ninclusão do **`GLibC`**, e também empacotar programas autocontidos em  **`TarBall`**\npara quem optar por AppImages mais leves, porém com uma menor garantia de funcionalidade,\npor não incluir o **`GLibC`**.  \n ​   \n\n![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/NVIDIA_logo.svg/330px-NVIDIA_logo.svg.png)\n\n### Aceleração de HARDWARE para o Driver NVIDIA\n\n```diff\n- ---| SUPORTE EXPERIMENTAL |--- -\n```\n\n**Foi decidido não usar o projeto `Conty` para a detecção do driver da nvidia. Ao invés \ndisso, foi usado um método simplificado e preciso para a detecção baseado em `POSIX`, que\npara um AppImage faz mais sentido, já que a ideia é que o AppImage execute no máximo de\nsistemas Linux possíveis. Além disso, é mais simples para manutenção.**  \n\n## 🎯 Objetivo\n\nO objetivo do **`ArchAppImage`** é oferecer uma solução simplificada para facilitar a\ncriação de **`AppImage`** em qualquer sistema usando vários métodos, principalmente via\ncontêiner, reduzindo a complexidade do processo e garantindo maior compatibilidade\nentre vários sistemas Linux.\n\n## 💡 Motivação\n\n- O formato **`AppImage`** permite rodar aplicativos de forma portátil sem necessidade de\ninstalação. No entanto, a criação de AppImage pode ser trabalhosa. O método convencional\nde empacotamento, pode exigir muitos testes em várias distros **`Linux`** para garantir o\nmáximo de compatibilidade possível. Portanto, é muito difícil garantir que o AppImage\nvai funcionar na maioria das distros. \n\n- O método tradicional de criação de AppImage, sugere que você use um sistema mais\nantigo para criar seus AppImages por conta do **`GLibC`**, o que faria com que fosse\nnecessário usar ou dedicar um ambiente **`oldstable`** separado do seu host ou uma VM\ndedicada para a criação de Appimage.  \n\n- Para cobrir o problema de compatibilidade com o **`GLibC`**, o mais recomendado é a\nadição do próprio recurso ao AppImage, pois assim é possível usar o **`ld-linux`** para\nabrir os programas.\n\n- O projeto **`ArchImage`** é uma excelente ferramenta de criação de AppImage. Mas,\nsegundo meus testes, o desempenho e o modo como ele funcionava, não era satisfatório e\nas vezes precisava esperar muito tempo ao repetir a criação do AppImage. Por isso,\neu decidi que eu queria uma solução extremamente rápida para criar AppImages sem precisar\nesperar o AppImage empacotar de imediato para saber se o programa ia funcionar\nperfeitamente após a criação do AppImage.\n\n- A ideia de empacotar por **`Contêiner`** funciona bem, mas nem todos os programas\nprecisam ser empacotados dessa forma, então é necessário um modo de empacotamento que\ncriasse o AppImage, sem precisar de um contêiner para isso. \n\n- Soluções como **`bwrap`**, podem falhar em sistemas com restrições de **`namespaces`**\ne não funcionarão. Uma solução é o **`proot`**, que é um pouco mais lento para iniciar\nprogramas via conteiner, mas que é totalmente funcional. \n\n- Não é possível a execução do **`Junest`** usando superusuário. É preciso uma conta de\nusuário comum para poder executar o AppImage. Distros modulares como o **`Puppy`**\ncostumam usar conta root por padrão, o que faz do AppImage baseado no Junest incompatível\ncom o sistema sem uma conta de usuário comum.\n\n- Alguns programas podem precisar acessar o sistema **`host`** para poder realizar\nalguma função no sistema. Eles podem acabar assumindo o contêiner como se fosse o host.\n\n- Trabalhar com AppImage é uma forma de entender como o **`Sistema Linux`** funciona.\n\n## ⛔️ Problemas do Método Tradicional de Criação de AppImage \n\n- Se o seu Sistema for muito desatualizado, você vai se deparar com um erro parecido\n  com esse:\n  ```bash\n  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found\n  (required by /usr/lib/libstdc++.so.6)\n  ```\n\n- Não é possível garantir a adição de todas as dependências, uma vez que bibliotecas de\n  baixo nível não costumam ser recomendadas para adição no AppImage.\n\n- Ainda há programas que não foram pensados para serem portáteis e podem exigir acesso\n  a caminhos absolutos em seus códigos.\n\n- É difícil criar Appimages de programas desenvolvidos em **`Python`**.\n\n## 🚀 Características e Recursos\n\n- O Projeto conta com uma interface de linha de comando para a configuração mais básica.\nOs ajustes mais refinados devem ser feitos normalmente no script de construção conforme\na necessidade.\n\n- Várias opções de Scripts de Construção:\n\n   - ✅ **`APP-ArchAppImage`** - usando contêiner junest.\n   - ✅ **`APP-DebAppImage`** - cria AppImage usando contêiner debootstrap.\n   - ✅ **`APP-Tarball2AppImage`** - cria AppImage com pacotes em tarball.\n\n- São vários tipos de **`AppRun`** disponíveis:\n\n   - ✅ **`AppRun_bwrap_proot`** - contêiner bwrap com proot como fallbak.\n   - ✅ **`AppRun_default`** - modo padrão, sem contêiner.\n   - ✅ **`AppRun_junest`** - contêiner junest.\n   - ✅ **`AppRun_proot`** - contêiner proot.\n   - ✅ **`AppRun_tarball`** - para AppImage em tarball.\n   - ✅ **`AppRun_debian`** - modo padrão, sem contêiner, para AppImage usando Debian.\n\n- Não há a necessidade de separar os projetos de **`AppImage`** em vários diretórios.\nPode ser usado o mesmo contêiner para empacotar vários AppImages diferentes,\neconomizando espaço em disco.\n\n- Se for preciso, pode ser criado um conteiner só para uma aplicação específica da mesma \nforma que é feito no projeto do **`ArchImage`** e escolher se vai ser preciso uma dessas\nopções para a construção do AppImage:\n\n   - ✅ **`Mutilib`** - para programas que precisam de multilib.\n   - ✅ **`ChaoticAUR`** - para programas do repositório do ChaoticAUR.\n   - ✅ **`ArchLinuxCN`** - para programas do repositório do ArchLinuxCN.\n   - ✅ **`AUR`** - para programas que serão compilados do repositório AUR.\n\n- Possui resolução automática de dependências, podendo ser ajustado usando diferentes\nníveis de busca por dependências.\n\n- Em programas binários, pode ser habilitado uma busca por **`libs`**, que pode ajudar a\nexecutar o programa usando menos níveis de busca por dependências, o que pode reduzir\no tamanho do AppImage.\n\n- Você pode ativar a autointegração na área de trabalho e a autointegração de inicialização\ndurante a primeira execução do AppImage.\n\n- Para o modo conteiner, foi implementado suporte ao driver **`NVidia`**. Ao ativar o\nsuporte, os drivers serão verificados toda vez que o AppImage for iniciado e atualizado\nautomaticamente conforme a necessidade. \n\n- Possui uma forma alternativa para configurar a detecção correta do idioma de forma\ndefinitiva em caso de programas que não detectam o idioma de forma alguma.\n\n- O método padrão conta com um método automático para resolver o cache do gdk-pixbuf2 para\najudar na compatibilidade de programas que usam **`GTK`**.\n\n## 🛠️ Instalação\n\nNão há a necessidade de instalação, basta clonar o repositório e, se quiser, colocar em\nalgum local no sistema e linkar no **`/bin`** ou em algum local para ser adicionado na\nvariável **`PATH`**.\n\n```bash\n$ git clone https://github.com/LinuxDicasPro/ArchAppImage.git\n$ cd ArchAppImage\n$ sudo ln -s ArchAppImageGen /usr/bin/ArchAppImageGen\n```\n\n## 🖥️ Utilização Básica\n\n1. A primeira coisa que você vai fazer, é abrir o utilitário via terminal:\n   ```bash\n   $ ArchAppImageGen\n   ```\n   Isso vai abrir uma ferramenta de configuração do script de construção do AppImage, que\n   você pode configurar o local padrão do projeto pressionando **`C`** ou **`Enter`**\n   para iniciar a configuração. Após a configuração, o script de construção será salvo\n   no diretório padrão **`~/ArchAppImage`** ou no local que você configurou.\n\n2. Depois você vai até o script gerado para a construção do AppImage no diretório do\n   projeto que foi configurado, faça os ajustes e execute o script para criar o AppImage:\n   ```bash\n   $ cd ~/ArchAppImage\n   $ kate package-ArchAppImage  # Faça os ajustes com o editor de sua preferência.\n   $ ./package-ArchAppImage\n   ```\n   Se tudo der certo e o script estiver configurado corretamente, o AppImage será criado.\n\n## ⚙️ Teste do AppImage\n\nO **`RECOMENDADO`** é configurar o script para não criar o AppImage de imediato.\nAssim, os testes serão feitos usando o AppRun. Entretanto, mesmo que o AppImage abra\ncorretamente, é sim necessário verificar seu funcionamento a procura de algum bug ou\nalguma inconsistência. \n\n1. Execute o AppImage no terminal e verifique se não há nenhum erro durante a execução\n   do programa:\n   ```bash\n   $ ./Sample-1.2.3-x86_64.AppImage\n   ```\n\n2. Para uma saída mais detalhada, use **`LD_DEBUG`**. Portanto, para procurar por\n   **`libs`** faltantes, use:\n   ```bash\n   $ LD_DEBUG=libs ./Sample-1.2.3-x86_64.AppImage\n   ```\n\n3. Para ver os arquivos ausentes, use:\n   ```bash\n   $ LD_DEBUG=files ./Sample-1.2.3-x86_64.AppImage\n   ```\n\n   Para uma deparação mais aprimorada, consulte:  \n   ​  ​  ​  ​ 🔹[The LD_DEBUG environment variable](https://www.bnikolic.co.uk/blog/linux-ld-debug.html)\n\n## 📖 Documentação Completa\n\nPara mais detalhes sobre o uso e as funcionalidades do **`ArchAppImage`**, projetos\nincorporados e como solucionar problemas, consulte a documentação na wiki do github:\n\n📜 [**Documentação Oficial do ArchAppImage**](https://github.com/LinuxDicasPro/ArchAppImage/wiki)\n\n## 📷 Capturas de Tela\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"preview/1.png\"\u003e  \n  \u003cimg src=\"preview/2.png\"\u003e\n  \u003cimg src=\"preview/3.png\"\u003e\n\u003c/p\u003e\n\n## 📝 Próximas Implementações\n\n- 📌 **Empacotamento usando `sharun`.**\n- 📌 **Reempacotador de AppImage para adição de modificações.**\n- 📌 **Empacotamento usando flatpack.**\n- 📌 **Futuramente, um Software de Desenvolvimento de AppImage em QT.**\n\n## 🤝 Contribuindo\n\nContribuições são sempre **`Bem-Vindas!`** Se você deseja ajudar a melhorar este projeto,\nsiga as diretrizes abaixo para garantir um fluxo organizado e eficiente.\n\n### 📌 Como contribuir\n\n1. **Faça um fork do repositório**  \n   - Clique no botão **`Fork`** para criar uma cópia do **`ArchAppImage`** na sua conta.\n\n2. **Clone o repositório**  \n   - No seu terminal, execute:\n     ```bash\n     git clone https://github.com/\u003cseu-repositorio\u003e/ArchAppImage.git\n     cd ArchAppImage\n     ```\n\n3. **Crie um branch para sua modificação**  \n   - Escolha um nome descritivo para o branch:\n     ```bash\n     git checkout -b my-contrib\n     ```\n\n4. **Faça as alterações e commit**  \n   - Após editar os arquivos necessários, adicione suas mudanças:\n     ```bash\n     git add .\n     git commit -m \"description my contrib\"\n     ```\n\n5. **Envie para o repositório remoto**  \n   - Envie seu branch para o seu fork no GitHub:\n     ```bash\n     git push origin my-contrib\n     ```\n\n6. **Crie um Pull Request (PR)**  \n   - Acesse o repositório original no GitHub e clique em **`New Pull Request`**.\n   - Escolha o branch do seu fork e descreva suas alterações de forma clara.\n\n### 📢 Dicas para um Pull Request bem-sucedido\n\n- ✅ **Explique suas mudanças:** Escreva um título e uma descrição detalhada das alterações.  \n- ✅ **Siga o padrão do código:** Mantenha a consistência do projeto.  \n- ✅ **Faça commits pequenos e organizados:** Isso facilita a revisão.  \n- ✅ **Revise seu código antes de enviar:** Evite bugs e erros desnecessários.  \n\nAgradecemos sua contribuição! 🚀✨\n\n## 📜 Licença\n\nEste projeto é distribuído sob os termos da **`GNU General Public License version 3`**.  \nPara mais detalhes sobre a licença, consulte o arquivo [**LICENSE**](LICENSE) ou acesse\no texto completo da licença no site da **`Free Software Foundation`**:\n\n🔗 *https://www.gnu.org/licenses/gpl-3.0.html*\n\n## ⚠️ Isenção de Responsabilidade\n\nEste projeto tem como objetivo facilitar a criação de arquivos AppImage de forma prática\ne acessível, inteiramente ao benefício da **`Comunidade`** e também para uso pessoal.\nO autor não se responsabiliza por:\n\n- ❌ Problemas em relação ao conteúdo, legalidade, qualidade, integridade ou segurança \ndos AppImages criados com esta ferramenta. O empacotador é quem deve garantir\na segurança e a integridade do AppImage.\n\n- ❌ Qualquer violação de direitos autorais, licenças de software ou outras leis decorrentes\ndo uso da ferramenta. Softwares proprietários têm **`licenças restritivas`**. Geralmente,\nvocê não terá o direito de redistribuir, modificar ou empacotar eles livremente, \na menos que o dono permita.\n\n  **OBS: Nesse caso, disponibilizar o script de criação para que o próprio usuário \n  crie o AppImage para uso pessoal pode ser uma opção.**\n\n- ❌ Danos causados a sistemas operacionais, arquivos ou dispositivos devido ao uso de \nAppImages gerados por essa ferramenta, principalmente AppImage contendo código malicioso,\nvulnerabilidades ou qualquer outro tipo de ameaça à segurança de sistemas.\n\n- ❌ Qualquer outro uso que viole as leis locais, nacionais ou internacionais\ndecorrentes do uso da ferramenta.\n\nO usuário é inteiramente responsável pelas ações que realizar utilizando esta ferramenta,\nincluindo o que empacota, distribui e executa. Ao utilizar este projeto, você declara\nestar ciente de sua responsabilidade e concorda em isentar o autor de qualquer\nresponsabilidade civil, criminal ou legal decorrente do mau uso dessa ferramenta.\n\n### `IMPORTANTE:` \n- **Esta ferramenta é fornecida `no estado em que se encontra`, sem garantias explícitas\nou implícitas de qualquer tipo, incluindo garantias de funcionamento, segurança ou \nadequação a qualquer propósito específico, embora submetido a testes rigorosos.**\n- **Esta ferramenta não é destinada à criação de AppImages de software proprietário\nsem a devida autorização do proprietário ou entidade.**\n- **Este aviso de isenção de responsabilidade não altera nem restringe as liberdades\ngarantidas pela licença GPLv3.**  \n\n## 📩 Contato\n\n- 📧 **Email**: *contatolinuxdicaspro@gmail.com*\n- 💬 **Telegram:** [LinuxDicasPro](https://t.me/LinuxDicasPro)  \n- ▶️ **YouTube:** [LinuxDicasPro](https://www.youtube.com/@LinuxDicasPro)  \n- 👥 **Reddit:** [r/LinuxDicasPro](https://www.reddit.com/r/LinuxDicasPro/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxdicaspro%2Farchappimage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxdicaspro%2Farchappimage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxdicaspro%2Farchappimage/lists"}