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 或更高版本。