Onde instalar pequenos programas sem instaladores no Windows?

35

Na plataforma Windows, a maioria dos aplicativos grandes vem com seu próprio instalador, que configura pastas em C:\Program Files, possivelmente em outros lugares, e talvez adicione algumas chaves de registro, etc.

Mas ainda existem algumas ferramentas que consistem em apenas uma .exeou talvez também uma READMEe uma .dllou duas.

Como devo instalar essas ferramentas? Diretamente em C:\Program Files? Tudo em uma subpasta abaixo C:\Program Files? Em algum lugar embaixo C:\Users\Me? Em algum lugar totalmente diferente?

Ou talvez abordagens diferentes para as ferramentas com apenas um .exepara aquelas que também possuem outros arquivos, ou talvez apenas aquelas com .dlls precisem ser tratadas de maneira diferente ...

Existe alguma maneira padrão aceita de fazer isso? Uma "melhor prática"? Se a resposta depender da versão do Windows, estou usando o Windows 7.

Em particular, o que pode parecer às pessoas como a resposta óbvia parece ter um problema:

Eu tentei criar manualmente novas subpastas em C:\Program Files. Na verdade, eu pensei que tinha feito isso antes, mas o Windows abre uma caixa de diálogo Acesso negado à pasta de destino . Isso me fez pensar duas vezes, em vez de apenas clicar cegamente em Continuar .

Acesso à pasta de destino negado

Partindo do pressuposto de que mentes maiores do que as minhas enfrentaram isso muitas vezes ao longo dos anos, gostaria de perguntar à comunidade se algum tipo de "melhor prática" foi aceito.

hippietrail
fonte
3
De que ponto de vista você está fazendo essa pergunta? Especificamente, esse é um aplicativo que você está escrevendo ou está tentando instalar o (s) aplicativo (s) de outra pessoa?
Harry Johnston
2
@HarryJohnston: É para instalar aplicativos de outras pessoas. Baixei vários programas criados para exibir ou editar arquivos muito grandes no outro dia e alguns não tinham instaladores. Mas o mesmo se aplica à maioria das ferramentas de linha de comando do Windows, das quais tenho várias.
Hippietrail
@UltraDEVV: Quero saber se outras pessoas consideraram esse problema e decidiram uma "melhor prática". Quero saber quais soluções existem antes de decidir instalar C:\Program Filesou em outro lugar e forneço informações sobre uma barreira potencial para C:\Program Filesser uma solução óbvia.
Hippietrail
Então leia o meu! superuser.com/a/815831/354352
UltraDEVV
@UltraDEVV: Eu já li o seu e já votei nele. É legal ver essa pergunta adormecida voltar à vida depois de um descanso de três anos e meio!
hippietrail 24/09/14

Respostas:

25

Usar C:\Tools

ou C:\Users\<user>\Tools
 

Estou usando muitos programas pequenos sem instalador e recomendo o seguinte:

  • Salve todos eles em C:\Tools
  • Se um programa consiste em um único arquivo, coloque-o diretamente em C:\Tools
  • Se um programa consiste em vários arquivos, coloque-o em C:\Tools\ProgramName
  • As ferramentas SysInternals têm uma categoria especial C:\Tools\_SysInternalsporque existem muitas

Estou simplesmente mudando C:\Toolsde máquina para máquina durante a migração, funciona como um encanto.

Amostra prática (lista reduzida):

C: \ Ferramentas \ autoexec-elevadas.bat
C: \ Ferramentas \ cleanup.bat
C: \ Tools \ BabelMap.exe
C: \ Ferramentas \ netmon.exe
C: \ Ferramentas \ notifu.exe
C: \ Ferramentas \ putty.exe
C: \ Tools \ UDPixel.exe
C: \ Ferramentas \ battery.vbs

C: \ Ferramentas \ 3dclip-1.5.1 \
C: \ Ferramentas \ alternatestreamview \
C: \ Ferramentas \ blender-2.71-windows64 \
C: \ Ferramentas \ Bloco de notas ++ \
C: \ Ferramentas \ QueryExpress \
C: \ Ferramentas \ winscp555 \
C: \ Ferramentas \ Xinorbis \

