Aus Linux-Magazin 11/2002

Debian-Releases mischen mit APT-Pinning

Ein stabiles Debian-System bedeutet oft Verzicht: Brandneue Software gibt es laut Debian-Philosophie nicht, nur lang erprobte. Wer dennoch dem Reiz neuer Features erliegt, kann sich ohne Distributions-Upgrade oder manuelles Kompilieren aus neueren Releases bedienen – APT-Pinning macht's möglich.

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
Tablle 1: Pin-Definition

Tablle 1: Pin-Definition

Prioritäten beim APT-Pinning

Prioritäten beim APT-Pinning

Experimental-Pakete und Distributions-Downgrade

Nach dem gleichen Muster lassen sich einzelne Pakete aus »experimental« installieren. In diesem Bereich liegen Pakete, die für »unstable« noch nicht ausreichend stabil sind oder sonst noch eklatante Fehler enthalten. Um solche Pakete überhaupt in der lokalen APT- Datenbank zu halten, ist eine Zeile an die »/etc/apt/sources.list« anzuhängen und anschließend ein »apt-get update« durchzuführen:

deb http://source.rfc822.org/debian 
../project/experimental main

Auch das Downgrade auf eine ältere Distribution – mindestens aber Debian Woody 3.0 – ist mit APT-Pinning zu bewältigen. Normalerweise ist es nicht möglich, direkt auf eine ältere Version zurückzuschalten oder ältere Pakete zu installieren ohne manuell jedes einzelne Paket zu ersetzen.

Als Beispiel: Es wurde automatisch von Woody (Debian 3.0) auf »testing« aufgerüstet, dann ein Distributions-Upgrade (»apt-get dist-upgrade«) durchgeführt. Danach stellte sich aber heraus, dass die Distribution »testing« doch nicht so rund läuft, wie sie sollte, also wieder zurück zu Woody. Das Verfahren: Mit dem unten folgenden Eintrag setzt man alle Pakete auf die Distribution »stable« (also Woody) fest, und zwar mit einer derart hohen Priorität, dass gegebenenfalls sogar ältere Versionen von Paketen vorgezogen und installiert werden.

Um zu verhindern, dass dieser Eintrag bei einer neuen Release von Debian doch wieder das Installieren von neueren Paketversionen als den gewünschten erlaubt, wird die Distribution gleichzeitig auf 3.0 festgelegt. Der Stern sorgt dafür, dass Security-Updates noch akzeptiert werden, die als Version 3.0r1, 3.0r2 oder ähnlich erscheinen:

Package: *
Pin: release a=stable,v=3.0*
Pin-Priority: 1001

Der anschließende Aufruf von »apt-get dist-upgrade« schaltet das System dann auf Woody zurück. (mdö)

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben