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 /e
o /extract
. por ejemplo, setup.exe /e
para 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é.