C: \ Ferramentas \ _Sysinternals \ accesschk \
C: \ Ferramentas \ _Sysinternals \ Autoruns \
C: \ Ferramentas \ _Sysinternals \ depende22_x64 \
C: \ Ferramentas \ _Sysinternals \ depende22_x86 \
C: \ Ferramentas \ _Sysinternals \ LogonSessions \

Espero que isso dê uma idéia.

EDIT: Informações estendidas

Suponho que, em instalar na sua pergunta, como devo instalar essas ferramentas? você quer dizer configuração manual, algo como copiar os arquivos.

Regra geral: use pastas criadas manualmente para arquivos mantidos manualmente. Permita que as pastas do sistema sejam usadas por processos (de instalação) que você não controla diretamente. Você obterá imediatamente o benefício de reconhecer qual conteúdo é 'seu' (e pode copiá-lo livremente) e qual aplicativo é gerenciado pelo instalador.

Portanto, ao instalar manualmente (copiando), fique longe de

  • C:\Program Files - os programas encontrados aqui não podem ser simplesmente migrados, precisam ser reinstalados (dá uma ótima dica para a migração)
  • C:\Program Files (x86) - como acima, mas em sistemas de 64 bits, os programas de 32 bits são exibidos aqui (pode dar uma dica para determinar se determinado aplicativo é de 32 ou 64 bits)
  • C:\ProgramData- os armazenamentos de aplicativos encontrados aqui mostram que esses programas mantêm alguns de seus dados à sua maneira. Mas você perguntou sobre colocar seus programas em Data? Não é uma boa ideia.
  • C:\Users\Steven\AppData- novamente, colocar programas em Data não é uma boa ideia. Se você perguntou sobre dados, várias coisas interessantes podem ser escritas sobre esse caminho. Mas para programas simplesmente 'não'. :)

Caminho possível

  • C:\Users\Steven- pode ser sua raiz alternativa se este for um computador compartilhado e você quiser mantê-lo organizado, portanto, decida não criar nenhum diretório global. Você pode considerar C:\Users\Steven\Toolsseus programas ou mesmo C:\Users\Steven\Desktop\Toolsse deseja usar o acesso confortável às pastas da área de trabalho, disponível através do atalho em muitos lugares do Windows. Mas melhor pode ser o anterior e você ainda pode colocar o atalho para esta pasta na área de trabalho ou sempre que necessário.

Editar: Dica útil adicional:

Se você deseja que alguns de seus pequenos programas sejam reconhecidos no menu Iniciar do Windows 10 (para pesquisa incremental de seus nomes ou início instantâneo elevado usando Ctrl+ Shift+ Enter), adicione seus atalhos lá e inicie-os uma vez . (Então você pode removê-los.)

miroxlav
fonte
Isso parece bom, mas é suportado pela documentação de práticas recomendadas ou algo parecido? Se assim for, realmente melhoraria a resposta.
@DoritoStyle - pode ser necessário verificar a documentação atual das melhores práticas em sua corporação. Se você souber de alguma documentação sobre práticas recomendadas mais gerais, entre em contato e eu verificarei.
18717 miroxlav
1
Eu uso "C: \ Utility", mas caso contrário, use essa mesma abordagem!
Jon Schneider
Será que algo mais, em vez de 'Ferramentas', funcionará tão bem quanto: se eu usasse algo como C:\Otherou C:\Users\<user>\Other, isso seria considerado tão "legítimo" quanto 'Ferramentas'?
Henrik
@ Henrik - como não há um padrão, use o que se encaixa nos seus sentimentos e é claro o suficiente. Por exemplo, tentei C: \ Progs (o nome evoca pequenos programas sem o instalador), mas no final do dia parecia pouco intuitivo, então reverti o nome para Ferramentas.
miroxlav
11

Até onde eu sei, não existe uma abordagem universal.

A colocação de seus aplicativos C:\Program Filesé uma maneira bastante padrão. E você terá a proteção de acesso : usuários regulares (e não elevados) não podem escrever C:\Program Files. Portanto, você não pode excluir acidentalmente, substituir esses arquivos; e eles estão melhor protegidos contra vírus.

