fluent-package-builder (以前は td-agent-builder として知られていましたが、2021 年 8 月に名前変更されました) は、いくつかの問題があるため、従来のビルド システムomnibus-td-agent を置き換えることを目的とした td-agent の新しいビルド システムです。オムニバスの制限のため。
注: 再ブランド化が必要な理由について説明しました 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 パッケージに名前変更されました。embedded
ディレクトリの削除/opt/td-agent/bin/fluent-cat
/opt/td-agent/embedded/bin/fluent-cat
を使用してくださいapt install
でインストールすると、 apt install td-agent
で 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 リポジトリは fluent-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 以前など) をホスト OS として使用している場合は、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 以前など) をホスト OS として使用している場合は、 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 以前など) をホスト OS として使用している場合は、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-${version}-x64.msi パッケージは、fluent-package/msi ディレクトリの下に構築されます。
C 拡張機能 gem の構築には MSYS2 とともに使用できます。
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-${version}.dmg パッケージが fluent-package/dmg ディレクトリの下に構築されます。
GitHub Actions のビルドされたパッケージは、macOS 10.15 (Catalina) で実行する準備ができています。
補助アクセスの承認を必ず許可してください。 [システム環境設定] > [セキュリティとプライバシー] > [プライバシー] > [アクセシビリティ] で、そこで Terminal.app を許可する必要があります。
注:認証は Terminal.app のアプリケーション レベルで行われるため、ターミナル.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 以降である必要があります。