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
- 重新啟動伺服器。