GNU Health/补丁和补丁集
从版本 2.2.1 开始,将为 GNU Health 稳定版本(次要版本号为偶数,例如 1.2.3)发布补丁集。
假设以下场景:健康中心 GNU SOLIDARIO 医院安装了 2.2.0 版本。在生产环境中运行服务器数周后,发现了一个影响 health_service 模块的错误。这不是一个严重错误,但应该尽快解决。
与此同时,错误已报告并已修复和记录。GNU SOLIDARIO 医院的系统管理员有两个选择
- 使用补丁工具下载并应用单个补丁。
- 等待并应用最新的补丁集。
将是上下文决定使用哪种方法,但一般来说,除非你是在紧急修复错误的背景下,否则你应该使用补丁集方法。
一些一般性想法
- 补丁和补丁集不需要重新进行整个安装过程。脚本通常很小,一般来说安装时间很短。
- 补丁集适用于次要版本号(例如 2.0.x、2.2.x)。
每当生成一个补丁集时,就会发布一个新的 GNU Health 版本,其补丁级别编号与补丁集的编号一致。
本节讨论了补丁和补丁集背后的通用概念,以及何时使用其中一种或另一种。
一般来说,补丁是修复程序或其组件的一部分代码。在 GNU Health 中,补丁是一个在 Mercurial 特定 Changeset 中生成的“补丁文件”。补丁文件(diff)修改代码的特定部分,而不是替换整个文件。它使用 Patch 命令进行应用。如前所述,补丁与特定 Changeset 相关联,但不一定与最新的补丁级别编号(版本号的第三个部分,例如 1.2.3)相关联。
补丁的优点
- 它们立即可用:如果这是一个严重错误,你可以立即对其进行修补,无需等待补丁集。
- 非常具体:由于这种高度的特殊性,很多时候你可以在 GNU Health 中对一个正在运行的系统进行修补,而不会影响可用性。
补丁的缺点
- 需要更多技术知识
- 非常具体
- 处理二进制文件(如 LibreOffice 报告)时更加繁琐
- 需要跟踪其他未应用的补丁
补丁的高度特殊性既是优点也是缺点。因此它对操作员依赖性很大。我们建议除非是必须立即应用的严重错误,否则避免使用补丁。
补丁集的作用级别高于补丁,处理的是整个文件而不是代码块。它们以压缩的 ŧar 文件形式打包。
应用补丁集也是一项选择性操作,因为只有 GNU Health 内核的一部分被修改。
补丁集的优点
- 具体
- 可以在应用补丁后重新应用
- 应用该时间段内所有补丁,包括随着时间的推移收集的非严重补丁
- 更容易进行周期性安装/更新过程
- 与特定 GNU Health 版本(补丁级别编号)相关联
补丁集的缺点
- 不像补丁那样立即生效。虽然紧急修复补丁的时间不应超过 24 小时。
- 标记为紧急/阻塞的错误
- 重要的安全问题
- 非严重错误的数量
本章适用于 GNU Health 的 3.0 版本。 |
从 GNU Health 3.0 开始,我们有一个新工具,GNU Health 控制中心。GNU Health 控制中心简化了常见的管理任务,如备份或系统更新。要检查 Tryton 和 GNU Health 内核和模块的状态,以及保持系统更新,请访问 GNU Health 控制中心 部分。
访问 GNU Health 控制中心,获取有关如何安装补丁集的文档。
以下方法允许你在标准 GNU Health 安装中应用补丁集,而无需使用官方工具(gnuhealth-control)。手动安装不检查最新的 Tryton 更新,更复杂,不应使用。请使用 GNU Health 控制中心工具,除非你了解你在做什么。
GNU Health 不支持此方法 |
- 阅读 Savannah 中与补丁集相关的说明。根据补丁的不同,你可能需要更新模块。
- 停止 GNU Health 实例。
- 备份你的内核和数据库(始终,无论补丁多么小)。
- 使用 gnuhealth 帐户登录。
- 不要更改目录。 停留在你的 $HOME。验证你是否位于/home/gnuhealth.
- 下载与你的主版本号和次版本号匹配的最新补丁集。例如,如果你使用的是 3.0.x 版本
wget http://ftp.gnu.org/gnu/health/gnuhealth_patchset-3.0.latest.tar.gz
- 解压缩补丁集
tar -xzvf gnuhealth_patchset-3.0.latest.tar.gz
- 重新启动服务器。