Requirements
Trident's dependencies.
Build Dependencies
Compilers
- Rust: latest stable
- Go: 1.25+ (for osmodifier)
Packages
-
Ubuntu/Debian:
sudo apt install build-essential pkg-config libssl-dev libclang-dev protobuf-compiler ca-certificates unzipprotobuf-compiler versionBuilding Go tools that use gRPC (e.g.,
netlaunch,storm-trident) requiresprotoc3.15+ for proto3 optional field support. On Ubuntu 22.04 and earlier, the aptprotobuf-compilerpackage is too old (3.12). Install a newer version manually (example shown for x86_64; adjust the archive name for other architectures):PROTOC_VERSION=28.3
PROTOC_ARCH=linux-x86_64 # use linux-aarch_64 for arm64
curl -sL https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-${PROTOC_ARCH}.zip -o /tmp/protoc.zip
sudo unzip -o /tmp/protoc.zip -d /usr/local
rm /tmp/protoc.zipYou also need the Go protobuf plugins:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latestFor RPM builds (run inside the Azure Linux build container, not on the Ubuntu host), additional packages are needed:
rpmdevtools,sed,perl, andselinux-policy-devel. -
Docker (follow the instructions at Install Docker Engine on Ubuntu)
Test Dependencies
-
Python 3.8+
-
Python packages:
# Use version 26.2 to avoid a breaking change
# introduced in 26.4.
sudo pip3 install virt-firmware==26.2
Code Coverage Dependencies
-
cargo-llvm-covcargo install cargo-llvm-cov --locked -
cargo-nextestcargo install cargo-nextest --locked