Normalize markdown formatting after the latest main updates.\n\nChecks: python3 scripts/layered_soul.py validate .; npx --yes prettier@3 --check '**/*.md'; git diff --check.
2.3 KiB
Herdr Build Pitfalls
Zig version: exact 0.15.2 required
Herdr vendors libghostty-vt which is compiled via zig build during
cargo build. The vendored library has an exact Zig version check.
Wrong version → build error:
error: Your Zig version v0.17.0-dev does not meet the required build version of v0.15.2
# Also breaks with:
error: invalid builtin function: '@cImport' # removed in 0.17
error: member function expected 4 argument(s), found 3 # readFileAlloc changed
Fix: Download Zig 0.15.2 from ziglang.org, extract to ~/.local/,
symlink zig into ~/.local/bin/:
# Remove wrong version
rm -f ~/.local/bin/zig
# Download and install
wget https://ziglang.org/download/0.15.2/zig-linux-x86_64-0.15.2.tar.xz
tar -xf zig-linux-x86_64-0.15.2.tar.xz -C ~/.local/
ln -s ~/.local/zig-linux-x86_64-0.15.2/zig ~/.local/bin/zig
# Verify
zig version # must print "0.15.2"
Debian apt does not have Zig
apt search zig finds no matching package. Manual download from
ziglang.org is the only reliable path.
herdr --remote requires interactive terminal for first install
The remote mode prompts for install confirmation via stdin. Running non-interactively fails with:
Error: "matching remote herdr 0.6.2 is not installed at $HOME/.local/bin/herdr;
run from an interactive terminal to approve installation"
Workarounds (pick one):
-
Run from user's terminal:
export PATH="/path/to/herdr/target/release:$PATH" herdr --remote <host>-ts-herdrApprove the prompt, TUI opens, quit with
q. -
Pre-install upstream binary on remote:
ssh <host>-ts-herdr 'mkdir -p ~/.local/bin' ssh <host>-ts-herdr 'curl -L <release-url> -o ~/.local/bin/herdr && chmod +x ~/.local/bin/herdr'Then
herdr --remotedetects the existing binary and skips the prompt. -
Use
HERDR_REMOTE_BINARYenv var to ship a local build:HERDR_REMOTE_BINARY=/path/to/herdr/target/release/herdr herdr --remote <host>-ts-herdr
FreeBSD is not a supported remote platform
RemotePlatform::from_uname() in remote.rs only matches "Linux" and
"Darwin". FreeBSD returns "FreeBSD" which causes:
Error: unsupported remote platform: FreeBSD amd64
Do not use herdr --remote against osa or any FreeBSD host.