GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Snap vs. APT:Was ist der Unterschied?

Einführung

Im Vergleich zu anderen Mainstream-Betriebssystemen verfolgt Linux einen anderen Ansatz für die Softwareverwaltung. Die Software in Linux ist traditionell in Repositories organisiert. Repositorys enthalten Anwendungen und alle Abhängigkeiten, die zu ihrer Ausführung erforderlich sind.

Während die Verwendung von Repositories aus vielen Gründen bequem ist, stellt sie für Benutzer, die nicht technisch versiert sind, oft ein Hindernis dar. In den letzten Jahren wurden mehrere alternative Verpackungssysteme entwickelt, um die Linux-Erfahrung benutzerfreundlicher zu machen.

In diesem Vergleichsartikel erfahren Sie mehr über die Unterschiede zwischen dem Snap-Paketsystem und dem APT-Paketmanager.

Was ist Snap?

Snap ist ein Softwarepaket und Bereitstellungssystem, das eigenständige Pakete namens Snaps verwendet, um Software für Benutzer bereitzustellen. Snaps packt alle Abhängigkeiten, die ein Programm benötigt, in ein einziges Paket. Auf diese Weise ist die App systemunabhängig, was bedeutet, dass sie nativ auf jeder Linux-Distribution ausgeführt werden kann, die Snap unterstützt.

Während APT Pakete meist aus den offiziellen Repositories einer Distribution bezieht, ermöglicht Snap Entwicklern, ihre Apps direkt über den Snap Store an die Nutzer auszuliefern. Entwickler können Snapshots auch direkt auf ihren Websites veröffentlichen.

Das Tool zur Snap-Verwaltung heißt snapd . Es ist ein Daemon, der es einem System ermöglicht, Snap-Pakete auszuführen. Benutzer interagieren mit snapd, indem sie snap verwenden Kunde.

Unten sehen Sie ein Beispiel für eine Thunderbird-Installation mit snap Befehl:

Was ist APT?

APT (Advanced Package Tool) ist ein Software-Paketmanager zum Installieren und Entfernen von Paketen auf Debian-basierten Systemen. APT automatisiert den Prozess des Abrufens, Konfigurierens, Aktualisierens, Installierens und Entfernens von Paketen. APT ist ein Front-End von Debians grundlegendem Paketverwaltungssystem dpkg .

Einer der Hauptvorteile von APT ist die Art und Weise, wie es mit Softwareabhängigkeiten umgeht. Nachdem ein Benutzer einen Befehl zum Installieren eines Pakets ausgegeben hat, durchsucht APT die Repositories nach den Abhängigkeiten des Pakets und installiert diejenigen, die noch nicht auf dem System installiert wurden.

Das Werkzeug, das APT hauptsächlich für die Kommunikation mit Benutzern verwendet, ist apt . Das Dienstprogramm bietet die beliebtesten apt-get und apt-cache Befehle, die als weniger benutzerfreundlich gelten.

Der Screenshot zeigt die Installation von Thunderbird mit apt :

Snap Vs. APT:Unterschiede

Bevor wir auf Details zu den Unterschieden zwischen Snap und APT eingehen, ist es notwendig, die Ebenen zu verstehen, auf denen wir sie vergleichen können.

Die folgende Tabelle erläutert die Terminologie und bietet die wichtigsten Vergleichspunkte:

Snap APT
Pakettyp .snap .deb
Werkzeugname snapd APT
CLI-Tool snap apt
Formatieren SquashFS-Archiv ar-Archiv
Verfügbar in Snap Store Debian-Repositorys
Installationsgröße Größer Kleiner
Abhängigkeiten Im Paket enthalten Geteilt
Aktualisierungen Automatisch Handbuch
Sicherheitseinsperrung Eingeschränkt Begrenzte Haft
Mehrere Installationen Möglich Nicht möglich
Mehrere Versionsinstallationen Möglich Nicht möglich

Paketformat

Snap verwendet .snap Dateien, die im Snap Store oder auf der Website ihres Entwicklers zum Download zur Verfügung stehen. Die Datei .snap Datei enthält eine Anwendung, ihre Abhängigkeiten und die Metadaten in einem komprimierten SquashFS-Dateisystem.

Snap-Anwendungen sind containerisiert, ähnlich wie Docker seine Container packt. Im Gegensatz zu Docker-Containern haben Snap-Apps jedoch begrenzten Zugriff auf das Hostsystem, hauptsächlich zum Speichern von Konfigurationsdateien und Verwenden der E/A des Systems.

APT verwendet .deb Dateien aus Online-Software-Repositories für jede Linux-Distribution, die sie unterstützt. Eine .deb Datei ist ein Unix-Archiv, das zwei tar-Archive enthält. Ein Archiv enthält die Kontrollinformationen, während das andere die Dateien enthält, die für die Paketinstallation verwendet werden.

Paketgröße

Snaps sind in sich abgeschlossen, was zu einer relativ großen .snap führt Datei. Wenn ein Benutzer einen Snap installiert, wird die Datei dekomprimiert und als schreibgeschütztes Loopback-Gerät im Home-Verzeichnis gemountet.

Eine über APT installierte Anwendung ist kleiner als sein Snap-Gegenstück, da es keine Paketabhängigkeiten bündeln muss.

Abhängigkeiten

