O que uma "instalação" padrão realmente faz?

Sou mais ou menos um programador hobby e cresci a programar no mundo do ClickOnce.net.

Quando se instala um programa, o que acontece realmente?!

também: algumas pequenas aplicações/ferramentas acabam de sair do exe. Por que a maioria dos programas precisa de um processo de instalação chique? Quais são as vantagens, desvantagens, prós e contras? A instalação é geralmente necessária ou mais como a prática padrão?

As minhas desculpas pelas perguntas extra. Só espero que ... plain-English more-or-layman's explanation of the key factors.

Author: ROMANIA_engineer, 2009-10-27

6 answers

Você está realmente olhando para um monte de razões legadas todas roladas para o que se tornou prática padrão no mundo do Windows. Primeiro, algum contraste, porque nem sempre é assim. Uma" aplicação " no Mac OS X é simplesmente um diretório com uma certa estrutura dentro dele, nomeado com uma extensão .app. Instalar uma aplicação é tão simples como arrastá-la (apenas o ícone da aplicação) para a sua pasta de aplicações, e desinstalar envolve arrastá-la para o lixo. É isso, nada de fantasia. instalador é (normalmente) necessário.

No Windows, a aplicação é normalmente Construída a partir de componentes independentes que precisam de ser "registados". Isso envolve o programa instalador escrevendo alguns bits e Peças para o registro do Windows, para dizer ao Windows onde encontrar os componentes. Sim, o aplicativo provavelmente deve saber onde encontrá-los (uma vez que estão todos instalados no mesmo lugar), mas anos de legado e diferentes formas de juntar componentes nos levou onde estamos agora.

Tipicamente, um programa de instalação no Windows:

  • copia ficheiros
  • regista componentes
  • define as permissões de segurança (se apropriado)
  • adiciona ícones ao menu inicial e/ou ao ecrã
  • escreve mais coisas no registo para dizer ao Windows para adicionar o programa a"adicionar e Remover Programas"
 29
Author: Greg Hewgill, 2009-10-27 07:34:52
O programa tenta modificar o computador de tal forma que ele funcione e todos os produtos concorrentes falham. Nas janelas, isto significa:
  • modificar chaves arbitrárias no Registo até que se torne lento e cheio de entradas quebradas
  • Substituir o DLLs pela única versão antiga que o seu software pode usar
  • espalhando o maior número de arquivos em tantos lugares quanto possível
  • Criar um script Desinstalar para manter a ilusão de que o usuário pode se livrar do software sem uma reinstalação do so. No caso improvável de o usuário tentar executar este script, você pode educá-lo/ela para nunca mais fazer isso novamente com perguntas como "o arquivo .... pode ser usado por outras aplicações. Quer mesmo apagá-lo? Sim / Não / Talvez / qualquer resposta / Todas as respostas estão corretas "
  • Instalar ganchos em lugares obscuros para que o software corra quando o computador arranca. Isso pode abrandar o processo de arranque, mas o seu software vai começar num instante, por isso é um pequeno preço a pagar ... para ti.
  • fazendo coisas obscuras que levam muito tempo, mas ninguém pode dizer o que você faz (o que "Configuração está preparando a instalação" faz por 15 minutos?)
  • verificar se há espaço em disco suficiente, mas usar inteiros de 32 bits para se certificar de que não pode ser instalado em discos 1TB.
  • Uma tarefa importante é falhar com a instalação e imprimir o erro: "a instalação falhou. Isto pode ser porque há um software antivírus instalado. Por favor, desactive - o e tente Outra vez."Isso vai garantir que os usuários vão começar a desconfiar de seu anti-vírus (especialmente quando a instalação tem sucesso durante a segunda execução, uma vez que os bugs obscuros no instalador não foram acionados) e muitos deles vão se esquecer de ativar o scanner de vírus novamente ou até mesmo desinstalar a maldita coisa.

    Os autores do vírus em todo o mundo também são pessoas! Spam compensa a maior parte do tráfego na Internet, o que deve significar que é importante e quem não gostaria de ser parte do maior comunidade na terra? Além disso, podes ganhar muito dinheiro assim. Tudo o que precisas é de uma consciência fraca e/ou alguma energia criminosa.
  • Uma parte muito importante do seu instalador é aumentar a chave de RegistoHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-7-9-23-64738-1349283462-3754093625-4491\IsYourWindowWideEnough\NotGivenUpYetHuh\GoAway\ImportantSystemInformation\Let See How You Can Handle Spaces\DamnIGottaStopSincePathsCanHaveOnl\ReinstalCtr

    Este contador importante do sistema ajudará a criar a ilusão de instabilidade para o usuário até que sintam uma forte necessidade de reinstalar todo o sistema. Isso ajudará a indústria de TI profissional a vender horas de suporte, vender novos computadores, mais RAM, maior discos rígidos, ou novas versões do Windows (eles devem ser melhores, certo?).

