A versão para Linux de um Software funciona em qualquer distro?

Quando entro em um site oficial de algum software que possui versão para Linux não encontro distros propriamente ditas logo de cara mas sim o arquivo daquele programa disposto de múltiplas formas para ser instalado (pelo menos é o que me parece), o que me sucita a pergunta que não encontrei uma resposta plena até agora:

A versão para linux de um software caso o sistema atenda aos requisitos de arquiterura e etc… funcionará em qualquer distro linux?

Ou cada distro terá obrigaroriamente que ter uma versão do software para ela caso contrário não será possivel instalar o software tendo que intermediar coisas para que tal funcione?

Então, eu não sei te explicar o que rola de “baixo do capô”, mas vou dar um exemplo meu.

Eu usava um cliente de e-mail que era o Criptext que vinha empacotado em Appimage do site oficial, daí ele funcionava de boas no Linux Mint que é base Ubuntu.

Aí fui testar no Arch Linux o mesmo appimage e não funcionou nem por reza, tentei também uma versão do AUR mas também não rolou. Pra piorar o desenvolvedor nem responde mais qualquer chamada no suporte, enfim, parece que o serviço morreu.

1 curtida

Nesse caso, depende de algumas questões:

Arquitetura

Caso o aplicativo seja desenvolvido para ser usado em uma distribuição de 32bits, ele rodará tanto na de 32bits quanto na de 64. Caso seja criado especialmente para 64bits, não funcionará na de 32.

Para mais detalhes: 32 ou 64 bits: Qual usar no meu PC? - Diolinux

Em alguns casos VirtualBox por exemplo, existe essa separação sim, conforme podemos observar abaixo:

image

No caso do XDM Downloader, por outro lado, existe apenas uma versão para linux (um arquivo compactado contendo um arquivo *.run dentro):

Esse arquivo, bem resumidamente, é um arquivo executável que contém o código associado a um programa específico, podendo ser um script pré-moldado com parâmetros de instalação. Outro exemplo, no site da NVidia os drivers são disponibilizados em *.run, com isso é possível rodar os parâmetros de instalação independentemente da distribuição em uso, evitando a criação de dezenas de instaladores.

1 curtida

Na teoria sim, na prática nem tanto

Isso porque o binário (ELF) é compatível, o problema são as bibliotecas, a menos que seja um AppImage o sistema alvo de compilação não pode ser muito mais recente que o seu se não a biblioteca C dá problema (porque vai ser tipo usar apps do Windows 11 no Windows 7), nem muito mais antigo porque bibliotecas tendem a quebrar compatibilidade com versões mais antigas

1 curtida

Você também testou outras aplicações além desse cliente de e-mail? Se sim, funcionaram de boas?

No caso, o não funcionamento seria por causa disso?

E os softwares livres de criação de vetores de edição de imagens e afins?

A instalação também funciona dessa forma independiente da distro?

Uma melhor pergunta seria, como faço pra saber se um programa X, Y etc… que utilizo irá funcionar em tal distro X, Y etc…??

Sim e não.

Sim, se satisfeitas as condições para o programa rodar: hardware para o qual o programa foi compilado e a presença de bibliotecas e outros elementos dos quais o programa depende.

Se tiver opção Flatpak, sim, rodará em qualquer distro

1 curtida

Não entendi muito bem mas pelo que pareceu isso aí acontece mais em softwares que tenham sido criados a pouco tempo estou certo???

Isso pode ocorrer com softwares já consolidados que já existam a anos??

Caso ocorra algum problema tem como resolver?

Uma melhor pergunta seria:

Como faço pra saber se um programa x que utilizo irá funcionar em tal distro x??

Esse tal “Flatpak” funciona sem depender de acesso contante a internet?

Ou ele faz o programa rodar via nuvem?

este tal funciona sim sem internet…

1 curtida

O pacote snap, flatpak, AppImagem, é o empacotador que decide quais dependência vai vim junto no pacote. o empacotador pode se quiser deixar uma dependência faltando dentro do pacote por opção e deixar que o sistema carregue a dependência necessária se ela estiver instalada na raiz.

