2024年2月14日 星期三

[技術文章] 自行建置 Zimbra OSE 9 二進位安裝包

    



Zimbra 原廠自 OSE 9.0 起不再提供開源版本的二進位安裝檔,不過 Zimbra 的核心本身仍然是開放原始碼,因此使用者可以自行依據官方所提供的文件建置出來使用,本文以 Ubuntu Server 20.04 版本整理操作過程,提供參考。

如果還在使用 OSE 8.8.15 的使用者務必儘早更新,因為 OSE 8.8.15 已經在 2023/12/31 停止支援與更新了。 
 






步驟一:準備建置用的虛擬機環境

請先安裝好 Ubuntu Server 20.04,並做基本設定,包括網路、時區設定等等。

安裝必要套件
apt update
apt install software-properties-common openjdk-8-jdk ant ant-optional ant-contrib ruby git maven build-essential debhelper screen


建置程序準備
# 建議進入 screen 操作,避免斷線後回來失去處理進度
screen









步驟二:選擇要建置的版本資訊

選擇正確的建置版本非常重要,這關係到日後安裝與升級。可以到官方的版本發布頁 https://github.com/Zimbra/zm-build/tags 檢視:


檢視 Zimbra 發行版本資訊


例如 9 版中最新為 9.0.0.p38,10 版中最新為 10.0.6,先將版本號記起來,下一個程序會使用它。

由於自行建置的版本要採用 --build-no 這個參數來命名編號,因此我自己的習慣是建置 9 版時以 1038 代表為 p38 (Patch 38),建置 10 版時以 1006 代表為 10.0.6,以利識別。








步驟三:開始建置 Zimbra 二進位安裝包

建置 9.0.0.p38 的安裝包,請依以下指令執行:
cd /root
mkdir installer-build-p38
cd installer-build-p38

git clone --depth 1 --branch 9.0.0.p38 https://github.com/Zimbra/zm-build.git

cd zm-build

ENV_CACHE_CLEAR_FLAG=true ./build.pl --ant-options -DskipTests=true --git-default-tag=9.0.0.p38,9.0.0.p37,9.0.0.p36,9.0.0.p35,9.0.0.p34,9.0.0.p33,9.0.0.p32.1,9.0.0.p32,9.0.0.p31,9.0.0.p30,9.0.0.p29,9.0.0.p28,9.0.0.p27,9.0.0.p26,9.0.0.p25,9.0.0.p24.1,9.0.0.p24,9.0.0.p23,9.0.0.p22,9.0.0.p21,9.0.0.p20,9.0.0.p19,9.0.0.p18,9.0.0.p17,9.0.0.p16,9.0.0.p15,9.0.0.p14,9.0.0.p13,9.0.0.p12,9.0.0.p11,9.0.0.p10,9.0.0.p9,9.0.0.p8,9.0.0.p7,9.0.0.p6.1,9.0.0.p6,9.0.0.p5,9.0.0.p4,9.0.0.p3,9.0.0.p2,9.0.0.p1,9.0.0 --build-release-no=9.0.0 --build-type=FOSS --build-release=KEPLER  --build-no=1038 --build-release-candidate=GA --build-thirdparty-server=files.zimbra.com --no-interactive


建置 10.0.6 的安裝包,請依以下指令執行:
cd /root
mkdir installer-build-1006
cd installer-build-1006

git clone --depth 1 --branch 10.0.6 https://github.com/Zimbra/zm-build.git

cd zm-build

ENV_CACHE_CLEAR_FLAG=true ./build.pl --ant-options -DskipTests=true --git-default-tag=10.0.6,10.0.5,10.0.4,10.0.3,10.0.2,10.0.1,10.0.0-GA --build-release-no=10.0.0 --build-type=FOSS --build-release=LIBERTY --build-no=1006 --build-release-candidate=GA --build-thirdparty-server=files.zimbra.com --no-interactive

建置的過程需要一點時間,取決於這台主機的 CPU 與 DISK IO 效能而定,以我的環境是 30 分鐘左右完成。

建置完成後會產出一個 .tgz 的壓縮檔,位於 在 /root/nstaller-build-版本/BUILDS 下的版本名稱資料夾內,取出後放到目標主機,解開後即可依照一般 Zimbra 安裝方式進行安裝。

注意,安裝升級過程中 Would you like to delete /opt/zimbra before installing? [N] 請輸入 N,否則會刪除既有 Zimbra 資料!








問題處理

安裝或升級過程注意


建置後用來安裝或升級 9 版時出現 license-daemon 這個安裝套件,請選擇 N 不要安裝。



apt 更新後服務故障


如果日後使用 apt upgrade 更新系統時,需要留意是否有安裝到 zimbra- 開頭的套件,如果有將會把部份套件覆蓋至採用自行建置安裝好的 Zimbra,造成版本問題某些服務無法啟動。

解決方法很簡單,重新執行自己建置過的安裝程序一次後即可修復。


日後需要更新版本


若官方推出新的 release 版本,例如 9.0.0.p39,請依前述程序建置出新的 9.0.0.p39 安裝包,再將安裝包複製到 Zimbra 伺服器,進行正常的安裝升級程序 (install.sh) 即可。




結論

目前官方建置程式尚未支援至 Ubuntu Server 22.04,針對這個問題,
我們可以觀察若官方的 Zimbra 10 NE 版開始支援 Ubuntu Server 22.04 的話,這個建置程序也應該會同時支援可打包出 22.04 的安裝包。

當然,屆時也要準備一台 Ubuntu Server 22.04 的環境來進行建置。









參考資料