Nota: Se você levar este texto a sério, procure ajuda profissional.

 13
Author: Aaron Digulla, 2009-10-27 08:16:01

As razões para usar um processo de instalação "chique"

  1. para registar o processo de instalação para que possa ser replayed (repair) ou desfeito (desinstalar)
  2. para realizar acções como a simples cópia de ficheiros (criar chaves de Registo, componentes de Registo, executar outras acções arbitrárias

A opção" standard "na maioria das instalações será" todos os bits normalmente desejados, num local padrão, como ficheiros de Programas" instalar sem personalização, possivelmente sem algum nível de expert funcionalidades activadas.

 2
Author: Steve Gilham, 2009-10-27 07:34:45

O Wikipedia diz-nos que um instalador típico cria ou modifica o seguinte:

  • Ficheiros de programas partilhados e não partilhados
  • pastas / pastas
  • registos do Windows (apenas Windows)
  • entradas de ficheiros de configuração
  • variáveis de ambiente
  • ligações ou atalhos

Então se o seu programa precisa de uma ou mais destas modificações, você deve criar um instalador que faça esse trabalho.

 1
Author: Moayad Mardini, 2009-10-27 07:33:27

Depende do programa que está a instalar. Uma "instalação" pode variar de simplesmente copiar o (relativamente pequeno) executável para um diretório, para configurar bibliotecas compartilhadas, fazendo verificações de patchlevel (eu sou projetado para executar em SP2 ou superior - eu tenho SP2 ou superior?) e alterar a configuração dos sistemas, tanto para o utilizador actual como para todos os utilizadores. A maioria deles também registra a instalação com um gerenciador de pacotes para que você possa desinstalar facilmente em um ponto posterior.

 1
Author: ty812, 2009-10-27 11:19:32

Um instaladorabstrai o processo de implantação de peças complexas de infra-estrutura de software , que é normalmentecontida dentro de um arquivo, através de uma interface de utilizador conveniente e auto-suficiente .

Esta IU pode ser gráfica ou baseada em texto que é saída em uma linha de comando como o shell unix (por exemplo, bash). No caso de instaladores gráficos, na maioria das vezes um chamado installation-bootstrapper é usado, no último caso, scripts de instalação que pode ser bash-scripts, Microsoft batch scripts, ou qualquer outra linguagem de scripts que funciona em uma linha de comando.

No caso mais simples uma aplicação é simplesmente um ficheiro executável, com o sistema operacional a saber o que fazer com o ficheiro para o executar. O ficheiro da aplicação poderá residir numa pasta com subpastas e outros ficheiros auxiliares, embalado num pacote . Neste caso, nenhum instalador pode ser necessário.

Para software complexo, software completo as plataformas e a estreita integração com a infra-estrutura do sistema operativo subjacente podem ser desejáveis, por exemplo, para impor os direitos de autor de um produto de software.

Muitos instaladores no Windows fornecem uma bandeira {[[0]} ou /extract. por exemplo setup.exe /e para permitir a extracção do conteúdo do arquivo sem que o instalador execute o seu programa de instalação. Recentemente, precisei de fazer apenas isso.

Mudanças de mentalidade

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

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

Tarefas que o instalador pode lidar são:

  • desempacotar (muitas vezes usando arquivedores exóticos e de alta compressão)
  • garantia dos Requisitos de hardware do sistema
  • garantir um espaço em disco rígido suficiente
  • garantia dos Requisitos de tempo de execução das plataformas de software (por exemplo, "redistribuíveis")
  • à procura de actualizações de software mais recentes
  • a descarregar o software de um repositório remoto
  • criar e / ou actualizar ficheiros e pastas de programas
  • criar ficheiros de configuração, registo itens ou variáveis de ambiente
  • instalar controladores de sofware, dispositivos de montagem ou desmontagem
  • aumentar a acessibilidade para os utilizadores do dia-a-dia, explicando os passos da instalação, criando ligações, atalhos
  • promover o próprio sofware através de favoritos, etc...
  • crie um incentivo para o utilizador iniciar realmente o software, apresentando os pontos-chave do software durante a instalação, slide by slide
  • Criar receitas adicionais, através de software-empacotamento
  • configurar os módulos de kernel e componentes em execução automática (por exemplo, servidores, serviços windows)
  • remendos automáticos do sofware
  • configurar as permissões de pasta, ficheiro e Utilizador
  • criar referências UUIDs para ligar o software a uma instância de instalação e impedir a portabilidade
PS: Se você puder pensar em outros pontos, me avise e eu os incorporarei.
 1
Author: Lorenz Lo Sauer, 2017-03-20 10:04:24