Recentemente, tentei 'instalar' muito menos coisas na minha máquina Windows (eu odeio instaladores - preciso saber onde os programas colocam coisas ...), optando por usar versões portáteis ou independentes de aplicativos.
Coloquei todos eles em um diretório 'Programas' em uma unidade separada da minha partição do Windows; assim, sempre que eu reinstalar, tenho todos os meus aplicativos disponíveis com o mínimo esforço e, no lado positivo, recebo uma boa configuração limpa.
Aplicativos como o Office e o Creative Suite ainda exigem que eu passe por um processo de instalação horrivelmente longo, onde mil bibliotecas e ferramentas aleatórias são lançadas em todo o meu sistema.
Por que os aplicativos do Windows ainda precisam ser instalados? Por que não podemos simplesmente arrastar o Photoshop para uma pasta no OSX e fazê-lo funcionar? Alguém mais se concentra em aplicativos portáteis, ou estou apenas sendo obsessivo com a coisa toda?
Respostas:
Os instaladores são o resultado de anos de evolução e um pouco da história (simplificada) ajuda a entender por que eles fazem o que fazem.
O modelo do Windows 3.1 sugeriu arquivos de configuração no estilo config.ini por aplicativo, com suporte a bibliotecas compartilhadas que entram nas pastas do sistema para evitar duplicação e desperdício de espaço em disco.
O Windows 95 introduziu o registro, permitindo um armazenamento central para a configuração do aplicativo, substituindo muitos arquivos de configuração. Mais importante, a configuração do Windows foi armazenada no mesmo local.
O registro ficou inchado devido a aplicativos que não foram limpos após eles mesmos. O inferno da DLL aconteceu como resultado de várias versões das mesmas bibliotecas compartilhadas se substituindo.
O .NET introduziu o conceito de app.config (arquivos quase ini marcam 2, desta vez com um pouco mais de estrutura, economizando tempo para os desenvolvedores perdendo tempo escrevendo analisadores manuais). O GAC foi apresentado aos assemblies compartilhados de versão na tentativa de impedir o DLL Hell.
No Windows XP e mais no Vista, a Microsoft tentou definir o espaço do usuário como um local para armazenar dados e arquivos de configuração do usuário em um único local padrão para permitir perfis móveis e fácil migração (basta copiar seu perfil) com os aplicativos instalados em Arquivos de Programas .
Então, acho que o motivo é que "os aplicativos no Windows são projetados para viver em um lugar, suas dependências compartilhadas em outro e os dados específicos do usuário em outro", o que praticamente funciona contra o conceito de copiar um único local para xcopying.
.. e isso antes de você ter que configurar contas de usuário, configurar e garantir permissões de segurança, baixar atualizações e instalar serviços do Windows ...
O xcopy é o "caso simples" e certamente não é o melhor para tudo.
fonte
A implantação do XCOPY foi anunciada pela Microsoft como o caminho do futuro alguns anos atrás. Nada ainda :)
Enquanto isso, você pode estar interessado na plataforma PortableApps.com.
fonte
Ótima pergunta, fiz uma pergunta relacionada no Stack Overflow há um tempo atrás.
A resposta geralmente parece ser "porque foi assim que fizemos no passado". Desculpe, mas isso não lava comigo.
Alguns outros disseram que o principal motivo se deve ao registro. Se você estiver falando de um driver de dispositivo ou de algum outro componente COM, etc., sim, isso pode ser necessário, mas não para aplicativos da GUI, como processadores de texto ou planilhas.
É bem possível escrever um aplicativo que verifique na inicialização as configurações de registro necessárias e solicite ao usuário / use os padrões. Ou, como muitos aplicativos protegidos atualmente, jst informa ao usuário que a integração do SO é atualmente limitada porque você está executando no modo portátil.
Os instaladores também costumam ter muito "conhecimento" sobre como o aplicativo funciona. Então, quando o aplicativo for alterado, você também precisará atualizar o instalador. Esta é uma causa clássica de bugs / problemas que eu já vi na minha programação de tempo.
É a única abordagem de tamanho único.
fonte
Resposta simples e direta: é simplesmente uma questão de quem tem controle. Atualmente, a maioria dos softwares é projetada por gigantes corporativos para o ambiente corporativo ou institucional em que os usuários são instruídos sobre o que fazer, em vez de dizer aos computadores o que fazer por eles.
Sua pergunta é extremamente importante porque levanta uma questão fundamental sobre os direitos e liberdades individuais que estão sendo corroídos cada vez mais, não por tiranos como em sociedades antigas, mas pela ganância corporativa e pela necessidade de poucos de controlar os muitos.
De fato, parece que esquecemos que as mesmas pessoas que costumavam criticar a tirania de gigantes como a IBM se tornaram as IBMs dos dias de hoje ... Basta olhar atentamente para as práticas comerciais da Microsoft, Apple e a Adobe, para citar alguns e dizer-me com franqueza que, com suas licenças restritivas, são mais benignas do que as práticas de negócios da IBM, a mesma IBM que, por sua abertura, realmente liderou o caminho para a revolução da computação pessoal ...
Eu tenho usado muitos aplicativos portáteis e independentes ao longo dos anos e, sem exceção, eles provaram ser os mais eficazes, os mais rápidos e os menores em termos de espaço e recursos e, por último, mas não menos importante, além de serem superiores ao seu bloatware contrapartes, mas na maioria das vezes, eles também são gratuitos.
Já é tempo de uma segunda revolução nos computadores pessoais. Aprimorar a portabilidade, reduzindo o inchaço e esclarecendo onde as configurações são armazenadas, em uma pasta distinta em um local físico distinto em um meio físico tangível, é um passo na direção certa.
fonte
Uma combinação do registro e do armazenamento por usuário. O registro é uma peça crítica, especialmente se o seu aplicativo for baseado em COM (que requer registro, o que acontece no registro). O armazenamento por usuário (de configuração etc) também é um componente importante. A única maneira de fazer isso é armazená-lo em alguns diretórios especialmente projetados (consulte Armazenamento Isolado ).
fonte
Principalmente por causa do registro do Windows - mesmo que seus programas estejam em um determinado diretório, as configurações geralmente são armazenadas no Registro.
Também pode ser porque o programa coloca arquivos em outros diretórios do seu computador, exceto o diretório de instalação (system32 por exemplo)
fonte
Uma grande vantagem para os instaladores em relação ao tipo de instalação portátil Xcopy é o auto-reparo.
Um aplicativo que usa o sistema Windows Installer corretamente terá todos os tipos de informações sobre ele salvos no banco de dados do Windows Installer em sua máquina, além de um cache de partes importantes dos arquivos de instalação.
Se o aplicativo for interrompido por algum motivo (outra coisa excluir / substituir um arquivo, o registro for corrompido, problemas no disco, o usuário excluirá o atalho, etc.), se for um "atalho anunciado", o Instalador verificará os arquivos e as chaves sempre que iniciar e substitui se não estiverem presentes, ou você pode acessar Adicionar / remover programas e clicar em Reparar no aplicativo.
fonte
Eu acho que isso tem a ver, em parte, com as grandes quantidades de aplicativos que o Windows precisa. Por exemplo, chaves do Registro, dados do usuário (/ Users // AppData). Talvez o OSX lide com isso melhor / de maneira diferente.
Por outro lado, não é impossível criar aplicativos que você possa extrair de um arquivo - sempre fico feliz quando esse é o caso.
fonte
O .Net Framework é a plataforma para habilitar esse tipo de funcionalidade, e a maioria dos instaladores é usada apenas porque é para isso que os usuários normais estão acostumados. Da mesma forma que os usuários de Mac estão acostumados a copiar arquivos para a pasta Aplicativos.
A maioria dos instaladores simplesmente expande arquivos para a pasta Arquivos de Programa e cria um atalho. É mais um caso do que os usuários sabem, e geralmente é mais simples manter o processo igual, mesmo que o aplicativo seja portátil.
fonte
Alguns programas exigem que o local da instalação esteja no registro, outros podem ter seus locais codificados no programa (esse foi o caso do perl.exe).
Basicamente, o principal motivo são os programadores que tomaram o caminho mais fácil e codificaram algo nos programas, chaves de registro ou caminhos reais codificados.
fonte
Muitos aplicativos Windows devem fazer uso de ambientes ou serviços do sistema, como SQL Server, IIS, WMI, domínios de segurança, Active Directory e muitos outros. Um usuário típico pode não ter idéia de como configurá-los, ou talvez nem tenha acesso a eles.
Aplicativos como o Microsoft Office não são arquivos únicos; eles contêm dezenas de arquivos, executáveis, utilitários, serviços, modelos, plug-ins, drivers e assim por diante. Quando você instala um aplicativo, não pode simplesmente substituir tudo o que o novo aplicativo usa, ele precisa se encaixar no que já está lá. Os instaladores do Windows fazem mais do que apenas copiar arquivos, eles podem consultar o ambiente do sistema, executar scripts e instalar serviços e configurar a máquina como se fossem um administrador.
O dbkk101 pergunta por que os aplicativos do Windows "não podem se dar bem". Eles podem, é para isso que servem os instaladores.
fonte
Concedida com alguns programas, a instalação é boba, mas há muito mais do que apenas "arrastar um arquivo para o diretório de programas".
No mínimo, um instalador decente descompacta o arquivo de instalação, configura os atalhos apropriados e facilita a remoção do programa quando não é mais desejado. Acho que a descompressão e cópia é provavelmente o que leva mais tempo.
Depois, há arquivos compartilhados - isso é especialmente verdade no mundo Linux, embora não tanto no Windows IMO.
Mais importante ainda, alguns programas precisam ser configurados para a máquina e alguns (presumo que pelo menos) tentam otimizar com base na máquina ou pelo menos é nisso que o diálogo do adobe me leva a acreditar.
Além disso, nunca vi um motivo para instalar em uma partição separada. Você tende a perder todos os seus valores de registro e configurações. Além disso, eu realmente prefiro essa perda, pois reduz o inchaço do Windows.
fonte