# 发布、软件包与升级

> 稳定分支、发布源、版本标识、维护与升级

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

<!-- Generated by scripts/generate-haproxy-docs.py from pinned upstream text. -->

HAProxy 是一个采用 GPLv2 许可证的开源项目，这意味着只要在请求时提供源代码，任何人都可以自由分发该软件，尤其是当进行了任何修改时。

HAProxy 以名为“master”或“mainline”的主开发分支持续演进，当代码被认为稳定后，便会从该分支衍生出新的分支。许多网站自愿在生产环境中运行开发分支，或为参与项目，或因需要前沿功能，其反馈对修复缺陷、评估所开发版本的整体质量与稳定性具有极高价值。

当代码稳定到一定程度时创建的新分支即构成稳定版本，通常会维护数年，因此即使未处于最新分支，也无需紧急迁移至更新的分支。稳定分支发布后，仅会接收错误修复，极少情况下才会引入小幅功能更新，以提升用户使用体验。所有进入稳定分支的修复必然源自主分支。这一机制确保了升级后不会丢失任何修复。因此，若发现并修复了某个错误，请务必向主分支提交补丁，而非稳定分支；还可能发现该问题其实已经修复。此流程也确保了稳定分支中出现回归的情况极为罕见，因此没有理由不升级到当前分支的最新版本。

版本分支使用两位数字并以点分隔，例如“1.6”。自 1.9 版本起，第二位数字为奇数的分支主要聚焦于敏感的技术更新，更适用于高级用户，因为其可能引入的错误比其他分支更多。这类分支仅维护约一年，且在无法紧急回滚的环境中不得部署。完整版本号包含一个或两个次版本号，用以表示修复级别。例如，版本 1.5.14 是在 1.5.0 版本发布后，1.5 分支的第 14 次修复发布。该版本包含 126 个针对个别缺陷的修复，24 个文档更新，以及 75 个其他回溯补丁，其中大多数用于修复前述 126 个缺陷。在稳定分支中，现有功能不得被修改或移除，以确保同一分支内的升级始终无害。

HAProxy 可通过多个来源获取，发布节奏各不相同：

- 官方社区网站：<http://www.haproxy.org/>：该网站提供最新开发版本的源码、所有稳定版本，以及每个分支的每日快照。发布周期较慢，稳定版本之间或开发快照之间通常相隔数月。旧版本仍在此处获得支持。所有内容仅以源码形式提供，因此从该处获取的任何内容均需重新构建和/或重新打包；

- GitHub: <https://github.com/haproxy/haproxy/>：这是仅用于开发分支的镜像，提供与问题追踪器、持续集成及代码覆盖率工具的集成。仅限贡献者使用；

- 许多操作系统，例如 Linux 发行版和 BSD 端口。这些系统通常提供长期维护的版本，虽然未必包含官方版本的所有修复，但至少包含关键修复。对于大多数不追求高级配置且希望保持更新简便的用户而言，这通常是一个不错的选择；

- 可从 <http://www.haproxy.com/> 获取商业版本：这些是针对各类操作系统构建、提供专业支持的软件包，或以设备形式交付。它们基于最新稳定版本，并包含从下一版本回溯移植的若干高需求功能。对于希望兼顾稳定分支可靠性与最新功能、获得最快缺陷修复响应，或在开源产品之上购买支持合同的用户，这是最佳选择；

为确保所用版本为当前分支的最新版本，请按以下方式操作：

- 验证正在运行的 HAProxy 可执行文件：某些系统默认自带 HAProxy，而系统管理员可能将自定义版本安装在系统其他位置，因此在启动脚本中确认实际使用的版本至关重要；

- 确定 HAProxy 版本的来源。通常只需输入 "haproxy -v"。开发版本会在分支号后显示 "dev" 字样：

```text
HAProxy version 2.4-dev18-a5357c-137 2021/05/09 - https://haproxy.org/
```

稳定版本以及操作系统供应商提供的未修改稳定版本显示如下：

```text
HAProxy version 1.5.14 2015/07/02
```

稳定版本的每日快照会在版本号后附加十六进制序列，并显示快照日期而非发布日期：

```text
HAProxy version 1.5.14-e4766ba 2015/07/29
```

其他格式可能表示带有独立补丁集的系统专用软件包。例如，HAProxy Enterprise 使用以下格式（`<branch>`-`<latest commit>`-`<revision>`）：

```text
HAProxy version 1.5.0-994126-357 2015/07/02
```

请注意，历史上 2.4 版本之前的版本曾使用连字符在“HA”和“Proxy”之间报告进程名称，包括那些仅调整为显示正确格式的版本，因此建议在脚本中忽略该词或使用宽松匹配。此外，现代版本还添加了指向项目主页的 URL。

最后，版本 2.1 及以上版本将包含一行“状态”信息，用于指示该版本是否适合生产环境使用，以及适用的截止时间，并提供指向此版本已知问题列表的链接。

- 对于系统专用软件包，必须查询供应商的软件仓库或更新系统，确认系统仍受支持，当前分支仍能获得修复。对于来自 HAProxy.org 的社区版本，只需访问网站查看当前分支状态，并将所用版本与最新版本比较。若不是最新版本，可以执行升级；若当前分支已停止维护，则说明版本严重落后，必须考虑升级至更新分支（升级时请仔细阅读 README）。

HAProxy 必须按其来源对应的方式更新。通常应遵循系统供应商的软件包升级流程。若使用源码，请在解压后阅读源码目录中的 README，并按相应操作系统的说明执行。
