Pakete werden so benannt, dass der Übergang zwischen zwei Hauptversionen eines Pakets erleichtert werden musste (oder musste) und die dafür erforderliche Zeit voraussichtlich lang ist. Während der Übergangszeit werden sowohl neue als auch alte Versionen verfügbar gehalten, mit der Maßgabe, dass die älteren Versionen zu einem späteren Zeitpunkt eingestellt werden.
Manchmal tritt die Übergangszeit während der aktuell verwendeten Systemversion auf. Bei einigen Paketen kommt es häufig genug vor, dass in jeder neuen Systemversion Übergangspaketversionen zu erwarten sind . Software-Entwicklungstools fallen häufig in diese Kategorie, da ein Upgrade auf neue Tools nach dem gleichen Zeitplan wie bei System-Releases möglicherweise nicht praktikabel ist. Die Abhängigkeit meines Unternehmens von bestimmten Versionen von GCC, Autoconf und Perl beträgt möglicherweise 5 Jahre, während sich mein Betriebssystem in einem 3-Jahres-Aktualisierungszyklus befindet. Es erleichtert mir daher die Einführung neuer Betriebssysteme, wenn meine älteren Versionen einiger Pakete zusätzlich zu den zum Zeitpunkt der Entwicklung des neuen Betriebssystems aktuellen Versionen enthalten sind.
In anderen Fällen haben sich diese wichtigen Versionsänderungen vor langer Zeit ereignet, und jetzt ist jeder auf der aktuellen Version. Dies ist beispielsweise bei Apache der Fall. Die Änderung von 1.3 auf 2.0 war aus Kompatibilitätsgründen weitaus umfangreicher als alle Änderungen an der 2.x-Version, sodass es nicht länger erforderlich war, in einer bestimmten Betriebssystemversion mehrere Apache-Versionen anzubieten, sobald alle Versionen von 1.3 entfernt waren. Wenn Sie jedoch alle Benutzer des apache2
Pakets dazu gebracht haben, gibt es kein gutes Argument , das Paket wieder in "Nur" umzubenennen apache
. Das würde einen unnötigen Upgrade-Aufwand verursachen. Wo in der Vergangenheit ein Bedürfnis nach zeitweiliger Bereitstellung von zwei parallelen Versionen vermutet wurde, wird sich dieses Bedürfnis wahrscheinlich in Zukunft wiederholen.
Diese Methode zur Benennung von Paketen tritt normalerweise nur bei Bibliotheken oder wichtigen Kernpaketen auf. Für weitere Peripherie-Pakete wird erwartet, dass Sie nur auf die jeweils aktuelle Version aktualisieren.
Bibliotheken werden auf diese Weise häufiger behandelt als Anwendungen, da andere Pakete von ihnen abhängen. Je beliebter eine Bibliothek ist, desto unpraktischer ist es, zu verlangen, dass jedes andere Paket, das von ihr abhängt, neu erstellt und mit ihr verknüpft wird, damit die Bibliothek ohne diese Übergangszeit schrittweise auf eine neue Hauptversion aktualisiert werden kann.
Wenn eine Anwendung auf diese Weise behandelt wird, liegt dies häufig daran, dass sie ein Bibliothekselement enthält. Beispielsweise ist Apache nicht nur ein Webserver, sondern bietet auch eine Entwicklungs-API für die Plugins. ( mod_foo
und so weiter.) Wenn jemand ein altes mod_something
mit dem Apache 1.3-Plugin ABI verknüpft hat und es nicht auf die Verwendung der neueren 2.0-API aktualisiert hat, ist es praktisch, wenn Ihr Betriebssystem weiterhin den alten Apache 1.3 anbietet, bis alle Plugin-Ersteller eine Chance haben um ihre Plugins zu aktualisieren.