¿Dónde instalar pequeños programas sin instaladores en Windows?

35

En la plataforma Windows, la mayoría de las aplicaciones grandes vienen con su propio instalador que configura carpetas en C:\Program Files, posiblemente en otros lugares, y quizás agregue algunas claves de registro, etc.

Pero todavía hay bastantes herramientas que consisten en solo una .exeo quizás también una READMEy una .dllo dos.

¿Cómo debo instalar tales herramientas? Directamente en C:\Program Files? Todo en una subcarpeta debajo C:\Program Files? En algún lugar debajo C:\Users\Me? ¿En algún lugar totalmente diferente?

O tal vez diferentes enfoques para las herramientas con solo una .exepara aquellos que también tienen otros archivos, o tal vez solo aquellos con .dlls necesitan ser tratados de manera diferente ...

¿Hay alguna forma estándar aceptada de hacer esto? ¿Una "mejor práctica"? Si la respuesta depende de la versión de Windows, estoy usando Windows 7.

En particular, lo que podría sorprender a las personas como la respuesta obvia parece tener un inconveniente:

Intenté crear manualmente nuevas subcarpetas en C:\Program Files. De hecho, pensé que lo había hecho antes, pero Windows muestra un cuadro de diálogo Acceso a carpeta de destino denegado . Esto me hizo pensar dos veces en lugar de simplemente hacer clic a ciegas en Continuar .

Acceso a la carpeta de destino denegado

Suponiendo que mentes más grandes que la mía se han enfrentado a esto muchas veces a lo largo de los años, me gustaría preguntarle a la comunidad si se ha aceptado algún tipo de "mejor práctica".

hippietrail
fuente
3
¿Desde qué punto de vista haces esta pregunta? Específicamente, ¿es esta una aplicación que está escribiendo o está tratando de instalar la (s) aplicación (es) de otra persona?
Harry Johnston
2
@HarryJohnston: es para instalar aplicaciones de otras personas. Descargué varios programas diseñados para ver o editar archivos muy grandes el otro día y un par no tenía instaladores. Pero lo mismo se aplica para la mayoría de las herramientas de línea de comandos en Windows, de las cuales tengo varias.
hippietrail
@UltraDEVV: Quiero saber si otros consideraron este problema y decidieron una "mejor práctica". Quiero saber qué soluciones existen antes de decidir si instalarlas en C:\Program Filesotro lugar o no, y proporciono información sobre una posible barrera para C:\Program Filesser una solución obvia.
hippietrail
¡Entonces lee el mío! superuser.com/a/815831/354352
UltraDEVV
@UltraDEVV: Ya leí el tuyo y ya voté por él. ¡Es genial ver que esta pregunta durmiente vuelve a la vida después de un descanso de tres años y medio!
hippietrail

Respuestas:

25

Utilizar C:\Tools

o C:\Users\<user>\Tools
 

Estoy usando muchos programas pequeños sin instalador y recomiendo lo siguiente:

  • Guardarlos a todos en C:\Tools
  • Si un programa consta de un solo archivo, colóquelo directamente C:\Tools
  • Si un programa consta de varios archivos, póngalo en C:\Tools\ProgramName
  • Las herramientas de SysInternals tienen una categoría especial C:\Tools\_SysInternalsporque hay muchas de ellas

Simplemente me estoy moviendo C:\Toolsde una máquina a otra cuando migro, funciona de maravilla.

Muestra práctica (lista abreviada):

C: \ Tools \ autoexec-elevated.bat
C: \ Herramientas \ cleanup.bat
C: \ Tools \ BabelMap.exe
C: \ Tools \ netmon.exe
C: \ Tools \ notifu.exe
C: \ Tools \ putty.exe
C: \ Tools \ UDPixel.exe
C: \ Herramientas \ batería.vbs

C: \ Herramientas \ 3dclip-1.5.1 \
C: \ Herramientas \ alternatestreamview \
C: \ Herramientas \ blender-2.71-windows64 \
C: \ Herramientas \ Notepad ++ \
C: \ Herramientas \ QueryExpress \
C: \ Herramientas \ winscp555 \
C: \ Herramientas \ Xinorbis \

