Debian/Ubuntu 等系统将应用软件的升级与操作系统升级放在一起,值得 Windows 学习。
前段时间手工升级了一台 AWS 云服务器,Windows Server 2012 中的 Nginx, Apache,觉得比 Debian/Ubuntu 下应用软件升级麻烦一些。
Linux 发行版,比如 Debian/Ubuntu, 会将很常用的软件,作为操作系统的一部分。在其官网服务器上,维护一个软件清单(软件编号、名称、版本号、简介、安装文件、升级脚本等,可定期自动升级。
Debian/Ubuntu 使用了一个名为 apt 的软件,可在其中配置升级所用服务器的镜像网址。当然,其它应用软件,比如 Google Chrome 浏览器,Microsoft Edge 浏览器,也可以按照 apt 软件的规则,向其中添加升级服务器的信息。然后当操作系统 (Debian/Ubuntu) 定期升级检查时,也会检查 Chrome/Edge 是否有更新。
也就是说,在软件升级方面,Chrome/Edge 通过更改 apt 配置,将自己被操作系统 Debian/Ubuntu 当成操作系统自身的一部分,同步进行升级检查、升级安装。
而微软的 Windows 方面,无论是 Wiindows XP, Windows 7, Winodws 10, 均缺少类似机制。微软并不将非微软的软件,视为操作系统的一部分(驱动程序除外),因此,Windows 检查升级的时候,不会检查非微软的软件是否有更新的版本。
于是,各软件只能自己安装一个 Windows service (服务) 程序,用来定时检查软件是否有新版本、是否需要升级。比如,Mozilla 的 Firefox 浏览器,就是这么做的。
这种方法,存在很大问题:当一台电脑上安装的应用软件很多时,每个软件都安装一个后台自动检查新版本的小工具,会占用比较多的内存、CPU 资源,拖慢整个软件系统。
还有一种办法,是注册一个 Windows 自启动目录(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup),放一个程序的快捷方式,或者在注册表某个地方,比如 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, 配置一个数据,也可以在 Windows 启动时,启动某个软件新版本检查的程序(此时只启动、之后再检查)。
比如 java JRE 的新版本检查发现程序。
这类软件如果多了,也会带慢整个电脑系统。因为他们是同时在后台运行的。
当然了,像惠普、戴尔等品牌电脑厂商,也会提供名为 support assist 的软件工具,用来升级出厂电脑时的硬件对应的驱动程序,包括 BIOS 升级软件、硬盘驱动程序、无线网卡驱动程序等。这里面与 Windows 操作系统自身的功能,有一些重叠。
单个 support assist 软件工具,按软件清单逐个检查新版本,对系统的性能影响,就会小很多。
也有软件厂商,比如 360, 提供了软件管家,可以对第三方应用软件,进行升级检查、提醒、升级。弥补了市场空白,也流行了若干年。但随着 360 软件逐渐庞大、捆绑其它额外软件,对用户造成一定的干扰,很多人逐渐放弃 360 软件管家。
然后,Windows 操作系统上,这一软件领域(单个操作,批量检查多个应用软件的新版本、批量安装),又成空白点了。