Warum wechselt Ubuntu zu Snappy-Paketen?

127

Warum sollte Ubuntu .deb-Pakete sichern und auf .snappy-Pakete umsteigen? (Zumindest für den Moment behalten sie das .deb-Paket für normale Distributionen). .deb ist bereits die beliebteste Verpackung.

Dies gibt eine Vorstellung davon, was das Snappy-Paketformat ist. Aber was passiert mit den vorhandenen Deb-Paketen? Gibt es einen klaren Vorteil, wenn Sie zu Snappy wechseln? Lohnt sich der Schmerz?

Vishnudev K
quelle
1
Der Link ist borken
y30

Antworten:

146

Snappy ist ein Versuch, eines der grundlegenden Probleme mit Linux als Desktop-Betriebssystem zu lösen, und dieses Problem ist die Paketverfügbarkeit und Paketverteilung. Snappy ist jedoch nicht vollständig als Ersatz für Schulden gedacht. Snaps und Debs arbeiten nebeneinander.

Ich bin ein Linux-Enthusiast und ein Projektmanager einer Linux-Anwendung. Obwohl ich Linux-Systeme als Ganzes liebe, verachte ich den aktuellen Stand der Paketverteilung. Bissig zielt darauf ab, dieses grundlegende Problem zu lösen.

Unter Linux sind Pakete größtenteils distro-spezifisch (es ist möglich, eine DEB zu erstellen, die auf allen verschiedenen Debian-basierten Systemen läuft, aber Sie in gewisser Weise einschränkt), aber nicht nur, dass Pakete distro-versionsspezifisch sind.

Wenn ich ein Deb-Paket für Ubuntu 16.04 erstelle, funktioniert dieses Paket auf keiner Ubuntu-Version. Ich muss auch 14.04, 15.04, 15.10 und so weiter machen. Dies sind nur Ubuntu-Debatten. Ich muss auch einen für Debian erstellen. Dann müssen Sie RPMs für Fedora 21, 22, 23 usw. erstellen, und diese RPMs decken nicht einmal openSUSE ab.

Das bedeutet, wenn ich eine neue Version einer Anwendung veröffentlichen und nicht darauf warten möchte, dass die Distributoren sie in ein Repository aufnehmen (was normalerweise absurd viel Zeit in Anspruch nimmt), muss ich über 20 Pakete bereitstellen, um die meisten Linux-Distributionen abzudecken und trotzdem wird das nicht alles abdecken.

Mit den Snaps von Ubuntu können Sie einen Snap erstellen, der auf jeder Version von Ubuntu ausgeführt wird, die Snaps unterstützt. Nicht mehr Distributionsspezifisch.

Snaps können in andere Distributionen integriert werden. Möglicherweise nicht mehr distro-spezifisch.

Snaps werden in einem Repo gesteuert, das von den Paketentwicklern verwaltet werden soll. Wenn wir also eine neue Version veröffentlichen möchten, müssen wir auf niemanden warten.

Im Grunde genommen wird alles, was ich an der Linux-Paketverteilung hasse, von Snappy gelöst. Es ist jedoch wichtig zu wissen , dass diese Probleme auch von AppImages und Flatpaks gelöst werden .

TL; DR

Die Verteilung von Linux-Paketen ist sowohl für Entwickler als auch für Benutzer schrecklich. Snappy (auch AppImages & Flatpaks) sollen dieses grundlegende Problem bei Linux-basierten Systemen lösen.


Bei dieser Frage geht es wirklich um den Grund des Umzugs, aber wenn jemand mehr darüber erfahren möchte, was Snaps sind und wie sie funktionieren. Ich habe dieses Video erstellt , um die Struktur detailliert zu erklären.

