Deinstallation¶
Harter Vertrag: nach Uninstall ist die GUI bei Nicht installiert, und unter ~/.local/share/wine-software/<id>/ bleiben keine Rezeptor-Reste.
Pflicht in jedem Rezept¶
uninstall:inrecipe.ymlzeigt aufuninstall.sh- Skript nutzt
recipe_hooks::load minimal - Skript ruft
recipe_hooks::purge_recipe_dataauf - Kein
recipe_hooks::load kill(Proton/Hang)
Vorlage und CI (recipes-check, tests/uninstall-purge.bats) erzwingen das.
Was purge_recipe_data entfernt¶
Reihenfolge:
recipe_desktop::remove(Menü- + Desktop-Verknüpfungen, Icons) — best effort- Gewählten
DATA_ROOT(GUI-Ziel /data_root.path) - Kanonischen
data_rootaus YAML, falls verschieden und noch vorhanden
Enthalten typischerweise: prefix/, recipe.env, Marker, Staging, Wrapper unter dem Rezept-Datenort.
Sicherheit: Löschen von /, $HOME, /usr, /etc usw. wird blockiert.
Was bewusst bleibt¶
| Bleibt | Warum |
|---|---|
Portable-Ordner außerhalb von DATA_ROOT |
User-Eigentum (z. B. WISO unter ~/Dokumente/…) |
| Steam-Spielordner / Online-Fix | BYOS; Wrapper entfernt nur Rezeptor-State |
Geteiltes Proton-GE unter runtime/proton-ge/ |
Wird von anderen Rezepten genutzt |
| Launcher-Settings | Global unter …/rezeptor/settings.json |
Minimalbeispiel uninstall.sh¶
#!/usr/bin/env bash
set -euo pipefail
RECIPE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$RECIPE_DIR/../../core/recipe-hooks.sh"
recipe_hooks::load minimal
# optional: pkill app processes
recipe_hooks::purge_recipe_data
Verboten¶
- Nur
prefix/oder nurrecipe.envlöschen - „Soft uninstall“, der die GUI als installiert stehen lässt
- Deinstall-Logik in Rezepten neu erfinden statt
purge_recipe_data
Manueller Check¶
- Installieren → Uninstall
- GUI zeigt „Nicht installiert“
ls ~/.local/share/wine-software/<id>/→ leer/fehlend- Portable/Steam außerhalb noch vorhanden (falls zuvor so genutzt)
Weiter¶
- Core-API —
purge_recipe_data - Benutzerhandbuch — Ausblenden vs. Deinstallieren