我正在devise一个高级版本控制系统,当我们的系统上有各种软件可用的更新时,它们将会更新用户。
但是我需要更多地了解Apache对其产品的更新是如何实现的。 例如,Apache服务器通常像Windows那样打补丁,因此需要多次更新,或者补丁集中在一起,并发布新版本?
如果需要更多信息,请告诉我。
谢谢
据我所知,Apache Software Foundation不使用任何二进制修补系统。 每发布一次新版本,打包相关文件,获取的软件包都会被签名,上传到发布镜像,并准备好被用户下载。
Apache httpd(Apache Web服务器)通常不提供二进制分发,而只提供源分发。 二进制发行版(编译后的文件,例如.exe可以运行)由其他人提供,例如Linux发行版为各种Linux平台编译它们。 我不知道这些发行版是否提供了渐进的二进制补丁。
Apache Tomcat改为提供二进制分发,因为使用Java编写,它通常是跨平台兼容的。 但是,作为可用的源代码,许多发行版都以不同的方式提供了Tomcat,例如,大多数Linux发行版将核心服务器,文档,“经理”web应用程序等分开。
还要记住Apache Software Foundation内部使用的版本控制系统。 这通常是根据major.minor.revision。 例如,版本1.2.3意味着主版本1,次版本2,修订版本3。
修订更新是(应该)二进制和编译兼容,所以从较低版本更新到较高版本应该没有问题。
Minors通常是源代码兼容的(使用Apache Httpd或Apache Tomcat内部的定制代码仍然可以编译并且可能正常运行),但不是二进制兼容的(您的自定义代码需要重新编译)。 所以更新可能是危险的,http模块和tomcat的自定义可能需要重新编译。
但是,考虑到Apache Tomcat是使用后期绑定的Java开发的,通常这比Apache Httpd模块的频率要低,但是也取决于它是如何链接的。
主要版本通常完全不符合以前的版本。 一切都可能改变,包括configuration文件格式,核心内部等。所以,如果没有正确testing,自动更新主要版本通常是一个坏的举动。
如果您想要在客户系统上设置Apache Httpd和Apache Tomcat的自动更新,那么它很大程度上取决于您所针对的平台,因为通常这两个服务器都可以作为服务运行,由根(pipe理员)用户启动,以及类似并发症并不总是一个微不足道的任务。
大多数Linux发行版已经有包pipe理器,可以在大多数情况下正确处理更新。 在Windows上,有一些打包的Apache Httpd,通常还捆绑了PHP,MySql和其他用于Web开发的软件,可以执行自我更新。