Michael Tunnell
quelle
13
Meine Güte, du machst es so schwer, außer dass niemand jemals so viele Versionen von Fedora, Debian oder Ubuntu unterstützt. Bis zum 16.04 ist out, 15.04 ist EOL. Bis Fedora 23 herauskommt, hat F21 noch weniger als einen Monat zu leben, gerade lange genug, damit die Leute eine Veröffentlichung überspringen können. Nicht, dass es etwas ausmachen würde. Sobald Sie die Basis-RPM-Spezifikationsdatei oder das Basis-Debian-Paket geschrieben haben, sind die anderen Distributionen optimierte Versionen, und dann ist es nur ein Jenkins-Job, sie für jede neue Veröffentlichung zu erstellen.
John Franklin
10
Ubuntu-Pakete wurden für viele Versionen entwickelt: 14.04, 15.10, 16.04 und einige unterstützen weiterhin alte LTS wie 12.04, die immer noch unterstützt werden. || Fedora hat kein LTS, daher gibt es weniger zu unterstützende Versionen, aber immer noch mindestens 2 Versionen, wobei 3 Versionen unterstützt werden können. || Was hört sich für dich besser an? A. Erstellen Sie für jede Version derselben Anwendung mehrere Pakete für eine Distribution und für mehrere Distributionen. ODER B. machen Sie einen Snap für jede Version Ihrer App und das funktioniert auf jeder Distribution und jeder Version dieser Distribution. Ja, ich stimme für Schnappschüsse in diesen Szenarien.
Michael Tunnell
4
@ user447607 Du verstehst falsch, was Snaps and Snappy ist. Es wird keine Redundanz geben, es wird Laufzeiten geben und es wird Optionen geben, bei denen Snaps von anderen Snaps abhängen, um Platz zu sparen. Dies ist in der Tat bereits möglich. Snappy ist ein anderes Paketverwaltungssystem, das Snaps verwaltet, und apt ist immer noch mit DEBs befasst. Snaps ersetzen keine DEBs, sondern erweitern DEBs, sodass Sie einen hybriden Ansatz erhalten, der beide Methoden abdeckt. Tatsächlich können Snaps automatisch über vorhandene DEBs generiert werden.
Michael Tunnell
2
@konung Docker ist eine reine Containerisierung, bei der Snaps diese Funktion sowie die Integration in die Kernkomponenten des Systems übernehmen. Für Docker muss beispielsweise alles im Container enthalten sein, damit es verwendet werden kann. Bei Snaps müssen jedoch nur die erforderlichen Elemente enthalten sein, und dann kann es außerhalb des Snaps angezeigt werden, um andere Funktionen zu nutzen. Snaps haben auch eine VIEL bessere Infrastruktur, da Docker keinen wirklichen Aktualisierungsmechanismus hat, Snaps jedoch ein ähnliches Paketverwaltungssystem wie APT für Debian verwendet. Ich schlage vor, das Video zu lesen, das ich im ursprünglichen Beitrag verlinkt habe. Ich plane, bald eine aktualisierte Version zu machen.
Michael Tunnell
6
@konung Snaps sind keine Container. Viele Leute vergleichen sie zum Beispiel mit Docker, aber Docker ist ein echter Container, in dem Snaps keine Rolle spielen. Snaps sind containerartig, aber keine vollen Container, da sie Ausnahmen außerhalb der Begrenzung zulassen. Beispielsweise werden die Einstellungen / configs / Daten außerhalb des Snaps im Ordner / home gespeichert. Auf diese Weise können Sie so viele Versionen eines Snaps haben, wie Sie möchten, und alle dieselben Daten / Konfigurationen gemeinsam nutzen.
Michael Tunnell
20

Es ist ganz einfach. Snappy-Paket enthält alle erforderlichen Dateien , wobei .deb-Pakete Abhängigkeiten zu anderen Paketen aufweisen.

Die negative Seite ist, dass bissig größer ist, weil es alle Dateien enthält. Der große Vorteil ist jedoch, dass Sie keine Probleme mit anderen Paketen haben. Wenn Sie dieses Paket entfernen, ist kein anderes Paket von fehlenden Abhängigkeiten betroffen.

Alex WLBI
quelle
7
Es bedeutet auch Sicherheitsalptraum. Oh, bitte beweise mir, dass ich falsch liege, denn Recht zu haben, wäre so schrecklich.
Jürgen A. Erhard
27
Sie gehen also im Wesentlichen den Windows-Weg - der in der Vergangenheit ironischerweise von Linux-Anwendern verspottet wurde.
Pithikos
1
Hey @ JürgenA.Erhard, wie ich verstehe, hat jedes Paket seine eigenen Bibliotheken, zum Beispiel Kryptografie. Anstatt also eines zu überprüfen (dh sich selbst zu kompilieren), müssen Sie im Grunde jedes Paket einzeln behandeln "Sicherheitsalptraum"?
Ilya
Korrektur: "enthält alle erforderlichen Dateien" ist nicht korrekt, da es Kern-Snaps gibt, die als Laufzeiten fungieren. Dies wurde jedoch nach der ursprünglichen Antwort hinzugefügt, so dass es zu der Zeit korrekt war, aber seitdem hat sich viel geändert.
Michael Tunnell
7

Snappy Personal, der neue Ansatz für die Paketverwaltung / -aktualisierung, der schneller, zuverlässiger, transaktionaler und sicherer ist.

Snappy für mindestens einen ihrer Desktop-Spins - der Plan ist, Ubuntus Desktop-Next-Spin von .deb auf Snappy Personal umzustellen.