C: \ Herramientas \ _Sysinternals \ accesschk \
C: \ Herramientas \ _Sysinternals \ Autoruns \
C: \ Herramientas \ _Sysinternals \ dependen22_x64 \
C: \ Herramientas \ _Sysinternals \ dependen22_x86 \
C: \ Herramientas \ _Sysinternals \ LogonSessions \

Espero que esto te de una idea.

EDITAR: Información extendida

Supongo que bajo instalar en su pregunta ¿Cómo debo instalar tales herramientas? en realidad te refieres a la configuración manual, algo así como copiar los archivos.

Regla general: utilice carpetas creadas manualmente para archivos mantenidos manualmente. Deje que las carpetas del sistema sean utilizadas por procesos (de instalación) que no controla directamente. Inmediatamente obtendrá el beneficio de reconocer qué contenido es 'suyo' (y puede copiarlo libremente) y qué aplicación es administrada por el instalador.

Por lo tanto, al instalar manualmente (copiando), manténgase alejado de

  • C:\Program Files - los programas que se encuentran aquí no se pueden migrar simplemente, se deben reinstalar (da una excelente pista para la migración)
  • C:\Program Files (x86) - como lo anterior, pero en los sistemas de 64 bits, los programas de 32 bits van aquí (pueden dar una pista para determinar si una aplicación en particular es de 32 bits o de 64 bits)
  • C:\ProgramData- los almacenamientos de aplicaciones que se encuentran aquí muestran que estos programas mantienen algunos de sus datos a su manera. ¿Pero preguntaste sobre poner tus programas en Datos? No es Buena idea.
  • C:\Users\Steven\AppData- una vez más, poner programas bajo Datos no es una buena idea. Si preguntó sobre datos, se pueden escribir varias cosas interesantes sobre esta ruta. Pero para los programas simplemente 'no'. :)

Camino posible

  • C:\Users\Steven- puede ser su raíz alternativa si se trata de una computadora compartida y desea mantenerla ordenada, por lo que decide no crear ningún directorio global. Puede considerar C:\Users\Steven\Toolssus programas o incluso C:\Users\Steven\Desktop\Toolssi desea utilizar el cómodo acceso a la carpeta de escritorio disponible mediante acceso directo desde muchos lugares de Windows. Pero mejor puede ser el anterior y aún puede colocar el acceso directo a esta carpeta en el escritorio o cuando sea necesario.

Editar: Sugerencia útil adicional:

Si desea que algunos de sus pequeños programas se reconozcan en el menú Inicio de Windows 10 (para una búsqueda incremental de sus nombres o un inicio elevado instantáneo con Ctrl+ Shift+ Enter), agregue sus accesos directos allí y ejecútelos una vez . (Entonces puedes eliminarlos).

miroxlav
fuente
Esto suena bien, pero ¿está respaldado por la documentación de mejores prácticas o algo así? Si es así, realmente mejoraría la respuesta.
@DoritoStyle: es posible que deba verificar la documentación de las mejores prácticas actuales en su empresa. Si conoce alguna documentación más general sobre mejores prácticas, avíseme y la revisaré.
miroxlav
1
Yo uso "C: \ Utility", ¡pero de lo contrario uso este mismo enfoque!
Jon Schneider
¿Funcionará algo más, en lugar de 'Herramientas', que funcione igual de bien: si tuviera que usar algo como C:\Othero C:\Users\<user>\Other, sería considerado tan "legítimo" como "Herramientas"?
Henrik
@Henrik: como no existe un estándar, usa lo que se ajuste a tus sentimientos y sea lo suficientemente claro. Por ejemplo, probé C: \ Progs (el nombre evoca pequeños programas sin instalador), pero al final del día no me pareció intuitivo, así que volví el nombre a Herramientas.
miroxlav
11

Hasta donde yo sé, no hay un enfoque universal.

Colocar sus aplicaciones en C:\Program Fileses una forma bastante estándar. Y obtendrá la protección de acceso : los usuarios normales (y no elevados) no pueden escribir C:\Program Files. Por lo tanto, no puede eliminar accidentalmente, sobrescribir dichos archivos; y están mejor protegidos de los virus.

