Warum verfügen die Ubuntu-Repositorys nicht über die neuesten Softwareversionen?

145

Warum sind Pakete in den offiziellen Ubuntu-Repositories älter als die neuesten (Upstream-) Versionen von Debian Sid, PPAs, den Autoren usw.?

Thomas Ward
quelle
2
Dies passiert eigentlich für jede Distribution, nicht nur für Ubuntu.
dr01
9
@ dr01 Es gibt Distributionen mit fortlaufenden Distributionen, die immer aktualisiert werden. Daher entsprechen nicht alle Distributionen dieser Frage oder den Ubuntu-Entwicklungszyklen.
Thomas Ward

Antworten:

120

Eine Ubuntu-Veröffentlichung durchläuft mehrere Phasen, bevor sie als fertiges Produkt veröffentlicht wird:

  • Einige Zeit bevor Ubuntu ein Release startet, friert es seine Pakete zu einem bestimmten Zeitpunkt ein.

  • Vor der Veröffentlichung eines Pakets, aber nach dem Einfrieren des Pakets, wird hauptsächlich daran gearbeitet, alle Fehler und Probleme zu beheben, die in diesen Paketen auftreten können. Neue Paketversionen werden nach dem Einfrieren von Paketen oder Features nicht mehr in die Repositorys importiert.

  • Sobald die Veröffentlichung erfolgt, werden zusätzliche Änderungen an diesen Paketen nur noch zur Behebung von Fehlern und zur Behebung von Sicherheitsproblemen vorgenommen. Die Pakete im offiziellen Repository werden nicht mehr aktualisiert, selbst wenn neue Versionen der Pakete veröffentlicht werden.

Neue Versionen von Paketen werden für die nächste Veröffentlichung von Ubuntu durchgehend (von Debian) importiert, bis das nächste Einfrieren eintritt und sich derselbe Vorgang wiederholt.

Als Beispiel können Sie sich den Release-Zeitplan vom 12.04 ansehen .

Sie können sehen, dass, obwohl 12.04 im April veröffentlicht wurde, im Januar 12 etwas passiert ist , das sich Debian Import Freeze nennt .

Dies ist nur die erste von vielen Einfrierphasen, die vor der eigentlichen Veröffentlichung stattfinden, und bedeutet, dass zu diesem Zeitpunkt der Import von Paketen aus Debian-Tests oder Unstable gestoppt und die Arbeit daran begonnen wird, um Probleme mit ihnen anzupassen und zu beheben.

Nach diesem Zeitpunkt werden in vielen Paketen keine Upgrades mehr durchgeführt, und die Version, die zu diesem Zeitpunkt im Paket enthalten war, ist die Version, die während der gesamten Lebensdauer eines Releases vorhanden ist und beibehalten wird.

Obwohl es höhere Versionen desselben Pakets in den PPAs der Entwickler oder in Ubuntu + 1-Repositorys gibt , werden diese nur in der nächsten Version von Ubuntu enthalten sein.

Dies geschieht aus Gründen der Stabilität, Sicherheit und Funktionalität. Der ständige Import neuer Blutungspakete in das Haupt-Repository würde Probleme bedeuten und es müssten noch viele weitere Probleme gelöst werden. Ein Einfrieren in der Paketversion hilft dabei, dies zu klären und Ubuntu für den Endbenutzer sicherer und stabiler zu machen.

Eine neue Version von Ubuntu wird alle 6 Monate veröffentlicht, daher werden alle 6 Monate neue Pakete vorbereitet, getestet, angepasst und mit einer neuen Version veröffentlicht. Zukünftige Versionen eines Pakets können über eine PPA oder einfach durch Herunterladen von einer Website auf Ihrem System installiert werden, die Version des Pakets im offiziellen Repository bleibt jedoch unverändert.

Weitere Informationen und eine interessante Übersicht über das, was mit Ubuntu von 10.04 bis zum Start von 12.04 passiert ist, finden Sie auf der Seite ReleaseSchedule - LTS zu LTS und Updates für stabile Releases.

Bruno Pereira
quelle
2
Es scheint Ausnahmen zu dieser Richtlinie zu geben, insbesondere für Webbrowser (Firefox, Chromium). Während mehr als 95% der Pakete den unten aufgeführten Anweisungen entsprechen, ist der Webbrowser möglicherweise die am häufigsten verwendete Anwendung für die meisten Benutzer.
Dotpush
Wenn Sie die neueste Software benötigen, verwenden Sie ein Launchpad-PPA-Repository.
iBug
@iBug oder verwenden Sie eine andere Distribution wie Arch Linux oder NixOS oder installieren Sie Homebrew auf Ihrem Ubuntu-System.
Boris
16

