安装程序通过方便,自给自足的用户界面抽象化部署复杂软件基础架构的过程,该过程通常包含在存档中。
此UI可以是图形的,也可以基于在命令行(如unix shell(例如bash))上输出的文本。对于图形安装程序,通常使用所谓的安装引导程序,在后一种情况下,使用安装脚本,该安装脚本可以是bash脚本,Microsoft批处理脚本或其他在命令行上运行的脚本语言。
在最简单的情况下,应用程序只是可执行文件,而操作系统知道如何处理该文件才能运行它。该应用程序文件可以驻留在包含子文件夹和其他辅助文件的文件夹中,并打包到一个档案中。在这种情况下,可能不需要安装程序。
对于复杂的软件,可能需要整个软件平台以及与底层操作系统基础结构的紧密集成,例如,以加强软件产品的版权。
Windows上的许多安装程序都提供/e
或/extract
标志。例如setup.exe /e
,允许在无需安装程序运行其安装脚本的情况下提取档案的内容。最近,我需要做的只是那个。
走向便携
无论基础软件资产多么简单,安装人员几乎已经成为交付专业软件的规范。随着精通计算机的用户数量的增加以及将一个应用程序从一个桌面迁移到另一个桌面的愿望,通常以简单存档形式提供的便携式软件变得越来越流行。
(我不知道我总共花了多少时间在安装程序上,但这绝对是几天的时间。)
安装程序可以处理的任务是:
- 解压缩(通常使用奇特的,高压缩率的存档器)
- 确保系统硬件要求
- 确保足够的硬盘空间
- 确保软件平台运行时要求(例如“可再分发产品”)
- 检查更新的软件更新
- 从远程存储库下载软件
- 创建和/或更新程序文件和文件夹
- 创建配置文件,注册表项或环境变量
- 安装软件驱动程序,安装或卸载设备
- 通过说明安装步骤,创建链接和快捷方式,提高日常用户的可访问性
- 通过书签等推广自己的软件...
- 通过在安装过程中展示软件的关键点,激励用户实际启动软件
- 通过软件捆绑创造更多收入
- 配置内核模块并自动运行组件(例如,守护程序,Windows服务)
- 软件自动修补
- 设置文件夹,文件和用户权限
- 创建GUID将软件耦合到特定的安装实例,例如防止可移植性
...如果您能想到其他要点,请告诉我,我将予以合并。