Debian Testing auf Stable Installieren
Manchmal braucht man ein Paket das es noch nicht im Stable Release von Debian gibt, aber in Testing oder auch Unstable schon. Wenn man sich sicher ist das es ohne nicht geht kann man es auch aus einer dieser Distributionen installieren. Für mich war dies der Fall als ich pbzip2 installieren wollte, aber in Lenny nur die Version 1.0.2 vorhanden ist. Da ich sie direkt beim Aufruf von tar verwenden wollte, benötigte ich die aktuelle 1.0.5 Version die derzeit im Testing (Squeeze) vorhanden ist. Hier also die Anleitung wie man das Paket aus Squeeze in sein Debian Stable Lenny installiert ohne zu große Probleme mit den gemischten Versionen zu bekommen.
Um Pakete aus Testing zu installieren muss man die Source zur apt sources.list hinzufügen. Um damit nicht gleich das komplette System auf testing upzudaten muss man apt sagen welche Distribution als Default benutzt werden soll. z.B. APT::Default-Release “stable”; Um sich die derzeitige apt config anzusehen kann man das folgenden eingeben:
$ apt-config dump
Bei mir fehlte hier der Punkt APT::Default-Release. Die Anpassung kann man entweder in der /etc/apt/apt.conf machen oder eine neue Datei unter /etc/apt/apt.conf.d/ anlegen und dort eintragen.
Da ich unter /etc/apt/ keine apt.conf habe, entschied ich mich für die zweite Lösung.
$ echo 'APT::Default-Release "stable";' > /etc/apt/apt.conf.d/71default
Wenn man jetzt noch einmal apt-config dump aufruft taucht der Punkt auf. Jetzt noch die sources.list um die Punkte für Testing erweitern und schon kann man Pakete aus Testing installieren. Hierzu kopiere ich alle Zeilen die schon drin stehen, packe sie ans Ende der Liste und ersetze lenny (stable) durch squeeze (testing). Anmerkung für Hetzner Kunden: Der Hetzner eigene Mirror hat scheinbar noch keine Squeeze Daten. Zum Abschluss noch ein aptitude update.
$ nano /etc/apt/sources.list $ aptitude update
Jetzt kann auch Pakete aus Squeeze installieren.
$ aptitude install paket/testing
Hierbei werden keine Abhängigkeiten automatisch aufgelöst. Um diese muss man sich also selbst kümmern oder wenn man das nicht möchte kann man es aptitude überlassen und folgenden Befehl benutzen.
$ aptitude -t testing install paket
Man sollte aber vorsichtig sein was man hier installiert! Entfernen kann man das Paket natürlich ganz normal mit:
$ aptitude remove paket
Das gleiche geht natürlich auch für unstable.
2 Kommentare
Falk
schrieb am 02.08.2010 um 18:31 Uhr
Hallo,
bin gerade etwas unausgelastet und klicke mich durch dein wunderschön geordnetes Archiv von Artikeln. Sehr gut, fast noch besser als eine Ausgabe FreeX.
Das Problem mit APT-Pinning (so heißt das Installieren von Software aus testing/unstable) ist, dass du dir auch die Abhängigkeiten der Pakete einfängst. Das kann im schlimmsten Fall dazu führen, dass:
Du Paket A brauchst, das von B bis Z abhängt, die mit installiert werden. Wenn du das nächste mal ein Paket A2 installierst, kann der Fall eintreten, dass du mehrere Versionen einer Bibliothek hast, oder plötzlich neue Pakete aus testing für dein Grundsystem brauchst
DIe Abhängigkeiten sind teilweise Mehrschichtig. Wenn man nicht genau den Abhängigkeits-Baum vorher anschaut, ist APT-Pinning wie russisches Roulette mit fünf geladenen Kugeln.
Mir sind selbst seit Debian “potatoe” (mein erstes) sicher schon ein dutzend Installationen wegen Pinning in die Brüche gegangen. Jedesmal denkst du dir: “Ich kenne die Abhängigkeiten!” Und jedesmal …
Wenn man du aktuelle Pakete aus testing oder gar unstable wirklich brauchst, lohnt sich das Backporting oder selbst aus den Quellen ein aktuelles Paket (checkinstall) bauen. Da sind die Abhängigkeiten kontrollierbar und alternative neuere Bibliotheken passen ggf. in ein anderes Verzeichnis (z.B. /opt/backports/lib).
Seit ich das beherzige, keine Probleme mit zerschossener Paketverwaltung mehr
Grüße
kostaki
schrieb am 02.08.2010 um 18:36 Uhr
Hehe da habe ich bisher wohl Glück gehabt, aber ich hab auch noch keine größeren Pakete installiert mit vielen Abhängigkeiten. Mir ging es eigentlich nur um die aktuelle pbzip2 Version und die hat keine nennenswerten Abhängigkeiten.