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"