O que exatamente um instalador faz e por que eu preciso de um?

34

provavelmente esta é a pergunta noob do dia:

Então, eu escrevi este jogo.

Agora existe o arquivo .exe que faz o trabalho, uma pasta com meus belos e belos ativos e um monte de arquivos .dll e outras coisas que provavelmente não devo tocar. Para rodar o jogo, copio todo o lote para o computador desejado, clique duas vezes no arquivo .exe e começo a fotografar. Yay!

Mas qual é exatamente a diferença entre isso e usar um instalador? O que mais um instalador faz além de copiar arquivos e parecer mais profissional que um arquivo .zip? Geralmente, há muitas correções / configurações envolvidas ao tentar executar um jogo em um computador diferente? Eu testei meu jogo em todos os computadores com Windows e consegui colocar meus dedos gananciosos e funciona muito bem.

HumanCatfood
fonte
11
Bem, no XNA, por exemplo, você precisa do tempo de execução do XNA. Ou com o SlimDX, você precisa do SlimDX.dll dentro do diretório do jogo ou no GAC.
Kikaimaru
Hum, eu entendo isso. Mas esses arquivos .dll que eu preciso (no meu caso, sdl.dll e seus minions) já estão no mesmo diretório que o arquivo .exe e são copiados à medida que copio o restante. O que um instalador faria de diferente?
HumanCatfood
2
@ Jan O usuário final não precisa se preocupar em colocar arquivos e o que não. É algo que é feito por eles.
Sidar
11
Algo para se pensar - qual o tamanho do seu jogo? Ou seja, é um pequeno arquivo exe de estilo independente, uma ou duas DLLs e algumas imagens, ou é algo maciço que precisa de todos os tipos de tempos de execução para instalação. Se for algo relativamente pequeno, um arquivo exe em um zip pode ser bom o suficiente e pode ajudar a superar a relutância do usuário em instalar jogos aleatórios que podem ser excluídos após cinco minutos de reprodução.
Piku 11/09/12
11
Falando sobre instaladores ... algo muitas vezes esquecido é um bom des- / desinstalador. Perdi a conta de quantas vezes precisei remover os arquivos que sobraram e / ou chaves do Registro. O que é especialmente irritante quando os restos mencionados causam problemas ao reinstalar o jogo.
Exilyth

Respostas:

34

O instalador normalmente está lá para facilitar as coisas para o usuário final. Faz alguma combinação do seguinte:

  • Descompactar
  • Criação de diretórios
  • Instalação dos tempos de execução necessários (redistribuíveis como: .Net, Visual C ++, Direct x)
  • Registro no sistema operacional (para desinstalação limpa posterior)
  • Exiba capturas de tela lindas e bonitas para preparar o jogador para o seu jogo enquanto ele funciona.
  • Oferecendo ao usuário a chance de registrar seu jogo
  • Download de atualizações para os ativos ou patches para o jogo
  • Adicione ícones ao menu Iniciar ou à área de trabalho
  • Defina as permissões corretas para vários diretórios de jogos (pasta temporária, salvar diretório etc.)
  • Basta instalá-lo , permitir que o usuário clique sem pensar em Avançar e comece a jogar!
MichaelHouse
fonte
Ah, certo, eu não tinha pensado nisso, talvez seja necessário instalar tempos de execução. Obrigado!
HumanCatfood
2
Além disso, não esqueça de configurar os direitos de acesso a arquivos! Não é garantido que o seu jogo tenha acesso de gravação à sua pasta (para jogos salvos e outros), a menos que um instalador o configure.
Nevermind
10
+1 A maioria dos usuários finais nem se sente à vontade para descompactar um arquivo, portanto, o instalador deve propor um caminho de instalação padrão e "apenas fazer" para eles. Muitos usuários finais não sabem o que é um sistema de arquivos ou como localizar arquivos fora dos caminhos padrão do Documents que são apresentados a eles. E, francamente, por que diabos eles precisam saber? Pense no instalador como uma loja de aplicativos pobre, deve ser apenas um clique para começar a jogar, não mais.
Oskar Duveborn
Bem, isso realmente depende do seu público-alvo.
API-Beast
3
Eu também acrescentaria consistência à lista de razões. Ao fornecer um instalador, você garante que o usuário obtenha uma configuração consistente com outros usuários; caso contrário, você acabará com coisas malucas, como alguém descompactando o jogo na área de trabalho e executando-o a partir daí (sim, eu já vi isso acontecer). Usando um consistente e em boas condições de instalação remove um monte de coisas que podem dar errado, e facilita o trabalho de resolução de problemas quando as coisas fazem errado movimento.
Maximus Minimus
3