É por isso que você recebe o aviso - solicitação de elevação - quando tenta criar uma pasta no C:\Program Files.

Portanto, C:\Program Filesé o local mais seguro para arquivos executáveis.

No entanto, não é adequado para aplicativos (portáteis) que armazenam suas configurações próximas ao, .exeporque eles não poderão salvar as alterações na configuração.


C:\ProgramDataé para armazenar dados de aplicativos compartilhados entre usuários. Por padrão, todos os usuários podem criar arquivos e pastas aqui, mas apenas o usuário que os criou pode modificar os arquivos.

Essa pasta pode ser facilmente usada para aplicativos / ferramentas compartilhados. Ao mesmo tempo, nunca vi um aplicativo nesta pasta.


Se você colocar aplicativos em seu perfil de usuário C:\Users\<username>, outros usuários do sistema não terão acesso a ele. Você tem todas as permissões para o seu perfil, portanto não receberá nenhum aviso de segurança. Essa é a razão pela qual o Chrome é instalado no perfil do usuário: ele pode se atualizar facilmente sem solicitar a elevação.

No modo por usuário, os pacotes, .msiarquivos do Windows Installer são instalados em C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Portanto, é bastante padrão manter aplicativos não compartilhados no perfil do usuário.

Eu tenho uma utilspasta no perfil do meu usuário com aplicativos que são úteis apenas para mim. Essa pasta é adicionada à PATHvariável de ambiente de meus usuários para facilitar o acesso.

Para aplicativos compartilhados, eu uso C:\toolsum diretório semelhante, possivelmente em outra unidade. É adicionado à PATHvariável global .

Alexey Ivanov
fonte
7

Eu concordo com as respostas já dadas em algum ponto. Mas para programas realmente pequenos (utils), costumo colocá-los na pasta bin (no meu caso, E: \ bin). Esses programas são geralmente um arquivo exe único ou meus próprios scripts python. Eu adiciono esta pasta à variável PATH para poder usar esses programas na linha de comando (que eu costumo usar bastante).

del-boy
fonte
Também considerei fazer um genérico C:\Program Files\binpara esses tipos de ferramentas e utilitários. Obrigado pelo feedback.
Hippietrail
5

Até onde eu sei, não existem práticas recomendadas. Cabe a você decidir individualmente como deseja lidar com isso.

Costumo seguir o mesmo padrão de qualquer aplicativo com um instalador. Se for um executável ou uma biblioteca, eu colocaria em \Program Files\se é de 64 bits e Program Files (x86)\se é de 32 bits.

Arquivos de dados que costumo armazenar em minhas Userspastas, pois normalmente são específicas para um usuário.

Também existem aplicativos como Google Chrome e Click-Once Applications que são implantados Users\AppData\, no entanto, eles normalmente não estão disponíveis para vários perfis.

Prefiro o primeiro método porque, se precisar fazer login em outro perfil ou como administrador, ainda posso acessar os aplicativos.

Com relação ao aviso de permissão. É exatamente isso, um aviso . É simplesmente para avisá-lo de usar a pasta pelas razões erradas, no entanto, isso não impede que você a utilize.

BinaryMisfit
fonte
4
Eu recomendo não instalar aplicativos manualmente na pasta Arquivos de Programa, porque os aplicativos sem instaladores costumam ser antigos ou portas de outros sistemas operacionais, para que eles nem sempre lidem bem com o espaço no caminho. YMMV.
Harry Johnston
3
Eu recomendo não instalar nada manualmente %ProgramFiles%também, mas por outro motivo: aplicativos sem instaladores geralmente são portáteis e você não tem permissão de gravação lá
kinokijuf
4

Se você deseja padronizar esses aplicativos, sugiro usar os padrões de pacote Chocolatey . Isso é bom por várias razões diferentes; principalmente porque muitos softwares já foram fornecidos para você e estão prontos para instalar de qualquer lugar com apenas alguns comandos.