.deb ist immer noch vorhanden, und ein normaler Benutzer kann es bis zur Konvertierung von .deb in snappy weiterhin regelmäßig verwenden.

Snappy wird verwendet, um das Konzept der Paketverwaltung im ioT zu vereinheitlichen, das Snappy jetzt als Kernbetriebsmittel verwendet. Darüber hinaus bietet snappy eine bessere Möglichkeit zum Aktualisieren und Beseitigen von Problemen während des Aktualisierens / Upgrades, da das Konzept des gesamten Abbilds verwendet wird, was bedeutet, dass das Update nur aus einem Stück besteht und daher keine Möglichkeit zum Fehlschlagen besteht

Lesen Sie diese Artikel für weitere Informationen:

http://www.webupd8.org/2015/04/ubuntu-desktop-zu-einmal-zu-wechseln.html

http://www.itworld.com/article/2914850/linux/is-ubuntu-moving-away-from-deb-packages-here-is-the-complete-story.html

Es gibt auch ein QA-Video von ubuntu on air, das viele Fragen beantwortet: https://youtu.be/lHO8j8uo5Z4

Maythux
quelle
9
Warum können sie kein .deb Version 2-Paket mit Abwärtskompatibilität erstellen? Warum sollte man sich in der Linux-Community trennen? Derzeit ist geplant, langsam nach Snappy zu migrieren, es sei denn, es ist ein völliger Flop.
Vishnudev K
Sie möchten das Konzept der Paketverwaltung im ioT vereinheitlichen, das snappy jetzt als Kernbetriebsmittel verwendet. Darüber hinaus bietet snappy eine bessere Möglichkeit zum Aktualisieren und Beseitigen von Problemen während des Aktualisierens / Upgrades, da das Konzept des gesamten Images verwendet wird, was bedeutet, dass das Update nur aus einem Stück besteht und daher kein
Fehlschlag ist
3
Es ist schon schlimm genug mit der Vielzahl von Methoden für das Packen in Linux (was bereits Probleme mit Programmen von Drittanbietern verursacht), eine andere wird nur ein größeres Chaos anrichten: - /
Wilf
@ Maythux. Was ist ein ioT?
TRiG
4
@ Maythux xkcd.com/927
ein
4

Überlegen Sie sich, ob Sie noch heute den bissigen Ubuntu Core verwenden möchten, wenn Sie überlegen, etwas für andere zu erstellen, um mit anderen Worten ein Produkt zu verwenden .

Die Software wird im Handumdrehen geliefert. Aufgrund ihrer Merkmale können wir darauf vertrauen, dass Installation und Upgrades auf jedem System so funktionieren, wie es der ursprüngliche Entwickler beabsichtigt hat. Weitere Merkmale sind die Sicherheit, z. B. die isolierte Ausführung und saubere Schnittstellen, um mit dem System zu kommunizieren und die installierten Snaps zu konfigurieren.

Um so etwas zu erreichen, unterscheiden sich Snaps stark von einem Debian-Paket:

  • snaps leben in einem isolierten systembestimmten ort, während debian-pakete dateien über den ganzen ort verteilen können.
  • Es gibt keine Betreuerskripte für Snaps.

Gehen wir zurück auf die ursprüngliche Frage von verwenden oder nicht zu verwenden , ich schlage vor , Sie halten mit regelmäßigen Ubuntu - Desktop, wenn Sie Ihren Desktop mit Ubuntu Kern zu ersetzen. Ubuntu Core nenne ich persönlich gerne die nothing distro , denn alleine ist es nichts, bietet aber einen sehr guten Baustein, um etwas zu bieten, und deshalb ist es heutzutage im IoT beliebt.

sergiusens
quelle
3
Mit anderen Worten, es ist genau wie das, was Windows macht?
Vishnudev K
1
Das ist eine breite Frage. Was macht Windows im Besonderen?
Sergiusens
4
Ich installiere VLC in Windows, es installiert alle Pakete, die benötigt werden, um den Raum zu belasten. wo wie unter linux bekommen wir nur die pakete die wir nicht haben. Es ist ziemlich praktisch in Bezug auf Updates und Festplattennutzung.
Vishnudev K
2
Ähnlich ja. Dies unterscheidet sich nicht von der Installation eines apkauf Ihrem Telefon. Anwendungen können sich mit ihren Abhängigkeiten nach Belieben weiterentwickeln. Es gibt jedoch Möglichkeiten, dies aufzuteilen, beispielsweise durch die Verwendung von frameworkSnaps. Dies erfordert jedoch eine strenge Sicherheitsüberprüfung. Der Unterschied zu Windows besteht darin, dass es hier keine Installateure gibt, die möglicherweise landen können, wo immer sie wollen.
Sergiusens