我正在设计一个高级版本控制系统,该系统将在我们系统上的各种软件有可用更新时更新用户。
但我需要更多地了解 Apache 通常如何为其产品实施更新。例如,Apache Server 是否通常像 Windows 一样打补丁,因此需要多次更新,或者补丁是否集中在一起并发布新版本?
如果需要更多信息,请告诉我。
谢谢
我正在设计一个高级版本控制系统,该系统将在我们系统上的各种软件有可用更新时更新用户。
但我需要更多地了解 Apache 通常如何为其产品实施更新。例如,Apache Server 是否通常像 Windows 一样打补丁,因此需要多次更新,或者补丁是否集中在一起并发布新版本?
如果需要更多信息,请告诉我。
谢谢
据我所知,Apache 软件基金会不使用任何二进制补丁系统。每做一个新的发布,就打包相关文件,对得到的包进行签名,上传到发布镜像,供用户下载。
Apache httpd(Web Apache 服务器)通常根本不提供二进制分发,而只提供源代码分发。二进制发行版(编译文件,如 .exe 准备运行)由其他人提供,例如 Linux 发行版为各种 Linux 平台编译它们。我不知道这些发行版是否提供了渐进式二进制补丁。
Apache Tomcat 反而提供二进制发行版,因为它是用 Java 编写的(通常)是跨平台兼容的。然而,作为可用的源,许多发行版提供以不同方式打包的 Tomcat,例如,大多数 Linux 发行版将核心服务器、文档、“管理器”webapp 等分开。
还要记住 Apache 软件基金会内部使用的版本控制系统。它通常基于 major.minor.revision 。例如,版本 1.2.3 表示主要版本 1,次要版本 2,修订版 3。
版本更新(应该)是二进制和编译兼容的,因此从较低版本更新到较高版本应该没有问题。
未成年人通常是源代码兼容的(您使用 Apache Httpd 或 Apache Tomcat 内部的自定义代码仍然可以编译并且可能会正确运行),但不兼容二进制文件(您的自定义代码需要重新编译)。所以更新可能是危险的,http模块和tomcat定制可能需要重新编译。
然而,鉴于 Apache Tomcat 是在使用后期绑定的 Java 中开发的,这通常不如 Apache Httpd 模块那么频繁……但这也取决于它是如何链接的。
主要版本通常与以前的版本完全不兼容。一切都可能改变,包括配置文件格式、核心内部结构等。因此,如果没有经过适当的测试,自动更新主要版本通常是一个糟糕的举动。
如果您想在客户的系统上设置 Apache Httpd 和 Apache Tomcat 的自动更新,这在很大程度上取决于您的目标平台,因为通常这两个服务器都可以作为服务运行,由根(管理员)用户启动,等等并发症使它并不总是一项微不足道的任务。
大多数 Linux 发行版已经有包管理器,可以在大多数时间正确处理更新。在 Windows 上有一些打包的 Apache Httpd,通常还与 PHP、MySql 和其他用于 Web 开发的软件捆绑在一起,执行自我更新。