Também é fácil criar seus próprios pacotes para aplicativos que você não pode distribuir livremente. Você provavelmente tem o direito de distribuir tudo o que possui em sua própria rede; portanto, para esses aplicativos, você pode configurar um repositório local . Se você estiver gerenciando muitos computadores ou tiver largura de banda limitada da Internet, isso pode ser útil mesmo para os itens gratuitos.

krowe
fonte
2

Se você escolher as opções de instalação padrão do cygwin, ele colocará todos os seus arquivos em c: \ cygwin. Eu adotaria a mesma abordagem. Pessoalmente, tenho uma pasta ac: \ apps. No passado, eu usei c: \ utils e c: \ cli (abreviação de linha de comando). Realmente depende de como você deseja organizar seus arquivos. Eu sugeriria que utilitários únicos os colocassem em uma pasta completa. Para um conjunto de utilitários (por exemplo, cygwin, sysinternals, rktools), posso sugerir uma subpasta própria. Por exemplo, você pode colocar todos os sysinternals dentro de c: \ apps \ sysinternals. Se você instalar o cygwin, será necessário a maioria (se não todos) dos comandos do Unix que você adora.

Lembre-se de alterar suas variáveis ​​ambientais (Iniciar> Painel de Controle> Sistema> Avançado> Variáveis ​​Ambientais) e acrescente qualquer novo caminho de aplicativo à sua variável de sistema PATH. Isso permite executá-los sob demanda no prompt de comando ou usando o Windows + R (comando de execução).

Dom
fonte
5
Acho que os desenvolvedores do Cygwin não se importam com os padrões do Windows e é errado copiar seu mau hábito (criar pastas no diretório raiz). Eu sinto que é como criar \Program Filesdiretório no linux.
Kamil
Não sei por que isso seria ruim. Cygwin é para um ambiente Unix. Por que Cygwin atenderia aos padrões do Windows, quando são para pessoas que desejam usar as ferramentas Unix?
Sun
@ Sol exatamente! O OP pediu as melhores práticas do Windows.
1

C:\Users\Me\toolName(aka% homepath% \ toolName) é o local correto para colocar as ferramentas, assumindo que você deseja que ele seja usado pelo Meusuário, uma vez que algumas dessas ferramentas gravam arquivos (temp) e exigem permissão do usuário para gravar na Program filespasta. Outra vantagem é que você não esquecerá de fazer o backup, porque ele já está no espaço do usuário.

Elazaron
fonte
2
Eu usaria %homepath%' rather than c: \ users \ me`. Isso aponta para o local certo, mesmo que o local padrão tenha sido movido e, portanto, é mais portátil. +1 para a parte de gravação / temperatura.
Hennes 26/09
i estou corrigido e editado no motivo, foi adicionado e não substituído está a responder com as mesmas condições que a questão, graças Hennes :)
Elazaron
0

Não há regras sobre isso, você pode instalá-las onde quiser, mas instalá-las no OSP (partição do sistema operacional) em uma pasta não-usuário é geralmente uma boa ideia, porque você obterá as mesmas proteções de acesso você tem em outras aplicações; isso dificulta a exclusão acidental ou a modificação por terceiros (por exemplo: vírus).

Pessoalmente, geralmente coloco o programa em "C: \ Arquivos de Programas (x86)", porque a maioria desses programas que encontrei são 32 bits, mas se fosse um programa de 64 bits, eu o colocaria em C: \ Arquivos de Programas " Se for um programa relacionado ao sistema (por exemplo: Imagex.exe), eu o colocarei em "C: \ Windows \ system32" para programas de 32 bits e em "C: \ Windows \ system32" para programas de 64 bits para permitir um acesso mais fácil a partir do linha de comando ao executar prompts de comando elevados, porque você inicia em C: \ Windows \ system32 "por padrão; isso significa que você pode digitar "name.exe" em vez de C: \ location \ name.exe "para executar o programa.