Es por eso que recibe la advertencia (solicitud de elevación) cuando intenta crear una carpeta C:\Program Files.

Por lo tanto, C:\Program Fileses el lugar más seguro para los archivos ejecutables.

Sin embargo, no es adecuado para aplicaciones (portátiles) que almacenan su configuración cerca de .exeporque no podrán guardar los cambios de configuración.


C:\ProgramDataes para almacenar datos de aplicaciones compartidos entre usuarios. De manera predeterminada, todos los usuarios pueden crear archivos y carpetas aquí, pero solo el usuario que los creó puede modificar los archivos.

Esta carpeta podría usarse fácilmente para aplicaciones / herramientas compartidas. Al mismo tiempo, nunca vi una aplicación en esta carpeta.


Si coloca aplicaciones en su perfil de usuario C:\Users\<username>, otros usuarios del sistema no tendrán acceso a él. Tiene todos los permisos para su perfil, por lo que no recibirá ninguna advertencia de seguridad. Esa es la razón por la cual Chrome se instala en el perfil del usuario: puede actualizarse fácilmente sin solicitar elevación.

En modo por usuario, los paquetes, .msiarchivos e instaladores de Windows se instalan en C:Users\<username>\AppData\Microsoft\Installer\<ProductId>. Por lo tanto, es bastante estándar mantener aplicaciones no compartidas en el perfil del usuario.

Tengo una utilscarpeta en el perfil de mi usuario con aplicaciones que son útiles solo para mí. Esta carpeta se agrega a PATHla variable de entorno de mis usuarios para facilitar el acceso.

Para aplicaciones compartidas, uso C:\toolsun directorio similar, posiblemente en otra unidad. Se agrega a la PATHvariable global .

Alexey Ivanov
fuente
7

Estoy de acuerdo con las respuestas ya dadas en algún momento. Pero para programas realmente pequeños (utils) tiendo a ponerlos en la carpeta bin (en mi caso E: \ bin). Estos programas suelen ser un solo archivo exe o mis propios scripts de Python. Agrego esta carpeta a la variable PATH para poder usar estos programas desde la línea de comandos (que tiendo a usar bastante).

del-boy
fuente
También consideré hacer un genérico C:\Program Files\binpara este tipo de herramientas y utilidades. Gracias por la respuesta.
hippietrail
5

Hasta donde yo sé, no hay mejores prácticas. Realmente depende de usted individualmente decidir cómo desea manejarlo.

Tiendo a seguir el mismo estándar que cualquier aplicación con un instalador. Si es un ejecutable o una biblioteca, lo colocaría en \Program Files\si es de 64 bits y Program Files (x86)\si es de 32 bits .

Los archivos de datos que suelo almacenar en mis Userscarpetas, ya que normalmente son específicos de un usuario.

También hay aplicaciones como Google Chrome y aplicaciones Click-Once que se implementan Users\AppData\, sin embargo, normalmente no están disponibles para múltiples perfiles.

Prefiero el primer método porque si necesito iniciar sesión en otro perfil o como administrador, todavía puedo acceder a las aplicaciones.

Con respecto a la advertencia de permiso. Es exactamente eso, una advertencia . Es simplemente para advertirle que use la carpeta por razones incorrectas, sin embargo, no le impide usarla.

BinaryMisfit
fuente
44
Recomiendo no instalar manualmente las aplicaciones en la carpeta Archivos de programa, porque las aplicaciones sin instaladores suelen ser antiguas o puertos de otros sistemas operativos, por lo que no siempre se adaptan bien al espacio en el camino. YMMV.
Harry Johnston
3
Recomiendo no instalar nada manualmente %ProgramFiles%también, pero por otra razón: las aplicaciones sin instaladores a menudo son portátiles, y no tienes permiso de escritura allí
kinokijuf
4

Si está buscando estandarizar estas aplicaciones, le sugiero que use los estándares del paquete Chocolatey . Esto es bueno por muchas razones diferentes; principalmente porque gran parte del software ya se ha empaquetado para usted y está listo para instalar desde cualquier lugar con solo unos pocos comandos.

