Snap
Was ist Snap? (Paketverwaltung & Container-System)
Snap ist ein von Canonical (den Machern von Ubuntu) entwickeltes System zur Softwareverteilung und Paketverwaltung. Es unterscheidet sich grundlegend von klassischen Formaten wie `.deb` oder `.rpm`.
1. Kernkonzept: "Everything is Included"
Im Gegensatz zu klassischen Paketen, die Abhängigkeiten vom restlichen System teilen, bringt ein Snap-Paket fast alles mit, was es zum Laufen braucht (Libraries, Python-Interpreter, etc.).
- Vorteil: Eine App läuft auf Ubuntu 18.04 genauso wie auf Fedora oder Arch, ohne "Dependency Hell".
- Nachteil: Die Pakete sind deutlich größer (Disk Space).
2. Die Architektur: SquashFS & Mount-Points
Das ist der technische Grund, warum Snap nach einem Timeshift-Restore oft bricht:
- Ein Snap ist kein loser Ordner voller Dateien, sondern ein komprimiertes Read-Only Dateisystem (SquashFS).
- Wenn du eine App startest, "mountet" (einhängen) Linux dieses File als virtuelles Laufwerk unter `/snap/`.
- Die Basis-Umgebung (z.B. `core22`) ist das Fundament, auf dem die Apps aufbauen.
3. Sicherheit durch Sandboxing
Snaps laufen isoliert vom Rest des Systems. Sie nutzen Mechanismen wie:
- AppArmor: Verhindert, dass eine App auf Dateien zugreift, die sie nichts angehen (z.B. dein Browser liest dein SSH-Key Verzeichnis).
- Seccomp: Schränkt die Systemaufrufe ein, die eine App machen darf.
4. Die Rollback-Funktion
Snap behält standardmäßig die letzten zwei Versionen einer App auf der Platte. Wenn ein Update fehlschlägt, kann man sofort zurückspringen:
sudo snap revert [app-name]
Warum snapd nach Backups oft "streikt"
Da Snaps als virtuelle Laufwerke in das System eingehängt sind, speichert der Linux-Kernel Mount-Informationen in Echtzeit. Ein Backup-Tool wie Timeshift sichert oft die Dateien, aber nicht den Zustand der Mount-Punkte oder die spezifischen Sicherheits-Labels (AppArmor). Nach einem Restore versucht der Snap-Daemon (`snapd`), ein Laufwerk zu finden, das technisch nicht mehr "da" ist – es entsteht ein "Ghost Mount".
