Aldeca Productions - stock.adobe
Ubuntu snap versus apt: welchen Paketmanager brauchen Sie?
Die Wahl eines geeigneten Paketmanagers hängt in erster Linie von dem spezifischen IT-Ökosystem Ihres Unternehmens ab. Bestimmen Sie, wann snap oder apt die bessere Wahl ist.
IT-Teams, die Workloads auf Ubuntu ausführen, haben gleich zwei Softwarepaketmanager zur Verfügung: snap und apt.
Snap und apt automatisieren beide das Installieren, Verwalten und Entfernen von Softwarepaketen, funktionieren aber auf unterschiedliche Weise. Die Wahl zwischen den beiden hängt von den IT-Prioritäten Ihrer Organisation ab und davon, wie Ihr Ökosystem konkret aussieht.
Was sind Snap-Pakete?
Snap ist ein Paketverwaltungssystem von Canonical, dem Unternehmen, von dem auch Ubuntu stammt. Snapcraft ist der offizielle Name des Systems, das die Pakete verwaltet, Snap ist jedoch die geläufigere Bezeichnung. Es wurde für Ubuntu entwickelt, bekam aber 2016 eine Erweiterung, durch die es nun mit allen Mainstream-Linux-Distributionen kompatibel ist.
Snap verpackt eine Anwendung als Archiv, das den Binärcode, die Daten und die Bibliotheken enthält, die zum Ausführen der Anwendung erforderlich sind, einschließlich aller externen Abhängigkeiten. Wenn Sie die Anwendung ausführen, entpackt snap das Archiv und startet die Anwendung in einer Sandbox-Umgebung – ähnlich, aber nicht identisch mit einem Docker-Container.
Um beispielsweise den Texteditor gedit zu installieren, würden Sie den folgenden Befehl verwenden.
snap install gedit
Wenn Sie diesen Befehl eingeben, lädt snap das Snap-Paket für gedit aus den snap-Repositories herunter, die für Ihr System konfiguriert sind. Sie können installierte snap-Pakete mit dem Befehl snap remove gedit entfernen.
Was ist apt?
Apt ist ein Linux-Paketverwaltungswerkzeug, das mit Ubuntu und einer Vielzahl anderer Linux-Distributionen kompatibel ist. Seit seiner Veröffentlichung im Jahr 1998 hat sich apt zu einer weithin unterstützten und beliebten Option für das Installieren, Aktualisieren und Entfernen von Linux-Software entwickelt.
Apt verwaltet unter anderem Debian-Pakete, die als debs bekannt sind. Wie snaps enthält jedes Debian-Paket den Anwendungscode, Daten und Bibliotheken, die Sie für die Installation einer Anwendung benötigen. Debs definieren auch die Abhängigkeiten der Anwendung. Wenn Sie ein Debian-Paket über apt installieren, installiert apt die Abhängigkeiten der Anwendung automatisch mit.
Apt schreibt die Daten dauerhaft in das Dateisystem von Ubuntu, von dem aus die Anwendungen ausgeführt werden. Die Anwendungen laufen als Standardprozesse direkt auf dem Hostsystem und nicht in Sandbox-Umgebungen.
Um diesen Prozess anzustoßen, verwenden Sie:
apt install gedit
Deinstallieren Sie das Paket mit dem Befehl apt remove gedit.
Unterschiede zwischen snap und apt
Snap und apt ähneln sich auf den ersten Blick stark: Sie ermöglichen beide die Verwaltung von Anwendungen über Pakete und das Installieren und Entfernen von Software mit einfachen Befehlen, die oft fast gleich lauten.
Der Unterschied zwischen snap und apt liegt in der Art und Weise, wie sie Software paketieren. Snap schließt alles, was zum Ausführen einer Anwendung erforderlich ist – inklusive der Abhängigkeiten – in einem einzigen Paket ein, während apt von den Benutzern erwartet, dass sie die Abhängigkeiten als separate Pakete neben dem Anwendungspaket selbst bereitstellen.
Das mag wie ein kleiner Unterschied erscheinen, hat aber große Auswirkungen auf die Funktionsweise von snap und apt:
- Softwareversionen. Apt installiert die Software direkt auf Ihrem System, so dass Sie nur eine Version jeder Anwendung dort platzieren können. Es gibt zwar Möglichkeiten, widersprüchliche Anwendungsversionen zu verwalten, diese sind jedoch vergleichsweise kompliziert. Mit snap ist es einfach, mehrere Anwendungsversionen auf demselben System zu installieren.
- Paketerstellung. Snap-Pakete sind einfacher zu erstellen als apt-Pakete, da Sie die Abhängigkeiten im Paket direkt bündeln können.
- Entfernen von Paketen. Da alle Anwendungsdaten und Abhängigkeiten in einem Snap-Paket in sich geschlossen sind, entfernen Sie die gesamte Anwendung, indem Sie einfach das Paket löschen. Obwohl apt auch alle mit einer Anwendung verbundenen Daten entfernt, besteht das Risiko, dass apt einige Daten nicht löscht, wenn Sie eine Anwendung entfernen. Dies hinterlässt Datenmüll auf Ihrem System.
- Sicherheit. In mancher Hinsicht sind snaps sicherer, weil sie, je nach Einstellung, im Gegensatz zu den von apt genutzten deps ohne Root-Rechte laufen können. Theoretisch ist es möglich, ein Debian-Paket zu entpacken und die Daten als Nicht-Root-Benutzer auszuführen, aber so funktionieren die Pakete nicht, und es würde zu einer Fülle von Fehlern und Problemen führen.
In all diesen Punkten sorgt snap für eine sauberere, einfachere Software-Verwaltungserfahrung. Auf der anderen Seite haben apt-Pakete auch bestimmte Vorteile. Zum einen sind sie kleiner, weil sie keine Abhängigkeiten bündeln. Die Installation von Software mit apt führt somit zu einer effizienteren Nutzung des Speicherplatzes. Anwendungen, die Sie mit apt installiert haben, starten außerdem schneller, weil Sie die Anwendungspakete nicht dekomprimieren müssen, bevor Sie sie ausführen; das wurde bereits beim Installationsprozess erledigt.
Außerdem ist apt ein älteres, weit verbreitetes Paketverwaltungssystem. Obwohl Snap zwar mittlerweile andere Distributionen unterstützt, denken die meisten erst einmal an Ubuntu. Dementsprechend ist es auf anderen Linux-Systemen auch nicht im Lieferumfang enthalten. Wenn Sie Pakete erstellen möchten, die Sie über mehrere Linux-Distributionen hinweg verwenden wollen, ist apt die bessere Wahl.
Wann sollte man snap verwenden und wann apt?
Snap ist eine gute Wahl für IT-Betriebsteams, deren Hauptanforderungen an die Paketverwaltung sich um selbst erstellte Software drehen. Da Snap eine einfachere Paketerstellung und mehr Kontrolle bei der Paketverwaltung und -leistung bietet, führt es zu einer reibungsloseren Gesamterfahrung für IT-Teams, die Software sowohl erstellen als auch bereitstellen müssen, wie zum Beispiel in DevOps-Teams. Snap ist zudem, wie oben erwähnt, eine Option für Anwendungsfälle, in denen ein IT-Team Software aus Sicherheitsgründen nicht als Root-Benutzer ausführen kann.
Apt ist sinnvoll, wenn die meiste Software, die Sie auf Ubuntu laufen lassen, von Drittanbietern stammt. Das gleiche gilt wenn Sie zeitgleich mehrere Linux-Betriebssysteme einsetzen, da Apt die meisten Distributionen unterstützt.
Es spricht außerdem nichts dagegen, beide Tools zusammen zu nutzen, solange Sie den Überblick behalten, welche Paketverwaltung für welche Software zuständig ist.