第1个回答 2022-10-27
“安装”其实就是自动部署的过程,软件必须依赖于正确的外部环境才能正确执行,“部署”其实就是把这些环境进行正确的设置。比如:
软件在运行之前需要添加/修改/删除系统配置。比如,QQ为了防键盘监控,自带驱动程序。为了能够让驱动程序正常工作,必须要在系统中对驱动程序进行添加注册等操作。类似的还有写注册表、注册控件等。
软件需要的文件必须拷贝至不同的目录。比如,一些文件必须要拷贝到系统目录,一些文件必须要拷贝到用户目录,剩下的文件才可以让用户自行选择放在哪里。一个常见的例子是,安装程序会为用户自动添加快捷方式文件、开始菜单目录等。没有安装程序的话,这些工作可就只能手动完成了。
提供“部分功能”的安装选项,比如很多大型程序都提供只安装部分功能的功能。
即便是只有一个压缩包,用户下载下来解压就能用,这个“解压”的过程也是一种部署的过程。因为“解压”其实就是按照预先设定好的文件相对位置,把文件写到硬盘上的过程。这个“相对位置”就是软件执行所需要的环境。只不过这个部署过程很简单而已。
那把这“安装”和“运行”两个步骤合在一起行不行?行,只是:
每次运行都需要部署一遍,用户双击之后要等10分钟,不骂娘才怪。
上面这些步骤,通常都需要管理员/root权限。以特权运行程序是有风险的,所以不如只在安装的时候把这些工作搞定,程序就只需要普通权限就可以了。
能用程序自动完成的事,我为什么要手工去做,我做还可能出错……