Quais são as vantagens de instalar programas em AppData como o Google Chrome?
-
09-06-2019 - |
Pergunta
Acabei de notar que o Chromium foi instalado no AppData no Vista e no XP.Se o Google fizer isso e outros aplicativos fizerem isso, será porque existe alguma forma de proteção?Deveríamos escrever instaladores que façam a mesma coisa que o Google?
Solução
O Windows ainda carece de uma convenção para instalação por usuário.
- Quando um instalador pergunta se deseja instalar para o usuário atual ou para todos os usuários, na verdade ele se refere apenas ao posicionamento do atalho (Menu Iniciar;Área de Trabalho).Os arquivos reais do aplicativo ainda ficam em todo o sistema
%PROGRAMFILES%
. - O próprio ClickOnce da Microsoft contorna isso criando um ambiente completamente fora do padrão
%USERPROFILE%\Local Settings\Apps
(%USERPROFILE%\AppData\Roaming
no diretório Vista / Server 2008), com arquivos de programa e dados de configuração.
(Não sei por que a Microsoft não conseguiu adicionar um diretório de Arquivos de Programas por usuário no Vista.Por exemplo, no OS X, você pode criar um ~/Applications
, e o Finder fornecerá um ícone apropriado.Aplicativos como CrossOver e Adobe AIR usam isso automaticamente, padronizando para aplicativos por usuário.Portanto, não há problemas de permissão.)
O que você provavelmente deve fazer:se o usuário não for administrador, instale no diretório do usuário;se o fizerem, dê-lhes ambas as opções.
Outras dicas
Uma vantagem que ninguém mencionou são as atualizações automáticas silenciosas.O Chrome possui um processo de atualização que funciona o tempo todo e atualiza imediatamente a instalação do Chrome.
Acho que o caso de uso deles não é padrão.Eles precisam de uma maneira de corrigir problemas de vulnerabilidade (já que é um navegador) o mais rápido possível.Esperar que os administradores aprovem cada atualização em toda a empresa simplesmente não é suficiente.
Pelo que sei, a única razão pela qual o Chrome é instalado na pasta Application Data é para que usuários não administradores possam instalá-lo.
O instalador do Chrome atualmente não permite que o usuário escolha onde o aplicativo será instalado.Não faça isso – em vez disso, dê ao usuário a escolha entre uma instalação por usuário (em algum lugar como App Data) e uma instalação em todo o computador (Arquivos de Programas).
O Windows 7 e o Windows Installer 5.0 fornecem recursos reais de instalação por usuário agora.
http://msdn.microsoft.com/en-us/library/dd408068%28VS.85%29.aspx
Você pode falsificá-lo no Vista e no XP usando ~/AppData/Local ou equivalente, como o Chrome faz.A própria Microsoft usa isso para os instaladores ClickOnce.
Portanto, pelo menos no Windows 7 e além, a solução é simples.
Francamente, ainda não vi o primeiro instalador que realmente permita instalações por usuário e por máquina.Muitos instaladores oferecem esta opção em sua GUI, mas a configuração afeta apenas onde os atalhos etc.go - os binários sempre vão para %ProgramFiles%.
Na verdade, é muito difícil criar pacotes do Windows Installer que permitam os dois tipos de instalação, para dizer o mínimo.Com o advento do UAC, eu diria que é impossível:As instalações por usuário não devem exigir elevação; as instalações por máquina precisam.Mas se um pacote MSI requer elevação é controlado por um bit no fluxo de informações resumidas - não há como fazer com que a entrada do usuário tenha impacto sobre isso.
Se por usuário ou por máquina é a melhor escolha, depende muito do aplicativo.Para pacotes pequenos, entretanto, tendo a preferir instalações por usuário.Além de serem um pouco mais fáceis de usar por não exigirem prompt do UAC ou runas, eles também sinalizam ao usuário que a configuração não causará muitos danos ao computador (supondo que ele não seja administrador).
O instalador do Chrome realmente deveria permitir a instalação global (com elevação), bem como por usuário.Não quero manter uma instalação para cada usuário;Quero poder gerenciar atualizações centralmente e assim por diante.O Chrome não permite isso.
Dito isto, a opção de instalação por usuário é bastante boa, pois significa que não há problemas de permissão.
Só para vocês saberem, o Google criou um instalador MSI para instalação e gerenciamento global de sistemas.Está localizado aqui:
Não vejo nada em% PROGRAMFILES% no Win7.Parece que o Chrome deve ser instalado para cada usuário na máquina.
Talvez a verdadeira razão para fazer isso seja falsificar algumas vezes o número de instalações do Chrome!Tornando-o assim o primeiro navegador do mundo!