Bis zum Erscheinen eines Nachfolgers werden stabile Debian-Releases fast nur mit Sicherheits- und Stabilitäts-Updates versorgt, neue Pakete oder ganze Paketgruppen gibt es nicht. Werden nur wenige Features des Nachfolgers benötigt, ist ein Update des gesamten Systems auch nicht gerade sinnvoll. Wer dennoch nicht auf Neuerungen verzichten möchte, muss sich also etwas einfallen lassen. Seit Debian Woody ist es leichter, mehrere Debian-Releases ab 3.0 sinnvoll zu mischen, etwa um Mozilla 1.1 auch unter Woody einzusetzen.
Beim manuellen Mischen gibt es sehr schnell Probleme bei den Bibliotheks-Abhängigkeiten, doch »apt-get« kann das vermeiden. Mit dem Eintrag »APT:: Default-Release "stable";« in »/etc/apt /apt.conf« wird »apt-get« mitgeteilt, dass normalerweise die Release »stable« verwendet werden soll, und zwar unabhängig davon, welche anderen Versionen zusätzlich in der »/etc/apt/sources.list« angegeben sind. Wenn Pakete aktualisiert oder installiert werden sollen, verwendet »apt-get« die so angegebene Version und ignoriert neuere Pakete aus anderen Distributionen.
Versionen-Mix
Ist ein Paket aus einer neueren Distribution zu installieren, wird der Wechsel auf eine andere Release »apt-get« per Kommandozeile mitgeteilt. Er gilt dann nur für das angegebene Pakete und mögliche Abhängigkeiten, das Basissystem bleibt »stable«. Für den Aufruf gibt es zwei Möglichkeiten, hier am Beispiel von Mozilla aus »unstable« gezeigt:
apt-get install mozilla/unstable
apt-get -t unstable install mozilla
Beide Befehle bewirken, dass »apt-get« die Voreinstellung verlässt und versucht, das Mozilla-Paket und die erforderlichen Abhängigkeitspakete aus »unstable« zu installieren.
Vor der Nutzung dieser Technik sei jedoch gewarnt. Je mehr stabile und instabile Pakete durchmischt werden, desto größer wird die Gefahr: Immer mehr neue Bibliotheken sind einzuführen, die teilweise weitere Updates nach sich ziehen. Diese Mixtur kann insgesamt instabiler sein als die Distribution »testing«, in der Pakete aus »unstable« nach einer Weile mehr oder weniger automatisch aufgenommen werden.
Auch funktioniert das Mischen nur beim direkten Aufruf von »apt-get«, die gängigen Frontends beherrschen den Spagat nicht. In einem solchen Mischsystem sollte daher nur »apt-get« benutzt werden, nicht »dselect« oder »aptitude«.
Pinning im Detail
Eine erheblich flexiblere Möglichkeit, um zwei oder mehr Distributionen zu mischen, bietet das Pinning-Feature von »apt-get«. Das Festsetzen geht dabei bis zu den Paketnamen, Distributionen, Herstellern und Versionen. Für jeden Eintrag wird eine Priorität vergeben, mit der sich das Verhalten von »apt-get« steuern lässt. Mit dieser Methode kann man wesentlich differenzierter mischen als mit dem Festsetzen der verwendeten Distribution. Die Einstellungen werden als Block in der »/etc/apt/preferences« eingetragen:
Package: Paket
Pin: PIN-Definition
Pin-Priority: Priorität
Die erste Zeile enthält den Namen des Pakets, wobei auch Wildcards einsetzbar sind. Die Pin-Definition beschreibt die Version und die zu verwendende Debian-Release. Die Syntax ist in der Tabelle 1 näher beschrieben. Auch hier sind Wildcards erlaubt.
Falls die Version angegeben wird, reicht der Versions-String des jeweiligen Pakets aus. Die Priorität hingegen ist numerisch, dort ist eine positive Ganzzahl anzugeben. Eine Priorität unter 100 besagt, dass die Pakete nicht installiert werden. Die Grenzwerte für die einzelnen Modi stehen in Tabelle 2.
Als Beispiel sind »stable« und »unstable« zu mischen, »apt-get« soll jedoch für die normale Installation »stable« nicht verlassen. Dafür richtet man einen Pinning-Eintrag für »unstable« ein, der eine Priorität unter 100 enthält: »apt-get« interpretiert ihn so, dass solche Pakete nicht installiert werden sollen.
Package: *
Pin: release a=unstable
Pin-Priority: 20
Der folgende Eintrag verhindert, dass ein neuerer Mozilla als Version 1.0.0 installiert wird:
Package: mozilla*
Pin: version 1.0.0*
Pin-Priority: 999
Prioritäten beim APT-Pinning