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 /e
ou /extract
. por exemplo, setup.exe /e
para 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.