From f18db4129219706ab58e657dbf0cd877b1f8f40e Mon Sep 17 00:00:00 2001 From: duffyduck Date: Thu, 24 Sep 2026 16:42:39 +0200 Subject: [PATCH] feat(host-agent): Docker-loser Native-Build + Live-ISO-Hinweis Docker-Build scheitert auf Live-ISOs (overlayfs-Root -> overlay2 kann kein Overlay-auf-Overlay stapeln: 'failed to mount ... invalid argument'). Ergaenzt: - build-native.sh: PyInstaller in einem venv, ohne Docker (Warnung: linkt gegen lokales glibc). - README: Live-ISO-Ursache erklaert + zwei Auswege (Binary woanders bauen und kopieren [empfohlen, portabel] oder nativ bauen). Co-Authored-By: Claude Opus 4.8 --- host-agent/.gitignore | 1 + host-agent/README.md | 18 ++++++++++++++++++ host-agent/build-native.sh | 25 +++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100755 host-agent/build-native.sh diff --git a/host-agent/.gitignore b/host-agent/.gitignore index 2b424bc..412e866 100644 --- a/host-agent/.gitignore +++ b/host-agent/.gitignore @@ -1,5 +1,6 @@ .env build/ dist/ +.buildenv/ *.spec __pycache__/ diff --git a/host-agent/README.md b/host-agent/README.md index 1ac452f..63e9edc 100644 --- a/host-agent/README.md +++ b/host-agent/README.md @@ -30,6 +30,24 @@ ARIA nutzt diese über die Brain-Tools `host_list` / `host_exec` / `host_read` / Gebaut wird in einem bullseye-Container (altes glibc), damit die Binary auf möglichst vielen Distributionen läuft. +### Docker scheitert? (Live-ISO / overlayfs-Root) + +Wenn `build.sh` mit `failed to mount … overlayfs … invalid argument` abbricht, +läufst du wahrscheinlich auf einem **Live-System** (Live-ISO). Dessen Root ist +selbst ein overlayfs, und Dockers `overlay2`-Treiber kann kein Overlay-auf- +Overlay stapeln. Zwei Auswege: + +- **Empfohlen:** Binary auf einem normal installierten Linux bauen (`./build.sh`) + und nur die fertige `dist/aria-host-agent` aufs Live-System kopieren. Die + Binary ist portabel — Ziel braucht weder Docker noch Python. +- **Nativ bauen (ohne Docker):** + ```bash + sudo apt install -y python3-pip python3-venv + ./build-native.sh + ``` + Achtung: nativ gebaut linkt die Binary gegen das glibc **dieser** Maschine — + sie läuft dann nur auf Systemen mit gleichem oder neuerem glibc. + ## Installieren 1. `dist/aria-host-agent` auf den Ziel-Rechner kopieren. diff --git a/host-agent/build-native.sh b/host-agent/build-native.sh new file mode 100755 index 0000000..b754859 --- /dev/null +++ b/host-agent/build-native.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Baut die Host-Agent-Binary OHNE Docker — direkt mit PyInstaller. +# Nutze das, wenn Docker nicht geht (z.B. Live-ISO mit overlayfs-Root, wo +# Dockers overlay2-Treiber kein Overlay-auf-Overlay stapeln kann). +# +# sudo apt install -y python3-pip python3-venv # falls noch nicht da +# ./build-native.sh +# +# WICHTIG: Nativ gebaut linkt die Binary gegen das glibc DIESER Maschine. Sie +# laeuft dann nur auf Systemen mit glibc >= dem hier. Fuer breite Kompatibilitaet +# lieber ./build.sh (Docker/bullseye) auf einem normalen Rechner nutzen. +set -euo pipefail +cd "$(dirname "$0")" + +python3 -m venv .buildenv +# shellcheck disable=SC1091 +. .buildenv/bin/activate +pip install --quiet --upgrade pip +pip install --quiet pyinstaller -r requirements.txt +pyinstaller --onefile --name aria-host-agent --collect-all psutil host_agent.py +deactivate + +echo +echo "Fertig: dist/aria-host-agent" +echo ".env danebenlegen (siehe .env.example), dann: chmod +x aria-host-agent && ./aria-host-agent"