Fluent-package-builder(以前稱為 td-agent-builder,於 2021 年 8 月更名)是 td-agent 的新構建系統,旨在取代傳統的構建系統omnibus-td-agent,因為它有幾個問題由於Omnibus 的限制。
注意:討論了為什麼需要重塑品牌 重塑 td-agent-builder
td-agent
已重新命名為fluent-package
fluent-package
的內容改為安裝在/opt/fluent
下/usr/sbin/td-agent
和/usr/sbin/td-agent-gem
改為/usr/sbin/fluentd
和/usr/sbin/fluent-gem
/opt/fluent/share/fluentd.conf
fluentd-apt-source
已重新命名為fluent-apt-source
deb 包,用於維護 apt-line 和金鑰環embedded
目錄/opt/td-agent/bin/fluent-cat
而不是/opt/td-agent/embedded/bin/fluent-cat
apt install
安裝,然後可以透過apt install td-agent
。另請參閱本期的綜合問題。
安裝上述軟體後,您需要從 powershell(以管理員身分)啟用其他功能。
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart
dism.exe /online /enable-feature /featurename:Containers /all /norestart
然後重新啟動 Windows。
% rake yum:build
預設情況下,以下平台的 yum 儲存庫將建置在 fluence-package/yum/repositories/ 目錄下:
您可以透過YUM_TARGETS
環境變數選擇目標平台,如下所示:
% rake yum:build YUM_TARGETS= " rockylinux-8,almalinux-9 "
您可以在 Fluent-package/yum 目錄下找到其他支援的平台。
您也可以為 AArch64 平台建置包,如下所示:
% rake yum:build YUM_TARGETS= " amazonlinux-2023-aarch64 "
但如果您使用較舊的 GNU/Linux 平台(例如 Ubuntu 18.04 或先前的版本)作為主機作業系統,則需要將 qemu-aarch64-static 複製到目標的基本目錄中:
% export TARGET_BASE= " centos-8 "
% sudo apt install qemu-user-static
% cd /path/to/fluent-package-builder
% cp /usr/bin/qemu-aarch64-static fluent-package/yum/ ${TARGET_BASE}
% rake yum:build YUM_TARGETS= " ${TARGET_BASE} -aarch64 "
您也可以為 ppc64le 平台建立軟體包,如下所示:
% rake yum:build YUM_TARGETS= " centos-8-ppc64le "
但如果您使用較舊的 GNU/Linux 平台(例如 Ubuntu 18.04 或先前的版本)作為主機作業系統,則需要將 qemu-ppc64le-static 複製到目標的基本目錄中:
% export TARGET_BASE= " centos-8 "
% sudo apt install qemu-user-static
% cd /path/to/fluent-package-builder
% cp /usr/bin/qemu-ppc64le-static fluent-package/yum/ ${TARGET_BASE}
% rake yum:build YUM_TARGETS= " ${TARGET_BASE} -ppc64le "
% rake apt:build
預設情況下,以下平台的 apt 儲存庫將建置在 Fluent-package/apt/repositories/ 目錄下:
您可以透過APT_TARGETS
環境變數選擇目標平台,如下所示:
% rake apt:build APT_TARGETS= " debian-bookworm,ubuntu-jammy "
您可以在 Fluent-package/apt 目錄下找到其他支援的平台。
您也可以為 AArch64 平台建置包,如下所示:
% rake apt:build APT_TARGETS= " ubuntu-jammy-arm64 "
但如果您使用較舊的 GNU/Linux 平台(例如 Ubuntu 18.04 或先前的版本)作為主機作業系統,則需要將 qemu-aarch64-static 複製到目標的基本目錄中:
% export TARGET_BASE= " ubuntu-bionic "
% sudo apt install qemu-user-static
% cd /path/to/fluent-package-builder
% cp /usr/bin/qemu-aarch64-static fluent-package/apt/ ${TARGET_BASE}
% rake apt:build APT_TARGETS= " ${TARGET_BASE} -arm64 "
% rake msi:build
將在 Fluent-package/msi 目錄下建置一個 fluence-package-${version}-x64.msi 套件。
您可以與 MSYS2 一起使用來建立 C 擴充 gem。
MSI包含的Ruby可以偵測MSYS2環境。因此,您可以使用 MSYS2 安裝包含 C 擴充功能的 gem。
例如)
準備C擴充gem建置環境:
cmd> ridk install 2
...
cmd> ridk install 3
透過ridk exec fluent-gem install
安裝gem:
cmd> ridk exec fluent-gem install winevt_c
% sudo mkdir /opt/fluent
% sudo chown $( whoami ) /opt/fluent
% rake dmg:selfbuild
將在 Fluent-package/dmg 目錄下建置一個 Fluent-package-${version}.dmg 套件。
GitHub Actions 的建置套件已準備好在 macOS 10.15 (Catalina) 上運作。
請務必獲得輔助存取授權。在系統偏好設定 > 安全性和隱私權 > 隱私 > 輔助功能中,您應該允許 Terminal.app 在那裡。
注意:由於授權是在 Terminal.app 上的應用程式層級進行的,因此它允許從 Terminal.app 運行的任何腳本來執行 GUI 腳本編寫。
cd fluent-package && rake lockfile:update
% cd fluent-package
% rake version:update
% git diff # Check the change log
% git commit -a
% rake apt:build
% rake yum:build
% rake msi:build
它假設 Gemfile 與 Bundler 的多平台功能配合使用,因此 Bundler 必須是 2.2.0 或更高版本。