AA_nail_barunpatro_sxc_993864.jpg

© Barunpatro, sxc.hu

Festgenagelt

Tricks zum Mischen von Debian-Releases

22.05.2012
Dank Pinning mischen Sie in behutsamen Dosen ein stabiles Debian mit ausgesuchten topaktuellen Komponenten – und profitieren dabei trotzdem von problemlosen Updates.

Zwar steckt bei vielen Distributionen ein Debian unter der Haube, doch war das Original selbst als Desktop-Distribution lange weniger populär als seine diversen wie die Abkömmling: Insbesondere der Stable-Zweig enttäuschte im Desktop-Einsatz durch mangelnde Aktualität der Programme. Für den Server-Einsatz boten die Stable-Pakete andererseits aufgrund der Stabilität oft die ideale Basis. Desktop-Nutzer wichen auf ein Derivat aus oder nutzten das Unstable-Repository. Im Gegensatz zu früheren Jahren gilt Debian Unstable übrigens zum gegenwärtigen Zeitpunkt durchaus als brauchbare Basis.

Mischmasch

Möchten Sie trotzdem grundsätzlich beim Stable-Release bleiben und benötigen nur das eine oder andere Paket in einer neueren Version, dann finden Sie das Gewünschte häufig im Testing-, Unstable- oder Experimental-Zweig. Dabei brauchen Sie das Paket nicht manuell an der Paketverwaltung vorbei aus dem Quellcode oder einer externen Quelle zu installieren, was immer die Stabilität des Gesamtsystems gefährdet.

Das intelligente Paketmanagement von Debian ermöglicht das individuelle Mischen von Paketen aus den verschiedenen Zweigen. Allerdings sind dabei Probleme mit den Abhängigkeiten vorprogrammiert. Um dem vorzubeugen, erweitern Sie als erstes die Konfigurationsdatei /etc/apt/apt.conf um den folgenden Eintrag:

APT:: Default-Release "stable"

Damit setzen Sie ein so genanntes Target-Release, mit dem Sie der Paketverwaltung mitteilen, dass sie beim Holen von Paketen das Stable-Release bevorzugen soll, selbst wenn für ein Paket mehrere passende Versionen existieren. Apt verwendet dann beim Aktualisieren oder Installieren stets die hier angegebene Version und ignoriert etwaige neuere Pakete aus anderen Releases.

Alternativ übergeben Sie das Ziel-Release auf der Kommandozeile an das Programm Apt-get als Parameter. Möchten Sie tatsächlich ein Paket in einer neueren Version installieren, teilen Sie Apt-get beim Aufruf explizit den Wechsel auf das neuere Release für das betreffende Pakete mit. Listing 1 zeigt zwei alternative Aufrufe für diesen Zweck.

Listing 1

sudo apt-get -t testing install icedove
sudo apt-get install icedove/testing

Mit beiden Kommandos weisen Sie Apt-get an, das Paket icedove (die Thunderbird-Variante von Debian) entgegen der Voreinstellung mitsamt den zugehörigen Abhängigkeiten aus dem Unstable-Zweig zu installieren. Dieses Verfahren des manuellen Mischens zweier Releases funktioniert zwar im Einzelfall, birgt aber Gefahren. Je mehr Pakete Sie aus Stable und Unstable oder Stable und Testing mischen, um so mehr Abhängigkeiten zieht Apt-get nach und installiert dazu weitere Bibliotheken, die ihrerseits wieder Updates erforderlich machen.

Die Praxis lehrt, dass dieses Verfahren nur im begrenzten Umfang zuverlässig funktioniert – und wenn, dann nur für zwei Releases. Mischen Sie dagegen Pakete aus Stable, Unstable und Testing oder gar Experimental, bemerken Sie mit Sicherheit relativ bald Probleme bei der Stabilität. Ein vollständiges Release-Update auf Unstable mittels apt-get dist-upgrade bringt in diesem Fall meist ein zuverlässigeres System hervor.

Pinning

Es gibt aber noch einen weiteren Weg, Pakete aus verschiedenen Releases zu mischen: Pinning (genauer Apt-Pinning) ist eine Technik, mit der Sie konkret steuern, welche der in der Datei /etc/apt/sources.list eingetragenen Paketquellen Apt beim Installieren eines Paketes bevorzugt.

Enthält die Konfiguration mehrere Paketquellen – dabei darf es sich durchaus unterschiedliches Releases handeln, etwa Stable und Testing – dann existiert ein Paket höchstwahrscheinlich in verschiedenen Versionen. Apt ermittelt per Default für jede einzelne Version des Paketes eine Priorität und installiert dann die Version mit der höchsten Vorrangstufe.

