Quais tipos de instaladores o software comercial deve usar para dar suporte ao Linux?

9

O código fonte não é aberto ou gratuito; portanto, a compilação na instalação não é uma opção. Até agora, vi desenvolvedores que:

  • forneça um arquivo tar.gz e cabe ao usuário descompactar no local adequado.
  • forneça a um .tar.gz um script install.sh para executar um instalador básico, possivelmente solicitando ao usuário opções de instalação.
  • forneça arquivos RPM e / ou deb, permitindo que o usuário continue usando as ferramentas nativas de gerenciamento de pacotes com as quais está familiarizado para instalar / atualizar / desinstalar.

Gostaria de oferecer suporte ao maior número de distribuições Linux, facilitar a vida dos usuários o mais fácil possível e ainda manter a menor infraestrutura possível de compilação / empacotamento / instalador.

Procurando recomendações sobre como empacotar meu software.

Mike Gray
fonte

Respostas:

19

Eu vejo duas maneiras de ver isso.

Uma é direcionar os Linux mais populares, fornecendo pacotes nativos para cada um, entregando pacotes em ordem de popularidade. Alguns anos atrás, isso significava fornecer RPMs para Linux do tipo Red Hat primeiro e, depois, o tempo permitir a reconstrução do RPM de origem para cada Linux menos popular, baseado em RPM. É por isso que, digamos, o Mandriva RPM geralmente é um pouco mais antigo que o Red Hat ou o SuSE RPM. Com o Ubuntu sendo tão popular nos últimos anos, no entanto, você pode querer começar com .deb e adicionar o RPM mais tarde.

O outro é tentar atingir todos os Linux de uma só vez, o que os fornecedores de tarballs binários estão tentando. Eu realmente não gosto dessa opção, como administrador de sistemas e usuário final. Esses tarballs espalham arquivos por todo o sistema em que você os descompacta e, posteriormente, não há opção para detalhes como desinstalação, verificação de pacotes, atualizações inteligentes etc.

Você pode tentar uma abordagem mista: pacotes nativos para os Linux mais populares, além de tarballs binários para Linux esquisitos e administradores de sistemas da velha escola que não gostam de gerenciadores de pacotes por qualquer motivo.

Warren Young
fonte
Essa é quase exatamente a abordagem que eu tenho adotado até agora - iniciada com o RPM para o Redhat / Fedora / CentOS, agora fornecendo arquivos .deb do Ubuntu / Debian, mas ainda não havia decidido se fazer um tar.gz ainda seria útil e necessário. Parece que seria bom permitir que usuários com distribuições menos populares conseguissem pelo menos fazer o software funcionar, em vez de nem sequer terem uma opção. Obrigado.
Mike Gray
2
Criar um tarball binário portátil pode ser muito mais trabalhoso do que você imagina. Apenas uma armadilha em potencial é que a ABI do g ++ mudou várias vezes ao longo dos anos, portanto, talvez você precise enviar versões binárias de quaisquer bibliotecas C ++ usadas em vez de usar as versões da plataforma para obter compatibilidade suficientemente ampla. Esse é um dos motivos pelos quais um único RPM binário não é instalado e executado em qualquer lugar. Parece apenas haver uma aceitação cultural desse fato com o RPM, enquanto os tarballs - provavelmente por serem um padrão antigo - devem funcionar em todos os lugares.
Warren Young
Eu já vi a abordagem da mixagem ser a melhor: você pode alcançar muitas pessoas e o esforço não é muito.
21710 Hugo Hugo
Fazer um tarball simples e binário ainda é bom. Especialmente se esse tarball armazena todos os arquivos do jogo em um diretório independente. Isso permitirá que alguns usuários desempacotem e executem sem instalar; e também facilitará a vida de outras distribuições (como Gentoo, Arch etc.), porque será mais fácil para elas desempacotar / reembalar esse tarball.
Denilson Sá Maia
4

Faça o que fizer, inclua um "script de suporte" que permita coletar o máximo de informações possível no sistema de destino para solucionar erros. Garanto que você terá problemas e depurar as coisas que o cliente diz versus a realidade geralmente é muito diferente.

vwduder
fonte
0

Minha preferência é sempre por um pacote (rpm | deb etc.). Dependendo da natureza do software, pode valer a pena direcionar pacotes para distribuições específicas (rhel / centos etc.), mas você provavelmente nunca poderá lançar pacotes suficientes para todos.

Os scripts de instalação podem estar ok, dependendo do script. Para mim, o mais importante com o software não empacotado é que é fácil instalá-lo no local que eu escolher.

theotherreceive
fonte
0

Os jogos tendem a usar um instalador (anteriormente Loki Installer, hoje MojoSetup), que instala um jogo de forma limpa em um prefixo e lida com coisas como ícones.

directhex
fonte