Um instalador abstrai o processo de implantação de partes complexas da infraestrutura de software , que geralmente está contida em um arquivo, por meio de uma interface de usuário conveniente e auto-suficiente .

Essa interface do usuário pode ser gráfica ou com base no texto que é produzido em uma linha de comando, como o shell unix (por exemplo, bash). No caso de instaladores gráficos, na maioria das vezes é usado o chamado installation-bootstrapper, no último caso, scripts de instalação que podem ser bash-scripts, scripts em lote da Microsoft ou qualquer outra linguagem de script executada em uma linha de comando.

No caso mais simples, um aplicativo é simplesmente um arquivo executável, com o sistema operacional sabendo o que fazer com o arquivo para executá-lo. O arquivo do aplicativo pode residir em uma pasta com subpastas e outros arquivos auxiliares, compactados em um arquivo morto . Nesse caso, nenhum instalador pode ser necessário.

Para software complexo , plataformas de software inteiras e forte integração com a infraestrutura subjacente do sistema operacional podem ser desejáveis, por exemplo, para impor os direitos autorais de um produto de software.

Muitos instaladores no Windows fornecem um sinalizador /eou /extract. por exemplo, setup.exe /epara permitir a extração do conteúdo do arquivo, sem que o instalador execute seu script de instalação. Recentemente, eu precisava fazer exatamente isso .

Rumo à portabilidade

Os instaladores quase se tornaram uma norma para o fornecimento de software profissional, não importa quão simples sejam os ativos de software subjacentes. Com um número crescente de usuários experientes em computadores e o desejo de migrar os aplicativos de um desktop para o próximo, o software portátil , geralmente entregue em um arquivo simples, está se tornando cada vez mais popular.

( Não sei quanto tempo gastei no total em instaladores, mas é definitivamente da ordem dos dias. )

As tarefas que o instalador pode executar são:

  • desembalar (geralmente usando arquitectos exóticos de alta compressão)
  • garantindo os requisitos de hardware do sistema
  • garantindo espaço suficiente no disco rígido
  • garantia de requisitos de tempo de execução da plataforma de software (por exemplo, 'redistribuíveis')
  • verificação de atualizações de software mais recentes
  • fazendo o download do software de um repositório remoto
  • criando e / ou atualizando arquivos e pastas de programas
  • criar arquivos de configuração, entradas do registro ou variáveis ​​de ambiente
  • instalar drivers de software, montar ou desmontar dispositivos
  • aumentar a acessibilidade para usuários comuns, explicando as etapas da instalação, criando links, atalhos
  • promover o próprio software através de marcadores, etc ...
  • crie incentivo para o usuário realmente iniciar o software, apresentando os pontos-chave do software durante a instalação, slide a slide
  • criar receita adicional, por meio do pacote de software
  • configurar módulos do kernel e executar componentes automaticamente (por exemplo, daemons, windows-services)
  • aplicação automática de patches do software
  • definindo permissões de pasta, arquivo e usuário
  • criar GUIDs para acoplar o software a uma instância de instalação específica e, por exemplo, impedir a portabilidade

... Se você puder pensar em outros pontos, me avise e eu os incorporarei.

Lorenz Lo Sauer
fonte