Ich möchte ein einzelnes Paket (und seine Abhängigkeiten, aber nur soweit diese in Wheezy nicht erfüllbar sind) von Debian Jessie auf meinem Wheezy-System installieren, ohne „alles und die Küchenspüle“ auf die Jessie-Versionen zu aktualisieren. Insbesondere möchte ich kpcli installieren, das als Paket in Jessie, aber nicht in Wheezy verfügbar ist.
Alles, was ich gefunden habe, deutet darauf hin, dass ich die Jessie-Repositories zu meiner Quellenliste hinzufügen, das Anheften so einstellen sollte, dass alles auf Keuchen bleibt, und nur das einzelne Paket von Jessie nehmen sollte, und es wird sich so ziemlich einfach einfügen. Allerdings passt es bei mir nicht zusammen. Wenn ich /etc/apt.d/sources.list.d/jessie.list mit folgendem Inhalt erstelle:
deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main
und erstellen Sie dann /etc/apt/preferences.d/jessie mit:
Package: *
Pin: release a=wheezy
Pin-Priority: 1001
Package: kpcli
Pin: release a=jessie
Pin-Priority: 450
und führen Sie apt-get -u update
aus gefolgt von apt-get -u install kpcli/jessie
, dann erwarte ich, dass apt-get kpcli und vielleicht hinzuzieht eine kleine Handvoll anderer Pakete von Jessie und lasse den Rest meines installierten Systems unberührt. (Mein System ist eine vollständig aktuelle Installation von Wheezy.) Alternativ würde ich erwarten, dass es nichts tut, wenn ich die Pin-Priorität zu niedrig habe. Stattdessen möchte apt-get auf meinem System mehrere hundert Pakete aktualisieren.
Was, genau benötigt wird, um nur dieses eine einzelne Paket einer Jessie-Version zu installieren, während der Rest meines Wheezy-Systems unberührt bleibt?
Beachten Sie, dass in diesem speziellen Fall die Software tatsächlich in Perl geschrieben ist, sodass keine Kompilierung in Binärdateien oder ähnliches erforderlich ist. Es gibt jedoch eine Handvoll Abhängigkeiten von Perl-Modulen. Daher wäre eine mögliche Alternative, die .deb (manuell heruntergeladen) mit etwas zu installieren, das nur (1) die Angabe eines einzelnen, lokalen .deb-Archivs erlaubt, das installiert werden soll, wie dpkg -i
, und (2) handhabt Abhängigkeiten auf intelligente Weise, was einfach dpkg -i
ist nicht. Trotz all der Suche, die ich bei mehreren Gelegenheiten durchgeführt habe und keine einfach zu befolgende Anleitung dafür gefunden habe, wäre eine generische Lösung (eine, die auch für binäre, kompilierte Pakete funktioniert) großartig .
Akzeptierte Antwort:
Für jeden Eintrag (Stable, Testing, Unstable) haben Sie die Pin-Priorität 500. Sie sollten Pin> 1000 nicht verwenden. Ich verwende 1001 nur, wenn ich etwas herunterstufen möchte. Ich habe in /etc/apt/sources.list
die Einträge testing+sid+experimental angegeben und den folgenden /etc/apt/preferences
Datei:
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 130
Der Wert 500 ist voreingestellt für unstable. Versuchen wir also, iceweasel zu überprüfen:
# apt-cache policy iceweasel
iceweasel:
Installed: (none)
Candidate: 17.0.10esr-1~deb7u1
Version table:
26.0-1 0
130 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages
24.2.0esr-1 0
500 http://ftp.pl.debian.org/debian/ sid/main amd64 Packages
17.0.10esr-1~deb7u1 0
900 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages
Wenn ich also versuchen würde, iceweasel zu installieren, würde es vom Testing-Zweig heruntergeladen werden, weil es die höchste Priorität hat.
Verwandte:Benutzerdefiniertes xkb-Layout, in dem ein Schlüssel zwei Unicode-Codepunkte erstellt?Versuchen Sie, die Prioritäten zu ändern:
Package: *
Pin: release a=wheezy
Pin-Priority: 900
Package: kpcli
Pin: release a=jessie
Pin-Priority: 910