# Snappy (Paketverwaltung)

Snappy, auch Snap ist ein Softwareverteilungssystem und eine Paketverwaltung für Linux, das bzw. die distributionsübergreifend arbeitet. Das von Canonical entwickelte System unterstützt transaktionale Updates und Rollbacks. Es wurde von Canonical für Ubuntu entwickelt und ist mittlerweile auch für andere Linux-Distributionen verfügbar. Dabei geht es über den Anwendungsfall auf dem Linux-Desktop hinaus und zielt auch auf Anwendungen im Cloud Computing und das IoT ab.

## Unterschied zu herkömmlichen Paketmanagern

Bei herkömmlichen Paketmanagern wie apt oder rpm braucht sich der Softwareentwickler nicht um die Systemintegration für die einzelnen Distributionen selber zu kümmern; oft wird nur der Quellcode veröffentlicht. Die Paketierung wird üblicherweise von den jeweiligen Applikations-Betreuern („Maintainern“) der einzelnen Linux-Distributionen erledigt. Je nach Linux-Distribution werden nach der Freigabe (Release) einer Distribution keine Pakete mehr auf neuere Versionen aktualisiert, was zwar für Stabilität sorgt, jedoch die Nutzung aktueller Paketversionen verzögert.
Snappy umgeht die Notwendigkeit distributionsspezifischer Installationspakete bzw. Repositories, indem der Software-Entwickler direkt seine Snappy-Pakete erstellt und freigibt. Sie können dann ohne Wartezeit direkt von den Anwendern zahlreicher verschiedener Linux-Distributionen heruntergeladen und verwendet werden; der Mittelsmann „Distribution“ zwischen Entwickler und Endanwender entfällt. Ein weiterer wichtiger Unterschied besteht darin, dass herkömmliche Paketmanager bei Installationen und Updates die Abhängigkeit von anderen Paketen prüfen und so die Software tief ins Gesamtsystem integrieren. Im Gegensatz dazu hat ein Snappy-Paket typischerweise alle benötigten Dateien und Abhängigkeiten für die Software dabei und ist dadurch vom Restsystem gut entkoppelt („Portable Software“); auch ist die Kontaktfläche für Kompatibilitätskonflikte damit minimiert, jedoch müssen dann auch Sicherheitsupdates in Abhängigkeiten für jedes Snappy-Paket separat eingespielt werden. Die fehlende Systemintegration macht sich bei manchen Anwendungen bemerkbar. Dann passen Dialoge nicht zu eingestellten Desktop-Themen, oder eine vorhandene proprietäre Hardwareunterstützung kann nicht genutzt werden (Grafiktreiber).

## Unterstützte Betriebssysteme

Es werden verschiedene Linux-Distributionen unterstützt, wobei die Zusammenarbeit oft inoffiziellen Charakter hat und Snappy mitunter nachinstalliert werden muss.
* Arch Linux
* CentOS
* Debian
* Elementary OS
* Fedora
* Gallium OS
* KDE neon
* Kubuntu
* Linux Mint
* Lubuntu
* Manjaro
* openSUSE
* Pop! OS
* Raspberry Pi OS
* Solus
* Ubuntu GNOME
* Ubuntu Kylin
* Ubuntu MATE
* Ubuntu Unity
* Xubuntu
* Zorin OS

## Rezeption und Kritik

Linus Torvalds sprach sich für upstream packaging aus und verwendet es für seine Anwendung Subsurface in Form von AppImage-Paketen, noch bevor Snaps marktreif waren. Der ArchLinux-Paketbetreuer Kyle Keen hingegen kritisierte das Konzept von Snappy und wandte sich prinzipiell gegen eine Softwareverteilung durch die Applikationsentwickler (Upstream-Entwickler) an die Anwender. Die Unterstützung für zahlreiche Betriebssysteme außer Ubuntu, die als Zusammenarbeit vermarktet werde, gehe ausschließlich auf Einreichungen durch Canonical zurück. Dem stehe auch entgegen, dass etliche Distributionen ganz andere Pläne im Bereich der Paketverwaltung hätten. Die für die Sicherheitsberechtigungen nötigen Patches für AppArmor sind ausschließlich unter Ubuntu verfügbar.
Von den Entwicklern der Linux-Distribution Mint wird kritisiert, dass Snaps exklusiv über einen einzigen App-Store von Canonical ausgeliefert werden, der unter der Kontrolle von Canonical steht und dessen Code proprietär ist. Dadurch habe Canonical die Möglichkeit, Hintertüren in Ubuntu einzurichten. Seit der Version „Ulyana“ von 2020 blockiert Linux Mint die Installation von Snap-Paketen. Problematisch ist zudem, dass Canonical die Unterzeichnung eines Contributor License Agreement einfordert, damit Entwickler Snap beisteuern dürfen. Dieser Vertrag bringt Canonical einseitig in eine bessere Vertragsposition, weshalb Konkurrenten ihren Mitarbeitern die Zustimmung hierfür verweigern können.
Der Ubuntu Snap Store selbst prüft nicht auf Schadprogramme. In der Vergangenheit tauchten daher Programme auf, die heimlich Kryptowährung herstellten.