Isso pode quebrar o software empacotado em algumas distros caso essas dependência não venha junto com o pacote, se fosse eu incluiria todas as dependência no pacote, mas isso o tornaria muito grande.
Diferente do faltpak e snap que reaproveitam os os pacotes que já estão instalado neles próprios os AppImagem não reaproveita pacote nenhum somente os que estão instalado na raiz do sistema aumentando seu tamanho.

Então, esse foi a único app que não rolou Arch Linux, e era o mesmo executável que é um appimage.

Não.

Na época ainda funcionava no Linux Mint (máquina virtual) e não no Arch Linux.

E aí passou um tempo tentei de novo, continuava funcionando no Linux Mint e nada ainda no Arch (tanto o appimage como o pacote do AUR), só que daí abri uma chamada no serviço técnico pra ver se conseguia resolver, mas não me responderam.

Por fim, recentemente tentei mais uma vez, só que agora nem no Linux Mint funciona mais, e vi também na página de comentários do pacote do app no AUR o mantenedor dizer que parecia que o desenvolvimento do app tinha sido encerrado.

Enfim, o site do serviço está no ar, não testei o app no Windows, mas no Android está funcionando, parece que pelo menos o suporte a Linux morreu.

1 curtida

Não, funciona com todos, em linhas gerais a retro compatibilidade do Linux gira em torno de ~4 anos isso desconsiderando o GTK

Não só pode como ocorre

Resumindo? Nada

Você pode olhar a data de release, via de regra se você usa base Debian você vai ter até 2 releases LTS, por exemplo, SE o app foi desenvolvido em 2020, muito provavelmente vai funcionar no 20.04 e no 22.04, se ele vier com algumas bibliotecas que quebram com certa frequência, pode ser que funcione até o 24.04 LTS

Via Flatpak se o App passa longos periodos sem atualizar muito provavelmente em 2 anos ele começa a dar problema também

Depende do formato em que o programa é empacotado e distribuído. Se for um arquivo .deb, será compatível apenas com Debian, Ubuntu e distros derivadas destes. Se for um .rpm, é compatível com Fedora, openSUSE, CentOS, e outras distros que usam o formato de pacote .rpm. Geralmente os desenvolvedores publicam seus softwares nesses dois formatos que são os mais populares e abrangem a maioria das distros.

Programas distribuídos no formato AppImage, funcionam em qualquer distro. Eles não necessitam de instalação, são portáteis (baixa o arquivo e executa clicando duas vezes nele), e contém todas as dependências do programa dentro do próprio arquivo.

Existe, ainda, os formatos Snap e Flatpak que, assim como o AppImage, são universais (compatíveis com qualquer distro). A diferença é que você precisa primeiro habilitar o suporte a esse formato de programa na sua distribuição. Algumas distros já vêm com o suporte a Snap habilitado, outras vêm com o suporte a Flatpak, outras vêm com os dois, e outras com nenhum, mas é possível ativar o suporte a esses programas em praticamente todas as distros.


É possível descompactar um .deb e executa-lo no Fedora, por exemplo? – Sim, é geralmente isso que acontece no Arch Linux, quando um programa é distribuído apenas em .deb, e então um usuário coloca no AUR (Arch User Repository); ele cria um PKGBUILD, isto é, um script que descompacta o programa .deb e o instala no Arch. Mas isso já é um pouco mais avançado. Eu expliquei acima como as coisas funcionam da forma “normal”, para um usuário “normal”, sem ter que ficar quebrando muito a cabeça.

2 curtidas

Então esses aí que são os respectivos formatos dessas distros equivalentes ao que o .exe é no Windows certo??

Para o kernel linux qualquer um roda sim, mas tem que ver se a distro satisfaz as dependências.

1 curtida

Bom, pra ser mais preciso, eu os compararia com o .msi do Windows. No Windows, os arquivos .exe são executáveis genéricos, isto é, um arquivo que você clica e executa um programa, que pode ser um instalador, ou um programa que você executa diretamente…

Já os arquivos .msi tem a única finalidade de instalar um programa no sistema. Eles contém dentro de si todos os arquivos do programa que precisam ser instalados nas suas respectivas pastas no S.O. A mesma coisa com os .deb e .rpm. Você não os executa diretamente, você os instala no sistema.

1 curtida

@kevinlucasilva

No último comentário no AUR, em que tu deixaste o teu comentário, disse-se que a equipa de Criptext parou de desenvolver o aplicativo.

1 curtida