Ich bin vielleicht ein bisschen daneben, aber lassen Sie mich sagen, wie wenig ich darüber weiß. Ich werde als Beispiel das Paket nvidia-313
mit Version verwenden313.18-0ubuntu1~xedgers~raring2
Wenn ein Paket für eine bestimmte Ubuntu-Version erstellt wird, gilt Folgendes:
- Architektur, für die es gemacht wurde (zB: 32 Bit, 64 Bit)
- Für welche Veröffentlichung wurde es gemacht (zB: 12.04, 12.10, raring, oneric ..)
- Welche spezifische Version dieses Pakets ist (In meinem obigen Beispiel sehen Sie raring2, was bedeuten würde, dass entweder die 3. Version davon ab 0 oder die 2. Version ab 1 ist. Dies hängt natürlich von der von mir verwendeten PPA ab und was der Betreuer hatte im Sinn)
Was bedeutet das alles? Es garantiert, dass:
Das Paket funktioniert "korrekt" für diese bestimmte Ubuntu-Version mit dieser bestimmten Architektur. Dies setzt voraus, dass die Bibliotheken, die möglicherweise vom Paket verwendet werden, in einer sauberen Umgebung nicht manuell geändert oder anderweitig manipuliert wurden.
Das Paket weiß, für welche Architekturen es sich um eine Version handelt. Wenn es in einem anderen verwendet wird, erhalten Sie eine Warnung oder können einfach nicht installiert werden.
Die meisten PPA-Entwickler und Haupt-Repositorys von Ubuntu verfügen über eine Version eines Pakets. Es könnte dieselbe Version sein (wie ein Nvidia 313 für 13.04, 12.10, 12.04 ...), aber als es gepackt wurde, wurden bestimmte Versionen einiger anderer Pakete (Abhängigkeiten oder Voraussetzungen) und einige spezifische Versionen einiger Bibliotheken verwendet benötigt für diese Version von Ubuntu. Daher wird das gleiche Paket für verschiedene Ubuntu-Versionen angezeigt.
Funktioniert es, wenn es in einer zukünftigen oder älteren Version verwendet wird, für die es gemacht wurde, die meisten mögen es nicht. In einigen Fällen wird es aber zumindest eine Warnung geben. In den meisten Fällen hängt dies wirklich von den Abhängigkeiten des Pakets ab, da dieses Paket, wenn es beispielsweise in 12.04 einige Bibliotheken verwendet hat, die sich zum 13.04 nicht oder nur geringfügig geändert haben, unter 13.04 möglicherweise sogar noch ordnungsgemäß funktioniert (auch wenn dies der Fall ist) wurde für 12.04 gemacht), vorausgesetzt natürlich, es ist mindestens die gleiche Architektur, um andere Probleme zu vermeiden.
Um zu einer bestimmten Frage zu gelangen, die Sie stellen:
Wenn eine Binärdatei in einem Paket auf 10.04 LTS basiert und dieselben Bibliotheken in Ubuntu 12.04 LTS vorhanden sind, garantiert Ubuntu die Kompatibilität?
Wenn in beiden Versionen 10.04 und 12.04 dieselben Bibliotheken mit derselben Version, derselben Architektur (und denselben Vorabhängigkeiten, Versionen davon usw.) vorhanden sind, wird das Paket meiner Meinung nach in beiden Versionen von Ubuntu funktionieren. Dies ist nicht sehr wahrscheinlich, da die Geschwindigkeit, mit der sich eine Linux-Distribution über einen Zeitraum von ein paar Monaten ändert, enorm ist.
Viele Bibliotheken ändern sich, viele Updates werden vorgenommen, viele Verbesserungen werden hinzugefügt. So könnte etwas, das beispielsweise in 10.04 nicht vorhanden war, in 12.04 vorhanden sein, wodurch beispielsweise weniger Bibliotheken benötigt werden (wie wenn ein Paket in 10.04 12 Bibliotheken verwendet hätte, in 12.04 jedoch nur 2, um das zu erreichen) gleiches Ziel). Dies berücksichtigt auch Änderungen an den Tools, die jede App kompilieren und verpacken. Jedes Jahr erscheinen viele neue Techniken, viele Möglichkeiten, Pakete zu optimieren, zu komprimieren, zu lesen usw.
Wenn ich das alles auf mein kleines Wissen stütze, würde ich vermuten, je mehr Zeit zwischen einem Paket auf verschiedenen Ubuntu-Versionen liegt, desto weniger wahrscheinlich ist die Garantie, dass das Paket zwischen beiden Ubuntu-Versionen funktioniert.