Lösung 1:
Viele Leute scheinen Angst davor zu haben, Stable mit Testing zu vermischen, aber ehrlich gesagt ist Testing an sich ziemlich stabil, und mit den richtigen Einstellungen und Lösungsprüfungen können Sie den "Stabilitätsdrift" vermeiden, der Ihre Kernpakete auf den instabilen Pfad bringt.
"Testen ist ziemlich stabil??" , du fragst. Ja. Damit ein Paket von Unstable zu Testing migriert werden kann, muss es an 10 aufeinanderfolgenden Tagen null offene Fehler aufweisen. Es besteht die Möglichkeit, dass, besonders bei den bekannteren Paketen, jemand einen Fehlerbericht für eine instabile Version einreicht, wenn etwas nicht stimmt.
Auch wenn Sie die Umgebungen nicht mischen möchten, ist es immer noch schön, dort die Option zu haben, falls Sie auf etwas stoßen, das eine neuere Version als die in Stable erfordert.
Hier ist, was ich für die Einrichtung empfehle:
Erstellen Sie zunächst die folgenden Dateien in /etc/apt/preferences.d
:
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(Haben Sie hier keine Angst vor dem instabilen/experimentellen Zeug. Die Prioritäten sind niedrig genug, dass es niemals automatisch irgendwelches Zeug installieren wird. Sogar der Testing-Zweig wird sich verhalten, da er nur die Pakete installieren wird, die Sie sein möchten beim Testen.)
Erstellen Sie nun ein passendes Set für /etc/apt/sources.list.d
:
stable.list
:Kopie von Ihrem Original /etc/apt/sources.list
. Benennen Sie die alte Datei in etwas wie sources.list.orig
um .
testing.list
:Das gleiche wie stable.list
, außer bei testing
.
unstable.list
:Das gleiche wie stable.list
, außer bei unstable
, und entfernen Sie die Sicherheitslisten.
experimental.list
:Das gleiche wie unstable.list
, außer bei experimental
.
Sie können auch einen oldstable
hinzufügen in sources.lists.d
und preferences.d
(verwenden Sie eine Priorität von 1), obwohl dieser Moniker dazu neigt, vor dem nächsten stabilen Zyklus abzulaufen und zu verschwinden. In solchen Fällen können Sie http://archive.debian.org/debian/
verwenden und die Debian-Version "hardkodieren" (Etch, Lenny, etc.).
Um die Testversion eines Pakets zu installieren, verwenden Sie einfach aptitude install lib-foobar-package/testing
, oder springen Sie einfach in die GUI von aptitude und wählen Sie die Version in den Paketdetails aus (drücken Sie die Eingabetaste bei dem Paket, das Sie sich ansehen).
Wenn Sie Beschwerden über Paketkonflikte erhalten, sehen Sie sich zuerst die Lösungen an. In den meisten Fällen lautet die erste „Diese Version nicht installieren“. Erfahren Sie, wie Sie die Resolver-Optionen zum Akzeptieren/Ablehnen pro Paket verwenden. Wenn Sie beispielsweise foobar-package/testing installieren und die erste Lösung "foobar-package/testing nicht installieren" lautet, dann markieren Sie diese Auswahl als abgelehnt, und die anderen Lösungen werden nie wieder auf diesen Pfad wechseln. In solchen Fällen müssen Sie wahrscheinlich ein paar andere Testpakete installieren.
Wenn es zu heikel wird (wie es versucht, libc oder den Kernel oder ein anderes riesiges Kernsystem zu aktualisieren), können Sie diese Upgrade-Pfade entweder ablehnen oder das ursprüngliche Upgrade einfach ganz beenden. Denken Sie daran, dass nur Dinge auf Testing/Unstable aktualisiert werden, wenn Sie dies zulassen.
BEARBEITEN:Einige Prioritäts-Pins korrigiert und die Liste aktualisiert.
Lösung 2:
In /etc/apt/apt.conf.d
fügen Sie die folgende Datei hinzu
99defaultrelease
:
APT::Default-Release "stable";
in /etc/apt/sources.list.d
- URLs zum Testen / instabile Quellen hinzufügen
stable.list
:
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
laufen
apt-get update
und installieren Sie dann, was Sie brauchen, mit
apt-get -t testing install something
Seien Sie sehr vorsichtig, wenn Sie Sachen installieren, die viele Abhängigkeiten haben. Tun Sie dies vorzugsweise nicht in der Produktion.
Sie können Ihr Glück auch bei Backports oder ähnlichen Repositorys versuchen.
Lösung 3:
apt_preferences
Definieren Sie in der Datei /etc/apt/preferences die Standardstufe, auf die das System ein „sicheres Upgrade“ durchführen soll:
man apt_preferences
Mit apt_preferences kann man viel machen, aber der Einfachheit halber...
Ich musste ein einzelnes Paket (autoMysqlBackup) installieren, das nur in Testing verfügbar war. Die Lösung bestand darin, Folgendes zu /etc/apt/preferences hinzuzufügen:
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Wenn mehrere Repositories zu /etc/apt/sources.list hinzugefügt wurden, wird aptitude jetzt nur auf Ihre angegebene Version aktualisieren, obwohl die Repos der späteren Versionen aufgelistet sind (in diesem Fall 'stable').
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
Um dieses Paket zu installieren, müssen Sie also nur Folgendes tun:
$ aptitude install -t testing packageName
Lösung 4:
Für das, was es wert ist, der allgemeine Ratschlag, den ich immer gesehen habe, lautet:„Mische Stable nicht mit irgendetwas.“ Die meisten Tutorials für gemischte Systeme sind für das Mischen von Tests und Unstable.
Der Grund scheint zu sein, dass, wenn Sie stable mit testing mischen, sehr einfache Pakete (wie libc6) Updates benötigen (um Software von Testing zu installieren), und sobald diese Basispakete zu Testing wechseln, kann das gesamte System in diese Richtung abdriften.
Hier sind zwei Alternativen:
- Verwenden Sie Backports.
- Installieren Sie eine Quellcode-Zeile aus Testing und versuchen Sie, die spätere gewünschte Version aus dem Quellcode zu erstellen.
Lösung 5:
Die Debian-Dokumentation ist zu diesem Thema umfangreich und ich rate dringend, sich darin zu vertiefen, da sie die Schönheit des Debian-Systems wirklich enthüllen wird.
Werfen Sie einen Blick auf Wie man ein gemischtes System verwaltet, dort wird alles erklärt, was Sie wissen müssen.