¿Qué hace exactamente un instalador y por qué podría necesitar uno?

34

Esta es probablemente la pregunta novata del día:

Entonces escribí este juego.

Ahora está el archivo .exe que hace el trabajo, una carpeta con mis hermosos y hermosos activos y un montón de archivos .dll y otras cosas que probablemente no debería tocar. Para ejecutar el juego, copio todo en la computadora deseada, hago doble clic en el archivo .exe y empiezo a disparar a algunos tipos. ¡Hurra!

Pero, ¿cuál es exactamente la diferencia entre eso y usar un instalador? ¿Qué más hace un instalador además de copiar archivos y parecer más profesional que un archivo .zip? ¿Generalmente hay muchos parches / configuraciones involucrados al intentar hacer que un juego se ejecute en una computadora diferente? Probé mi juego en todas las computadoras con Windows, pude poner mis dedos codiciosos y funciona muy bien.

HumanCatfood
fuente
1
Bueno, en XNA, por ejemplo, necesitas tiempo de ejecución de XNA. O con SlimDX necesita SlimDX.dll dentro de su directorio de juegos o en GAC.
Kikaimaru
Hm, entiendo eso. Pero esos archivos .dll que necesito (en mi caso sdl.dll y sus secuaces) ya están en el mismo directorio que el archivo .exe y se copian mientras copio el resto. ¿Qué haría un instalador de manera diferente?
HumanCatfood
2
@ Jan El usuario final no tiene que preocuparse por colocar archivos y lo que no. Es algo que se hace por ellos.
Sidar
1
Algo en lo que pensar: ¿qué tan 'grande' es tu juego? Es decir, es un pequeño archivo exe de estilo independiente, una o dos DLL y algunas imágenes, o es algo enorme que necesita todo tipo de tiempos de ejecución. Si es algo relativamente pequeño, un archivo exe en un zip puede ser lo suficientemente bueno y puede ayudar a superar la renuencia del usuario a instalar juegos aleatorios que tal vez quieran eliminar después de cinco minutos de juego.
Piku
1
Hablando de instaladores ... algo que a menudo se pasa por alto es un buen desinstalador / desinstalador. He perdido la cuenta de la frecuencia con la que tuve que eliminar los archivos sobrantes y / o las claves de registro. Lo cual es especialmente irritante cuando dichos restos causan problemas al reinstalar el juego.
Exilyth

Respuestas:

34

El instalador suele estar allí para facilitar las cosas al usuario final. Hace una combinación de lo siguiente:

  • Descomprimir
  • Creación de directorios.
  • Instalación de tiempos de ejecución requeridos (redistribuibles como: .Net, Visual C ++, Direct x)
  • Registro con el sistema operativo (para una desinstalación limpia posterior)
  • Muestre capturas de pantalla hermosas para preparar al jugador para su juego mientras funciona.
  • Ofreciendo al usuario la oportunidad de registrar su juego
  • Descargar actualizaciones para los activos o parches para el juego
  • Agregue iconos al menú de inicio o al escritorio
  • Establezca los permisos correctos para varios directorios de juegos (carpeta temporal, directorio de guardado, etc.)
  • Simplemente instálalo ya , ¡permite que el usuario haga clic sin pensar en siguiente y empiece a jugar!
MichaelHouse
fuente
Ah, claro, no había pensado en que podría necesitar instalar tiempos de ejecución. ¡Gracias!
HumanCatfood
2
Además, ¡no olvide configurar los derechos de acceso a archivos! No se garantiza que tu juego tenga acceso de escritura a su carpeta (para juegos guardados y demás) a menos que un instalador lo configure.
importa
10
+1 La mayoría de los usuarios finales ni siquiera se sienten cómodos descomprimiendo un archivo, por lo que el instalador debe proponer una ruta de instalación predeterminada correcta y "simplemente hacerlo" por ellos. Muchos usuarios finales no saben qué es un sistema de archivos o cómo ubicar archivos fuera de las rutas de documentos predeterminadas que se les presentan. Y francamente, ¿por qué diablos deberían siquiera saberlo? Piense en el instalador como una tienda de aplicaciones para hombres pobres, debe ser un clic para jugar, no más.
Oskar Duveborn
Bueno, eso realmente depende de tu público objetivo.
API-Beast
3
También agregaría consistencia a la lista de razones. Al proporcionar un instalador, se asegura de que el usuario obtenga una configuración que sea consistente con otros usuarios, de lo contrario, terminará con cosas locas, como que alguien descomprima el juego en su escritorio y lo ejecute desde allí (sí, he visto que esto sucede). El uso de un constante y conocida buena configuración elimina una gran cantidad de cosas que pueden salir mal, y facilita la tarea de resolución de problemas cuando las cosas se hacen mal camino.
Maximus Minimus
3

