【知乎搬运】为什么下载的安装包都需要安装才能用,而不是可以直接用呢,安装的过程到底是在做什么?

【知乎搬运】为什么下载的安装包都需要安装才能用,而不是可以直接用呢,安装的过程到底是在做什么?

作者:dontpanic

链接:https://www.zhihu.com/question/265996364/answer/302255917

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

“安装”其实就是自动部署的过程,软件必须依赖于正确的外部环境才能正确执行,“部署”其实就是把这些环境进行正确的设置。比如:

软件在运行之前需要添加/修改/删除系统配置。比如,QQ为了防键盘监控,自带驱动程序。为了能够让驱动程序正常工作,必须要在系统中对驱动程序进行添加注册等操作。类似的还有写注册表、注册控件等。软件需要的文件必须拷贝至不同的目录。比如,一些文件必须要拷贝到系统目录,一些文件必须要拷贝到用户目录,剩下的文件才可以让用户自行选择放在哪里。一个常见的例子是,安装程序会为用户自动添加快捷方式文件、开始菜单目录等。没有安装程序的话,这些工作可就只能手动完成了。提供“部分功能”的安装选项,比如很多大型程序都提供只安装部分功能的功能。即便是只有一个压缩包,用户下载下来解压就能用,这个“解压”的过程也是一种部署的过程。因为“解压”其实就是按照预先设定好的文件相对位置,把文件写到硬盘上的过程。这个“相对位置”就是软件执行所需要的环境。只不过这个部署过程很简单而已。那把这“安装”和“运行”两个步骤合在一起行不行?行,只是:

每次运行都需要部署一遍,用户双击之后要等10分钟,不骂娘才怪。上面这些步骤,通常都需要管理员/root权限。以特权运行程序是有风险的,所以不如只在安装的时候把这些工作搞定,程序就只需要普通权限就可以了。能用程序自动完成的事,我为什么要手工去做,我做还可能出错……

相关推荐