因此,我浪费了好几天的时间处理一个 Apache2 的 bug,这个 bug 已经在 2012 年 2 月修复了。我一直都不知道为什么我仍然会遇到这个 bug,直到我发现我的 Apache2 版本是 2.2.x 版本,尽管我在 2012 年 11 月 30 日从头开始构建了整个服务器 Debian 6。由于某种原因,aptitude -install apache2 拉的是 2.2.x 而不是 2.4.x。
我希望我早知道不要假设 aptitude 会提取最新的稳定版本。有人能解释一下存储库是如何管理的,以及为什么 aptitude 会从较旧的维护基础架构而不是 2.4.x 基础架构中提取吗?此外,我如何具体让 aptitude 提取 2.4.x,以及我如何帮助自己避免将来出现此类问题?
答案1
Aptitude 总是会安装存储库中可用的最新版本(除了一些特殊情况,例如钉住,或者当被特别指示安装旧版本时)。
Debian 系列 Linux 发行版(以及 Red Hat 系列)针对给定的 OS 版本(在您的情况下为带有 Apache 2.2.16 的 Debian 6)测试给定软件包的一个特定版本,并在整个发行版中保持该版本以保证稳定性和配置兼容性,并反向移植任何安全或重要的错误修复。
因此,apt 安装了存储库中软件包的最新版本apache2
,该版本已在该操作系统上测试过,并在 Debian 6 存储库中提供。如果您出于某些特定原因需要 2.4,您应该能够找到提供该软件包的第三方存储库。
答案2
正如您所见,Debian 的稳定存储库中没有 Apache 2.4: http://packages.debian.org/search?keywords=apache2&searchon=names&suite=stable§ion=all
apache2 包是一个元包,它指向具有其依赖项的其他包和版本:http://packages.debian.org/squeeze/apache2
答案3
我把这个链接发给了我的一个朋友,他知道答案,但他没有账户。所以我自己发布了答案。
基本上,所有软件包都是针对 Linux 发行版编译的。这就是为什么你不能直接去 Apache 网站获取 Apache,除非他们专门为你的特定发行版提供构建版本。
事实上,Debian 认为 2.4.x 是实验性的,而且有缺陷。有一个 2.4.2-2 alpha 版本,但没有 2.4.3,后者应该是稳定的。我猜目前 Ubuntu 上也存在同样的问题。
因此很明显,由于 Debian 的最新稳定软件包是 2.2.x,所以 aptitude 安装的就是这个。
有时第三方会为特定发行版发布软件包,但您依赖第三方,因此这会有其自身的警告。
如果您想要使用第三方软件包,您可以添加自己的个人存储库或第三方存储库(称为 PPA)。当您安装某些东西时,Aptitude 应该使用 PPA。
如果给定发行版的版本不可用,那么唯一的选择就是从源代码构建。我不会从源代码构建,因为它会删除简单的升级路径。每次升级时,维护者都必须更新他的源文件并重新编译它们。现在,我将保留 2.2 版本,因为我放弃了,并回到了我的旧配置。