Snap bündelt Paketabhängigkeiten innerhalb des Pakets. Während sich dieser Ansatz negativ auf die Paketgröße auswirkt, besteht der Hauptvorteil darin, dass Benutzer immer die unterstützte und getestete Version des Pakets haben.

APT verwendet einen Shared-Dependencies-Ansatz. Wenn ein Benutzer eine apt install ausgibt Befehl liest APT die Liste der Abhängigkeiten, prüft, ob auf dem System bereits einige der Pakete installiert sind, und installiert die fehlenden. Diese Technik behält einen kleinen Speicherbedarf bei.

Benutzerfreundlichkeit

Der Unterschied in der Benutzerfreundlichkeit für Endbenutzer ist nicht signifikant. Snap Apps sind universell und für Entwickler praktischer zu warten, und das Freigeben eines Updates ist ein einfacher Prozess zum Ändern eines einzelnen Pakets.

Andererseits APT überprüft Repositories, um Updates zu finden. Wenn ein Update fertig ist, benötigt das Repository-System eine separate Version für jede Distribution (Ubuntu, Linux Mint, Pop! OS usw.) und jede Distributionsversion (Ubuntu 18.04, Ubuntu 20.04 usw.). Diese Methode ist zeitaufwändig und führt manchmal zu Verzögerungen bei bestimmten Distributionen.

Geschwindigkeit

Snap hat längere Startzeiten als APT da das Betriebssystem Snaps bei der ersten Verwendung dekomprimiert, um Speicherplatz zu sparen. Allerdings sind die Schnappschüsse nur beim ersten Durchlauf langsamer – beim zweiten Start wird der Unterschied geringer oder verschwindet ganz.

Aktualisierungen

Der Snap Update-Prozess ist automatisch. Benutzer können die Aktualisierung einer Snap-App nicht verhindern, sondern den Vorgang nur verzögern. Snap-Entwickler sind nicht darauf beschränkt, wann sie ein Update veröffentlichen können.

APT gewährt dem Benutzer die vollständige Kontrolle über den Aktualisierungsprozess. Wenn jedoch eine Distribution eine Veröffentlichung kürzt, friert sie normalerweise Debs ein und aktualisiert sie nicht für die Dauer der Veröffentlichung. Daher ist Snap die bessere Lösung für Benutzer, die die neuesten App-Versionen bevorzugen.

GUI-Integration

Snaps sind universell ausgelegt. Daher lassen sie sich nicht perfekt in GUIs verschiedener Distributionen integrieren.

In letzter Zeit gab es in der Snap-Community einige Entwicklungen bezüglich der Themenintegration. Dazu gehört die Einführung eines Hintergrunddienstes, der auf Designänderungen achtet und Benutzern anbietet, ihre App an das OS-Design anzupassen. Dies ist jedoch noch in Arbeit, und Snaps lassen sich immer noch nicht vollständig in das Host-Betriebssystem integrieren.

Auf der anderen Seite .deb Dateien, die von APT verwendet werden sind distributions- und versionsspezifisch, was dazu führt, dass sie die Standard-Linux-Erfahrung in Bezug auf die Themenintegration bereitstellen.

Sicherheit

Snaps unterstützen die Signaturvalidierung und gelten aufgrund ihrer eingeschränkten Natur als sichere Lösung für die App-Bereitstellung. Da der Herausgeber die App dem Benutzer jedoch direkt bereitstellt, muss der Benutzer dem Herausgeber vertrauen. Es werden keine externen Überprüfungen durchgeführt.

Auf der anderen Seite überprüft jede Linux-Distribution Debs, die in ihrem Repository enthalten sind. Also APT Benutzer können sicher sein, dass die App aus einer vertrauenswürdigen Quelle stammt. Dies gilt nicht für Repositories oder Debs von Drittanbietern, die auf Publisher-Websites verfügbar sind.

Snap Vs. APT:Welche soll man wählen?

Wählen Sie Ausrichten wenn:

  • Sie möchten nicht, dass unnötige Pakete in Ihr System integriert werden. Bei Snaps bleiben die Pakete auf .snap beschränkt Paket.
  • Sie möchten sicherstellen, dass Sie die aktuellste Version der App haben. Snap-Updates automatisch und kontinuierlich, ohne Feature-Freezes für bestimmte Distributionen.
  • Sie möchten eine App isolieren.

Wählen Sie APT wenn:

  • Sie möchten, dass Apps von der von Ihnen verwendeten Distribution überprüft werden.
  • Sie sind besorgt über die Erhaltung Ihres Speicherplatzes. Von APT installierte Apps teilen ihre Abhängigkeiten.
  • Sie möchten, dass sich Apps richtig in die GUI-Umgebung integrieren.

Ubuntu
  1. Ubuntu Server vs. Desktop:Was ist der Unterschied?

  2. Der Unterschied zwischen [[ $a ==Z* ]] und [ $a ==Z* ]?

  3. Der Unterschied zwischen lokalisieren/wo ist/was?

  4. Der Unterschied zwischen Lubuntu und Lxde?

  5. Cloud-Hosting vs. VPS-Hosting:Was ist der Unterschied?

VPN vs. VDI:Was ist der Unterschied?

Failover vs. Failback:Was ist der Unterschied?

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Ubuntu-Varianten:Was ist der Unterschied?

Die Funktion der Liste der Loop-Geräte?

Was ist der Unterschied zwischen einer Konsole, einem Terminal und einer Shell?