Un instalador resume el proceso de implementación de piezas complejas de infraestructura de software , que generalmente se encuentra dentro de un archivo, a través de una interfaz de usuario conveniente y autosuficiente .

Esta interfaz de usuario puede ser gráfica o estar basada en texto que se genera en una línea de comandos como el shell de Unix (por ejemplo, bash). En el caso de los instaladores gráficos, la mayoría de las veces se utiliza el llamado bootstrapper de instalación, en este último caso, los scripts de instalación que pueden ser bash-scripts, scripts por lotes de Microsoft u otro lenguaje de scripts que se ejecuta en una línea de comandos.

En el caso más simple, una aplicación es simplemente un archivo ejecutable, y el sistema operativo sabe qué hacer con el archivo para ejecutarlo. El archivo de la aplicación puede residir en una carpeta con subcarpetas y otros archivos auxiliares, empaquetados en un solo archivo . En este caso, puede que no se necesite un instalador.

Para el software complejo , pueden ser deseables plataformas completas de software y una estrecha integración con la infraestructura subyacente del sistema operativo , por ejemplo, para hacer cumplir los derechos de autor de un producto de software.

Muchos instaladores en Windows proporcionan una marca /eo /extract. por ejemplo, setup.exe /epara permitir la extracción del contenido del archivo sin que el instalador ejecute su script de instalación. Hace poco necesitaba hacer eso .

Hacia la portabilidad

Los instaladores casi se han convertido en una norma para entregar software profesional, sin importar cuán simples sean los activos de software subyacentes. Con un número creciente de usuarios expertos en informática y el deseo de migrar las aplicaciones de un escritorio a otro, el software portátil , a menudo entregado en un archivo simple, se está volviendo cada vez más popular.

( No sé cuánto tiempo en total he dedicado a los instaladores, pero definitivamente es del orden de los días ) .

Las tareas que el instalador puede manejar son:

  • Desembalaje (a menudo utilizando archivadores exóticos de alta compresión)
  • asegurando los requisitos de hardware del sistema
  • asegurando suficiente espacio en el disco duro
  • Garantizar los requisitos de tiempo de ejecución de la plataforma de software (por ejemplo, 'redistribuibles')
  • buscando actualizaciones de software más recientes
  • descargar el software desde un repositorio remoto
  • crear y / o actualizar archivos y carpetas de programas
  • crear archivos de configuración, entradas de registro o variables de entorno
  • instalar controladores de software, montar o desmontar dispositivos
  • Aumentar la accesibilidad para los usuarios cotidianos, explicando los pasos de instalación, creando enlaces, atajos
  • promover el propio software a través de marcadores, etc.
  • Crear un incentivo para que el usuario inicie realmente el software, presentando los puntos clave del software durante la instalación, diapositiva por diapositiva
  • crear ingresos adicionales, a través de paquetes de software
  • configurar módulos de kernel y componentes que se ejecutan automáticamente (por ejemplo, demonios, servicios de Windows)
  • parcheo automático del software
  • configurar permisos de carpeta, archivo y usuario
  • crear GUID para acoplar el software a una instancia de instalación específica y, por ejemplo, evitar la portabilidad

... Si puede pensar en otros puntos, avíseme y los incorporaré.

Lorenz Lo Sauer
fuente