Zwei Gründe. Das erste ist ziemlich offensichtlich: Es erfordert einen Menschen, Zeit damit zu verbringen, das Paket zu aktualisieren, wenn ein neuer Upstream herauskommt. Das zweite ist, dass, wenn Sie eine stabile Version im Gegensatz zur aktuellen Entwicklungsversion ausführen, Pakete absichtlich NICHT willentlich aktualisiert werden, um Beschädigungen zu vermeiden. Siehe http://wiki.ubuntu.com/StableReleaseUpdates .

Psusi
quelle
3
"Es erfordert einen Menschen, Zeit damit zu verbringen, das Paket zu aktualisieren, wenn ein neuer Upstream herauskommt." Dies ist eindeutig falsch, alles kann automatisiert werden. Der wahre Grund ist der zweite, den Sie erwähnt haben.
Gented
15

Pakete werden für die Veröffentlichung eingefroren und aus mehreren Gründen nicht nachträglich aktualisiert. Wenn neue Releases nach dem Release veröffentlicht wurden, dann ist die neue Version ...

  • Dies kann zu neuen Fehlern führen und damit die Funktionalität beeinträchtigen, die zum Zeitpunkt der Veröffentlichung vorhanden war
  • benötigt Personal zum Packen, Testen und Hochladen
  • benötigt eigene Sicherheitsupdates
  • benötigen aktualisierte Übersetzungen für die Benutzeroberfläche
  • Benötigt aktualisierte Dokumentation (und Übersetzungen)
  • macht den technischen Support schwieriger
  • Dies könnte Benutzer ärgern, die sich an die Funktionen in der alten Version gewöhnt haben
  • Möglicherweise sind neuere Abhängigkeiten erforderlich, die andere Apps beschädigen könnten, wenn sie im Repository geändert würden
  • kann andere Pakete, die von diesem abhängen, beschädigen
  • kann für die alte Version erstellte Benutzerskripte, Vorlagen, Tools usw. beschädigen

Alles , was gesagt, bewusst sein , dass es Fälle gibt , in denen Ubuntu tut volles Updates von Software - Versionen im Repository tun. Zum Beispiel Firefox.

Außerdem gibt es ein Ubuntu-Backports-Repository, in dem Benutzer auswählen können, welche Softwarepakete aktualisiert werden sollen, die keine Probleme wie die oben aufgeführten verursachen. Es ist standardmäßig nicht aktiviert, daher müssen Benutzer es aktivieren, um die Überraschung zu vermeiden, dass Ihre Software von Ihnen entfernt wird. Es ist auch nicht sehr stark besetzt und daher bin ich mir nicht sicher, wie oft Pakete tatsächlich aktualisiert werden.

Darüber hinaus hat das SRU-Team kürzlich die Richtlinien ein wenig aktualisiert, was es hoffentlich ein bisschen einfacher macht, nur Bugfix-Paketaktualisierungen zu erhalten.

Bryce
quelle
11

Normalerweise dienen die Updates in den veröffentlichten Versionen von Ubuntu der Sicherheit und der Behebung von Fehlern. Beispiele für solche Fehler sind:

  • Bugs, die unter realistischen Umständen direkt eine Sicherheitslücke verursachen können. Diese werden vom Sicherheitsteam durchgeführt und unter SecurityTeam / UpdateProcedures dokumentiert.

  • Bugs, die schwerwiegende Rückschritte gegenüber der Vorgängerversion von Ubuntu darstellen. Dies schließt Pakete ein, die völlig unbrauchbar sind, z. B. deinstallierbar sind oder beim Start abstürzen.

  • Bugs, die unter realistischen Umständen einen direkten Verlust von Benutzerdaten verursachen können Bugs, die nicht zu den oben genannten Kategorien gehören, aber (1) einen offensichtlich sicheren Patch haben und (2) eher eine Anwendung als kritische Infrastrukturpakete (wie X.org) betreffen oder der Kernel).

  • Für Long Term Support-Releases möchten wir regelmäßig neue Hardware aktivieren. Solche Änderungen sind angemessen, vorausgesetzt, wir können sicherstellen, dass Upgrades bestehender Hardware nicht beeinträchtigt werden. Beispielsweise dürfen sich Modaliases neu eingeführter Treiber nicht mit zuvor gelieferten Treibern überschneiden. -Neue Versionen kommerzieller Software im Canonical-Partnerarchiv.

    -FTBFS (kann nicht aus der Quelle erstellt werden) kann ebenfalls berücksichtigt werden. Bitte beachten Sie, dass der Release-Prozess im Wesentlichen sicherstellt, dass es keine Binärdateien gibt, die nicht aus einer aktuellen Quelle erstellt wurden. Normalerweise sollten diese Fehler nur in Verbindung mit einer anderen Fehlerbehebung behoben werden.

    -Für neue Upstream-Versionen von Paketen, die neue Funktionen bereitstellen, aber keine kritischen Fehler beheben, sollte stattdessen ein Backport angefordert werden.