También es fácil crear sus propios paquetes para aplicaciones que no puede distribuir libremente. Probablemente tenga derecho a distribuir cualquier cosa que posea en su propia red; entonces para esas aplicaciones puedes configurar un repositorio local . Si está administrando muchas computadoras o tiene un ancho de banda de Internet limitado, esto puede ser útil incluso para las cosas gratuitas.

krowe
fuente
2

Si toma las opciones de instalación predeterminadas de cygwin, coloca todos sus archivos en c: \ cygwin. Yo tomaría el mismo enfoque. Personalmente tengo una carpeta ac: \ apps. En el pasado, he usado c: \ utils y c: \ cli (abreviatura de línea de comando). Realmente depende de cómo quieras organizar tus archivos. Sugeriría que las utilidades individuales las coloquen en una carpeta general. Para un conjunto de utilidades (por ejemplo, cygwin, sysinternals, rktools), podría sugerir una subcarpeta propia. Por ejemplo, puede poner todos los sysinternals dentro de c: \ apps \ sysinternals. Si instala cygwin, eso requerirá la mayoría (si no todos) de los comandos de Unix que ha llegado a amar.

Recuerde cambiar sus variables ambientales (Inicio> Panel de control> Sistema> Avanzado> Variables ambientales) y agregue cualquier ruta de aplicación nueva a su variable de sistema PATH. Esto le permite ejecutarlos a pedido desde el símbolo del sistema o mediante Windows + R (comando de ejecución).

Dom
fuente
55
Creo que los desarrolladores de Cygwin no se preocupan por los estándares de Windows y está mal copiar su mal hábito (crear carpetas en el directorio raíz). Siento que es como crear un \Program Filesdirectorio en Linux.
Kamil
No sé por qué eso sería algo malo. Cygwin es para un entorno Unix. ¿Por qué Cygwin atiende a los estándares de Windows, cuando son para personas que desean usar las herramientas de Unix?
Dom
@ Sol exactamente! OP solicitó las mejores prácticas de Windows.
1

C:\Users\Me\toolName(también conocido como% homepath% \ toolName) es el lugar correcto para colocar las herramientas suponiendo que lo desea para el Meusuario, ya que algunas de estas herramientas escriben archivos (temp) y requerirán el permiso del usuario para escribir en la Program filescarpeta. Otra ventaja es que no olvidará hacer una copia de seguridad porque ya está en el espacio del usuario.

Elazaron
fuente
2
yo usaría %homepath%' rather than c: \ users \ me`. Esto apunta a la ubicación correcta, incluso si se movió la ubicación predeterminada, y por lo tanto es más portátil. +1 para la parte de escritura / temporal.
Hennes
Estoy corregido y editado en la razón por la que fue agregado y no reemplazado es para responder con los mismos términos que la pregunta, gracias Hennes :)
Elazaron
0

No hay reglas sobre esto, puede instalarlas donde quiera, pero instalarlas en su OSP (Partición del sistema operativo) en una carpeta que no sea de usuario generalmente es una buena idea, ya que obtendrá las mismas protecciones de acceso ¿Tienes en otras aplicaciones? esto hace que sea más difícil eliminarlo accidentalmente o que un tercero lo modifique (p. ej., virus).

Personalmente, generalmente pongo el programa en "C: \ Archivos de programa (x86)", porque la mayoría de los programas que he encontrado son de 32 bits, pero si se tratara de un programa de 64 bits, lo colocaría en C: \ Archivos de programa " Si se trata de un programa relacionado con el sistema (por ejemplo: Imagex.exe), lo colocaré en "C: \ Windows \ system32" para programas de 32 bits y "C: \ Windows \ system32" para programas de 64 bits para permitir un acceso más fácil desde línea de comando cuando se ejecutan mensajes de comando elevados, porque comienza en C: \ Windows \ system32 "por defecto; Esto significa que puede escribir "name.exe" en lugar de C: \ location \ name.exe "para ejecutar el programa.