Die Apt-Konfigurationsdatei /etc/apt/preferences dient dem expliziten Festlegen solcher Stellenwerte und überschreibt die automatisch ermittelte Priorität, was Ihnen eine feinere und bessere Kontrolle darüber erlaubt, welche Version eines Paketes Sie installieren. Passt in der Datei preferences kein Eintrag auf die zu installierende Software oder existiert keine solche Datei, verwendet Apt eine Default-Priorität (siehe Tabelle "Default-Prioritäten").

Default-Prioritäten

Priorität Bedeutung
< 0 Apt installiert das Paket niemals.
1 bis 100 Apt installiert das Paket nur, wenn es noch keine installierte Version des Paketes gibt.
101 bis 500 Apt installiert das Paket, es sei denn, die installierte Version ist neuer oder es existiert in einem anderen Release (bezogen auf Stable, Testing, Unstable) eine neuere Version.
501 bis 990 Apt installiert das Paket, es sei denn, es gibt eine zum Target-Release gehörige Version oder die installierte Version ist neuer.
991 bis 1000 Apt installiert das Paket auf jeden Fall, es sei denn die installierte Version ist neuer.
> 1000 Apt installiert das Paket auf jeden Fall, auch wenn das Installieren ein Downgrade nach sich zieht.

Seit Debian 6 geschieht das Pinning übrigens nicht mehr explizit in einer einzigen Datei /etc/apt/preferences, sondern in Form mehrerer Dateien im Verzeichnis /etc/apt/preferences.d. Jede einzelnen darf beliebig viele Regeln enthalten. Die Namen der Konfigurationsdateien dürfen Sie frei wählen. Jede Regel besteht aus einem Block der in Listing 2 gezeigten Form.

Listing 2

Package: Paket
Pin: PIN-Definition
Pin-Priority: Priorität

In die erste Zeile Packagegehört immer der Name des Paketes, der gegebenenfalls Jokerzeichen enthalten darf, zum Beispiel den Asterisk (*) für alle Pakete. In der Zeile Pin: definieren Sie das Kriterium für die Installation der Software: Eine solche umfasst bei Bedarf das Release, die Version oder die Herkunft (engl.: "origin"), wobei Sie Wildcards verwenden dürfen. Die Tabelle "Pinning-Parameter" zeigt mögliche Optionen.

Pinning-Parameter

Parameter Schlüsselwort Bedeutung Beispiel
a= archive Zweig unstable, testing
c= component Komponente main, contrib, non-free
l= label Bezeichner Debian, DeMudi
n= name Codename wheezy, sid
o= origin Herkunft Debian, DeMudi
v= version Version 6.0.3

In der dritte Zeile folgt schließlich die Priorität, also der numerischen Wert gemäß der Angaben aus der Tabelle "Default-Prioritäten". Das Zusammenwirken der einzelnen Möglichkeiten und Optionen wird verständlicher, wenn Sie sich einige Beispiele ansehen. Das etwas komplexere Beispiel aus Listing 3 zeigt die Möglichkeiten von Apt-Pinning auf.

Listing 3

Package: icedove
Pin: version 3.0.*
Pin-Priority: 1001
Package: *
Pin: origin ""
Pin-Priority: 999
Package: *
Pin: release unstable
Pin-Priority: 20

Apt arbeitet die Einträge in der angegebenen Reihenfolge von oben nach unten ab. Dabei ignoriert es alle weiteren Einträge, sobald es auf einen für das Paket oder die Gruppe passenden Eintrag trifft. Die Konfiguration bewirkt aufgrund des ersten Eintrags, dass Apt immer die aktuellste Version von Icedove 3.0.x installiert, also selbst dann, wenn aufgrund eines in den Paketquellen vorhandenen Unstable-Releases eine Version 3.1 existiert. Der Eintrag bewirkt sogar, dass das Paketmanagement einen Downgrade auf 3.0.x vornimmt, sobald Sie mit Apt-get versuchen, das Paket icedove zu installieren, dieses aber bereits in Version 3.1 eingrichtet ist.

Der zweite Eintrag sorgt dafür, dass jedes andere auf dem lokalen System installierte Paket eine höhere Priorität erhält. Das gewährleistet wiederum, dass der Paketmanager bei einem Update oder beim Auflösen von Abhängigkeiten nur wenige oder gar keine neuen Versionen aus einem Online-Repository holt.

Der dritte Eintrag der Konfiguration sorgt schließlich dafür, dass Apt ein auf dem lokalen System noch gar nicht installiertes Paket aus einem in Ihrer /etc/apt/sources.list aufgeführten Unstable-Release installiert, sobald Sie es explizit zum Installieren aufrufen. Bei einem bereits installierten Paket würde Apt allerdings aufgrund der höheren Priorität des zweiten Eintrags ein bereits installiertes Paket aus dem Stable-Release behalten, obwohl es sich um eine ältere Version handelt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...