Der Wunsch nach neueren Paketen ist unter jedem Betriebssystem ein häufiges Problem. Der Veröffentlichungszyklus von Debian betrug in den letzten Jahren durchschnittlich 2 Jahre. Gegen Ende dieses Zyklus ist dies möglicherweise ein dringlicheres Problem. Eine Möglichkeit, dies zu mildern, besteht darin, gegen Ende des stabilen Release-Zyklus zu testen, wenn die nächste Version nahezu stabil ist. Aus der Frage geht nicht hervor, ob es sich allgemein um stabiles und / oder instabiles Testen handelt. Unabhängig davon kann die neueste Version ein Problem sein, selbst wenn sie instabil ausgeführt wird, da die neueste Version möglicherweise noch nicht gepackt ist. Debian-Entwickler / Packager sind Freiwillige, daher können sie sich langweilen oder mit anderen Dingen beschäftigt sein, was dazu führt, dass das Paket nachlässt.
Der Einfachheit und Konkretheit halber gehe ich im Folgenden davon aus, dass der Plan darin besteht, ein Paket auf stabil zurückzustellen, dies gilt jedoch allgemeiner. Also, hier ist, was ich mache, wenn ich eine neuere Version von Software möchte, die nicht in stabiler Reihenfolge vorhanden ist, in ungefährer Reihenfolge.
Suchen Sie nach dem Paket in Debian Backports . Manchmal finden Sie ein Paket, das aktuell genug ist, um Ihre Zwecke zu erfüllen. Es ist jedoch häufig der Fall, dass diese Pakete im Vergleich zur instabilen oder experimentellen oder vorgelagerten Version veraltet sind.
Versuchen Sie, das Paket direkt aus dem Test, instabil oder experimentell zu installieren. Wenn Stable nicht stark von der Version abweicht, von der Sie installieren möchten, funktioniert dies möglicherweise. Sie werden wissen, dass dieser Ansatz schlecht ist, wenn das System versucht, Basispakete von der neueren Version zu installieren oder zu aktualisieren. Angenommen, Sie versuchen dann, von instabil zu installieren
apt-get install packagename/unstable
ist das erste, was Sie versuchen sollten. Bei Versionen von apt in stabil schlägt dies häufig fehl, da andere Pakete von instabil erforderlich sind, und diese Beschwörung erhöht nur die Präferenz von packagename
ausreichend hoch, damit es in instabil installiert werden kann. Wenn Sie nicht verstehen, was dies bedeutet, gehen Sie weg und lesen Sie man
apt_preferences
. Fügen Sie weiterhin Abhängigkeiten von instabil hinzu und stellen Sie sicher, dass nicht versucht wird, Basispakete zu aktualisieren. Wenn beispielsweise versucht wird, libc6 oder X oder KDE oder Gnome zu aktualisieren, brechen Sie den Vorgang sofort ab. Es ist normalerweise in Ordnung, wenn versucht wird, andere Pakete von demselben Quellpaket zu aktualisieren, da diese normalerweise eng miteinander verbunden sind. Um zu sehen, von welchem Quellpaket ein Binärpaket abhängt, gehen Sie wie folgt vor
apt-cache showsrc packagename
Da viele Dinge von der GNU C-Bibliothek (libc6) abhängen, war dies früher ein Problem. In jüngerer Zeit scheint sich die API stabilisiert zu haben, so dass es jetzt häufiger möglich ist, nicht mehr aktualisiert zu werden. Wenn ein Paket seine Laufzeitabhängigkeiten von stabil erfüllt, aber immer noch nicht richtig funktioniert, melden Sie einen Fehler. Wenn der Packager Ihnen sagt, dass es sich nicht um einen Fehler handelt, sind sie falsch. :-)
Backportieren Sie das Paket selbst vom Testen, instabil oder experimentell.
Wie oben erwähnt, sind Backports eine Option, aber häufig sind diese Pakete im Vergleich zur instabilen oder experimentellen oder Upstream-Version veraltet.
Dies kann häufig eine rekursive Abhängigkeits-Build-Schleife erfordern. Sie müssen zuerst die Build-Abhängigkeiten mit abrufen
apt-get build-dep packagename
Wenn dies fehlschlägt, weil eine der Abhängigkeiten nicht aktuell genug ist, müssen Sie diese Abhängigkeit zuerst zurückportieren. Dies kann außer Kontrolle geraten. Normalerweise gebe ich auf, wenn ich mit mehr als 2 Rekursionsstufen zu tun habe. Beachten Sie jedoch, dass die tatsächlichen Abhängigkeiten nicht unbedingt so eng sind wie angegeben, d. H. Eine ältere Version funktioniert möglicherweise. Der Packager versucht oft nicht, die älteste Version einer Build- (oder sogar Laufzeit-) Abhängigkeit zu finden, die funktioniert.
Überprüfen Sie die Verfügbarkeit von Paketen aus dem entsprechenden Upstream. Im Idealfall passen diese zu Ihrer Distributionsversion, aber Sie können sie bei Bedarf möglicherweise auch neu erstellen.
Erstellen Sie Pakete für die aktuellere Version der Software als die neuesten Pakete in testing / unstable / experimental. Dies kann relativ schwierig sein, ist aber manchmal überraschend machbar. Das erste, was Sie beachten müssen, ist, dass Sie, wenn Sie versuchen, eine neuere Version eines Pakets zu verpacken, das bereits in Debian enthalten ist, bereits mit einem großen Vorteil beginnen, nämlich dass Sie über die vorhandene Verpackung verfügen, mit der Sie arbeiten können. Mach einfach
apt-get source packagename
und apt-get
lädt das entsprechende Quellpaket herunter, einschließlich des Debian-Unterverzeichnisses, in dem sich die Verpackung befindet. Beachten Sie außerdem, dass sich diese Verpackung heutzutage häufig in einem Verson Control-Repository befindet (Git scheint bei Debian beliebt zu sein), und Stable Apt (derzeit 0.8.10.3 ) zeigt Ihnen hilfreich an, wo sich dies befindet, wenn Sie es aufrufen
apt-get source
. Sie sollten sich dies ansehen, da die Verpacker möglicherweise über neuere Versionen der Verpackung verfügen, als sie einem freigegebenen Paket entsprechen. Z.B.
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
Alternativ können Sie einfach verwenden
apt-cache showsrc mercurial | grep Vcs
um das Repository aufzulisten.
Wenn das Paket nicht mehr aktuell ist, müssen Sie möglicherweise Änderungen am
Paket vornehmen , die angewendeten Patches aktualisieren, aber es ist normalerweise immer noch ein guter Ausgangspunkt
. Debian scheint dabei zu sein, die Paketverwaltung für
Quilt nach dem Format dpkg-source 3.0 (Quilt) zu standardisieren , sodass dies bei der Patch-Aktualisierung hilfreich ist.
Ich werde mit einem realen Beispiel schließen, wie ich das Debian-Paket von
pgf zurückportiert habe . Die letzte verpackte Version von pgf war 2008 2.00 und seitdem wurde 2.10 veröffentlicht. Siehe die Diskussion in Bitte aktualisieren Sie auf die neueste stabile Version von pgf (2.10) und meinen Folgefehler mit einem Patch, pgf: Patches gegen 2.0 Debian-Verpackung . Wie sich herausstellte, war die Debian-Verpackung von pgf sehr einfach, und ich musste nur eine Zeile in der 2.10-Verpackung ändern, damit es funktioniert. Am Ende habe ich auch alle
fusseligen Beschwerden unterdrückt , aber das war streng freiwillig.
Sie können sicherlich Ihre eigenen Pakete erstellen, und das wird funktionieren. Ich würde jedoch empfehlen, zuerst Backports zu verwenden, wenn dort das verfügbar ist, was Sie möchten.
Backports werden von Debian verwaltet und Sie erhalten Sicherheitsupdates für sie.
quelle
Das Erstellen eigener Pakete ist der richtige Weg (IMHO). Abhängig vom Alter der Debian-Version eines Pakets und den Änderungen kann dies so einfach sein wie das Ersetzen des Dateinamens des Quell-Tarballs in der Paketbeschreibung. Im schlimmsten Fall können Sie ihn weiterhin als Vorlage für Ihre eigene Version verwenden.
quelle
Was machst du, wenn du immer die neueste Version brauchst?
Verwenden Sie, wie bereits erwähnt , Backports.
Da nur eine kleine Teilmenge der Debian-Pakete zurückportiert wird, empfehle ich die Verwendung von Debian-Tests . Es bietet eine gute Balance zwischen Stabilität und Aktualität und ist in gewisser Weise wie eine rollende Distribution.
Wenn Sie etwas gewagter sind, verwenden Sie Debian Unstable . Es wird behauptet, einigermaßen stabil zu sein. Einige behaupten sogar, es sei stabiler als die "stabilen" Veröffentlichungen anderer Distributionen. Auf jeden Fall landen in Unstable normalerweise neue Paketversionen. Sie sitzen normalerweise etwa 10 Tage dort, um Tests zu ermöglichen, bevor sie zu Testing migrieren.
Selbst wenn Sie diese beiden verwenden, haben Sie möglicherweise immer noch nicht die neuesten Versionen. In diesem Fall werfen Sie einen Blick auf Debian Experimental . Es wird normalerweise verwendet, wenn die neuen Pakete für die normalen Archive zu störend sind (Instabil und Testen).
Wenn Experimental immer noch nicht genügend neue Softwareversionen hat, schauen Sie sich die PPAs von Ubuntu an . Ich habe dort Softwareversionen gesehen, die jünger sind als das, was allen oben genannten Archiven fehlt. Verwenden Sie es jedoch mit Vorsicht, da Ubuntu nicht zu 100% mit Debian kompatibel ist (aber in den meisten Fällen sollte es keine Probleme geben).
Wenn das oben genannte fehlschlägt, erstellen Sie einfach Ihre eigenen Pakete, wie erwähnt .
quelle