Algunas personas prefieren separar sus dispositivos portátiles (no requiere instalación o realizar alternancias sin supervisión fuera de su carpeta) y programas no basados ​​en el instalador (no portátiles, pero no requieren el uso de un instalador) de los programas normales creando un nuevo directorio en su OSP (p. ej .: C: \ Archivos de programa portátiles (x86) o C: \ Archivos de programa Dumpable (x86). Recomendaría el segundo de los 2 dado que tiene un mayor nivel de precisión, incluso si no suena como bonita.

Para resumir, no hay reglas, sin embargo, si las instala en el OSP (en una carpeta que no sea de usuario) podrá ayudar a proteger el programa contra la desinstalación / modificaciones no deseadas (incluidas modificaciones maliciosas) y, en algunas circunstancias la organización puede ser beneficiosa (p. ej., la carpeta system32 mencionada anteriormente para los programas CLI del sistema).

Robin Hood
fuente
1
Creo que has entendido mal la pregunta fundamentalmente. La primera parte de la pregunta original es "Mejores prácticas", no "Cuáles son las reglas".
Steven Penny
@StevenPenny Para nada, solo una frase diferente. El punto de la pregunta son las razones para hacer X o no X.
Robin Hood
Se me ocurrió algo que me gusta: Etco Etceterasi prefieres un pensamiento latino realmente elegante. En un segundo lugar cercano, también lo consideré Misc. Pero Etcselló el trato para mí. :)
Henrik
0

Creo crear un atajo para C:\Tools en el Send Tomenú en Windows es la mejor opción, ya que siempre se puede acceder desde cualquier lugar. De esta manera, puede "instalar" rápidamente sus pequeños programas haciendo clic con el botón derecho en ellos y seleccionando Herramientas en el menú Enviar a desde cualquier lugar de Windows.

Tengo este tutorial sobre Cómo agregar al menú Enviar a de HowToGeek
. Pego el resumen:

Para acceder a la carpeta SendTo, deberá abrir una ventana del Explorador y luego pegar lo siguiente en la barra de direcciones.

% APPDATA% \ Microsoft \ Windows \ SendTo

Luego pegue el acceso directo de la carpeta que desea que sus programas se copien allí.

Luego, cada vez que descargue una nueva aplicación portátil, simplemente extráigala y envíela a ese lugar.
El único problema es la creación de accesos directos que creo que vale la pena hacerlo manualmente.
Saludos.

UltraDEVV
fuente
La carpeta Enviar a no es realmente adecuada para su uso como ubicación para instalar un programa. Tiene un propósito específico, a saber, permitir el envío de archivos / documentos para su posterior manejo por parte de un programa (por ejemplo, abrir un archivo en el Bloc de notas). Además, todos los archivos colocados en la carpeta Enviar a aparecerán en el menú contextual de Windows, incluida la compatibilidad con .DLL. Eso claramente no es deseable en la mayoría de los casos.
Digo reinstalar a Monica el
1
No. Parece que tú y todos los votantes no entendieron lo que quise decir. Quiero decir, agregue un acceso directo de, por ejemplo, C:\Tools\ a la Send Tocarpeta y acceda a él desde cualquier lugar, entonces no tendrá la molestia de hacer frente a cada uno de sus programas manualmente. Es probable que mi respuesta acelere el proceso de afrontamiento de otras cosas, lea otras. Me funciona muy bien.
UltraDEVV
Hice una posible edición para incluir esta aclaración adicional en su respuesta. Las respuestas se votan arriba / abajo en función de la respuesta, no necesariamente en los detalles incluidos en los comentarios, por lo que esperamos que esto ayude.
Digo reinstalar Mónica
No, a partir de Windows Vista, la %APPDATA%variable está enraizada en la %USERPROFILE%\AppData\Roamingcarpeta, por lo que para Windows 7 la ruta anterior es correcta. Sin embargo, en Windows XP necesitaría agregar la carpeta Roaming como indicó.
Digo reinstalar Mónica
Si cree que su pregunta no está clara, debe aclararla. ¿Por qué enviaste dos respuestas?
Ramhound
0

La variable de entorno de la ruta del sistema predeterminada en Windows es algo así (según la versión de Windows instalada):

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

Fuera de esas opciones,% SystemRoot% (que generalmente es C:/) parece ser la mejor opción para leer / escribir y será fácil hacer referencia más adelante.


fuente