Entnommen aus der exzellenten Wiki-Seite StableReleaseUpdates .

pl1nk
quelle
11

Ich werde versuchen, Ihre Fragen zu beantworten, basierend auf meinen Erfahrungen aus Ubuntu-Foren und dem Ubuntu-Planeten.

Ich frage mich nur, wie und von wem die passenden Repositories aktualisiert werden.

Die APT-Repos werden vom Verpackungsteam von Ubuntu aktualisiert. Das Verpackungsteam erhält alle vorgelagerten Pakete von Entwicklern, die erste Verpackungstests und andere Dinge durchführen. Dann führt das Testteam die abschließenden Tests durch und gibt ein Startsignal. Das Verpackungsteam und die Testteams sind jedoch sehr vorsichtig in Bezug auf die Abhängigkeiten und deren Nebeneffekte für das stabile System.

Wenn es zu Verzögerungen kommt, liegt das daran, dass der Entwickler die neueste Version nicht auf den entsprechenden Server verschoben hat?

Wenn Sie die Upstream-Änderungen sehen, gibt es Tausende von Entwicklern, die ihre Pakete pushen möchten. Aber nicht allen ist es gelungen in den Mainstream zu kommen, dies liegt an verschiedenen Gründen. Angenommen, Gedit-Anwendung, eine 2.2-Version ist geeignet und funktioniert einwandfrei mit Dbus 2.1 und Gtk 2.4 usw. Wobei als Gedit 2.4-Version (sehr neu) Gtk 2.5 und Dbus2.3 benötigt, um zu funktionieren. Das Testing- und Packaging-Team (auch das Release-Team) akzeptiert dies nicht, da das Ersetzen eines bestehenden Systems mit altem dbus und gtk durch das neue alles andere kaputt macht. Hoffe, Sie haben den Punkt der Hölle der Abhängigkeit erreicht.

Hat der Entwickler noch viel Arbeit damit, das Release in eine Form zu bringen, die das Repository verwenden kann?

Nicht zum vorgelagerten Kanal. Aber zum Veröffentlichungskanal ja :).

PS: Im Vergleich zu dem, was oben erklärt wurde, könnte es jetzt in der Canonical einige Änderungen am Prozess geben. Aber es ist mehr oder weniger dasselbe.

Zenwalker
quelle
6

Die akzeptierte Antwort im als Kommentar geposteten Link fossfreedom ist sehr gut.

Im Allgemeinen werden Paketversionen, die nach dem ersten Teil des Entwicklungsprozesses für neue Versionen veröffentlicht wurden, nicht in den Hauptrepositorys dieser Version angezeigt, sodass eine zuverlässige Ubuntu-Version gründlich getestet werden kann.

Möglicherweise werden einige Pakete im Backports-Repository veröffentlicht, wenn sie erfolgreich in eine zukünftige Ubuntu-Version integriert wurden und wenn die Entwickler glauben, dass sie auch mit früheren Versionen funktionieren. Backports können im Software Center aktiviert und deaktiviert werden (Bearbeiten-> Softwarequellen-> Registerkarte Updates-> Nicht unterstützte Updates).

John S Gruber
quelle
1
Wie an anderer Stelle erwähnt, sind Backports selten und es gibt nicht viele.
Thomas Ward
-3

Die Antwort ist nicht voll.

Es gibt einige Pakete, die über das Software Center in einer Backport-Version installiert werden können. Auf der rechten Seite des Fensters, direkt links neben der Schaltfläche Installieren / Ändern, befindet sich ein Auswahlfeld, in dem Sie die Version ändern können.

Exempli gratia: Default conkyist jetzt 1.8.xund du hast da 1.9.0 (precise-backports)als Backport. Natürlich sollten Backports zuerst aktiviert werden.

Quelle: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

EDIT: Wie unten angegeben, hat nicht jedes Paket einen Backport, aber Sie können manchmal einen frühen Zugriff haben, wenn Sie das Glück haben.

Benjamin
quelle
3
Backports sind nicht für jedes Paket verfügbar ...
Papukaija