Algumas pessoas preferem separar seus programas portáteis (não exigem instalação ou executar alternações não supervisionadas fora de sua pasta) e programas não baseados em instaladores (não portáteis, mas não exigem o uso de um instalador) dos programas regulares, criando um novo diretório no OSP (por exemplo: C: \ Arquivos de programas portáteis (x86) ou C: \ Arquivos de programas despejáveis ​​(x86) .Aconselho o 2º dos 2, pois é maior o nível de precisão, mesmo que não pareça bonita.

Para resumir, não há regras; no entanto, se você instalá-las no OSP (em uma pasta de não usuários), poderá ajudar a proteger o programa contra desinstalações / modificações indesejadas (incluindo modificações maliciosas) e sob algumas circunstâncias organização pode ser benéfica (por exemplo: a pasta system32 mencionada anteriormente para os programas CLI do sistema).

Robin Hood
fonte
1
Eu acho que você entendeu fundamentalmente a questão. A primeira parte da pergunta original é "Boas práticas", não "Quais são as regras".
Steven Penny
@StevenPenny De jeito nenhum, apenas uma frase diferente. O ponto da questão é razões para fazer X ou não fazer X.
Robin Hood
Acabei de criar algo que eu gosto: Etcou Etceterase você prefere um verdadeiro pansy latino. Em um segundo lugar próximo, eu também considerei Misc. Mas Etcselou o acordo para mim. :)
Henrik
0

Eu acho que criar um atalho para C:\Toolsno Send Tomenu do Windows é a melhor opção, pois sempre é acessível de qualquer lugar. Dessa forma, você pode "instalar" rapidamente seus pequenos programas clicando com o botão direito do mouse neles e escolhendo Ferramentas no menu Enviar para em qualquer lugar do Windows.

Eu recebi este tutorial sobre como adicionar ao menu Enviar para no HowToGeek
. Cole o resumo:

Para chegar à pasta SendTo, você precisará abrir uma janela do Explorer e colar o seguinte na barra de endereços.

% APPDATA% \ Microsoft \ Windows \ SendTo

Em seguida, cole o atalho da pasta em que você deseja que seus programas sejam copiados para lá.

Toda vez que você baixar um novo aplicativo portátil, basta extraí-lo e enviá-lo para esse local.
O único problema é a criação de atalhos que acho que vale a pena fazer manualmente.
Saudações.

UltraDEVV
fonte
A pasta Enviar para não é realmente adequada para uso como um local para instalar um programa. Ele tem uma finalidade específica, a saber, permitir o envio de arquivos / documentos para tratamento posterior por um programa (por exemplo, Abrir um arquivo no Bloco de Notas). Além disso, todos os arquivos colocados na pasta Enviar para aparecerão no menu de contexto do Windows, incluindo os .DLLs compatíveis. Claramente, isso não é desejável na maioria dos casos.
Eu digo Restabelecer Monica
1
Não. Parece que você e todos os que recusaram não entenderam o que eu quis dizer. Quero dizer Adicionar um atalho, por exemplo, C:\Tools\ à Send Topasta e acessá-lo de qualquer lugar, para que você não tenha o trabalho de lidar com cada um de seus programas manualmente. Minha resposta provavelmente tornará mais rápido o processo de lidar com outras coisas e ler outras. Isso funciona muito bem para mim.
UltraDEVV
Fiz uma possível edição para incluir esse esclarecimento adicional em sua resposta. As respostas são votadas para cima / para baixo com base na resposta, não necessariamente nos detalhes incluídos nos comentários, por isso espero que isso ajude.
Eu digo Restabelecer Monica
Não, a partir do Windows Vista, a %APPDATA%variável está enraizada na %USERPROFILE%\AppData\Roamingpasta; portanto, no Windows 7, o caminho acima está correto. No Windows XP, você precisará adicionar a pasta Roaming conforme indicado, no entanto.
Eu digo Restabelecer Monica
Se você acredita que sua pergunta não está clara, deve esclarecê-la. Por que você enviou duas respostas?
Ramhound 25/09
0

A variável de ambiente Path do sistema padrão no Windows é algo como (Dependendo da versão do Windows instalada):

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Fora dessas opções,% SystemRoot% (que geralmente é C:/) parece ser a melhor opção para você ler / gravar e será fácil fazer referência posteriormente.


fonte