seltsames Verhalten beim apt-Pinning

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

seltsames Verhalten beim apt-Pinning

Beitrag von Lohengrin » 24.02.2006 20:29:15

Ich habe mein System als testing installiert. Nun bin ich dabei zu verstehen, wie apt funktioniert, aber ich habe Schwierigkeiten.

Meine /etc/apt/sources.list sieht (zu Testzwecken) so aus

Code: Alles auswählen

deb http://ftp.de.debian.org/debian/ etch main non-free contrib
deb-src http://ftp.de.debian.org/debian/ etch main non-free contrib
deb http://security.debian.org/ etch/updates main contrib non-free
deb http://ftp.de.debian.org/debian/ sid main non-free contrib
Es kommen nur die Worte etch und sid vor, nicht aber testing und unstable.
Wenn dies in meiner /etc/apt/preferences steht

Code: Alles auswählen

Package: *
Pin: release a=sid
Pin-Priority: 200
Ergibt apt-cache policy linux-image-2.8.15 dies

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-7
  Versions-Tabelle:
     2.6.15-7 0
        500 http://ftp.de.debian.org sid/main Packages
     2.6.15-4 0
        500 http://ftp.de.debian.org etch/main Packages
Wenn in der /etc/apt/preferences dies steht

Code: Alles auswählen

Package: *
Pin: release a=unstable
Pin-Priority: 200
funktioniert es und dies kommt raus

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-4
  Versions-Tabelle:
     2.6.15-7 0
        200 http://ftp.de.debian.org sid/main Packages
     2.6.15-4 0
        500 http://ftp.de.debian.org etch/main Packages
Frage1: Warum heißt das Archiv unstable und nicht sid?

Schreibe ich dies in meine /etc/apt/preferences

Code: Alles auswählen

Package: linux-source-2.6.15
Pin: release a=unstable
Pin-Priority: 753

Package: *
Pin: release a=unstable
Pin-Priority: 200
dann ergibt apt-cache policy linux-image-2.8.15 dies

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-7
  Paketstecknadel: 2.6.15-7
  Versions-Tabelle:
     2.6.15-7 753
        200 http://ftp.de.debian.org sid/main Packages
     2.6.15-4 753
        500 http://ftp.de.debian.org etch/main Packages
apt-get -s install linux-source-2.6.15 tut aber das was es soll

Code: Alles auswählen

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Vorgeschlagene Pakete:
  libncurses-dev libqt3-mt-dev
Empfohlene Pakete:
  libc6-dev libc-dev
Die folgenden NEUEN Pakete werden installiert:
  linux-source-2.6.15
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Inst linux-source-2.6.15 (2.6.15-7 Debian:unstable)
Conf linux-source-2.6.15 (2.6.15-7 Debian:unstable)
Frage2: Warum steht die 200,500,753 da wo sie stehen?

Wenn in der /etc/apt/preferences dies steht

Code: Alles auswählen

Package: linux-source-2.6.15
Pin: release a=unstable
Pin-Priority: 753

Package: linux-source-2.6.15
Pin: release a=testing
Pin-Priority: 666
macht apt-get -s install linux-source-2.6.15 einen Fehler

Code: Alles auswählen

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Vorgeschlagene Pakete:
  libncurses-dev libqt3-mt-dev
Empfohlene Pakete:
  libc6-dev libc-dev
Die folgenden NEUEN Pakete werden installiert:
  linux-source-2.6.15
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 107 nicht aktualisiert.
Inst linux-source-2.6.15 (2.6.15-4 Debian:testing)
Conf linux-source-2.6.15 (2.6.15-4 Debian:testing)
Frage3: Warum wird nicht von unstable installiert?
Auch mit apt-get -s -t unstable install linux-source-2.6.15 wird von testing installiert.

Laut man apt_preferences gehört das Festlegen eines target release unter den Punkt default. Dies soll durch /etc/apt/preferences außer Kraft gesetzt werden.
Mit dieser /etc/apt/preferences

Code: Alles auswählen

Package: *
Pin: release a=unstable
Pin-Priority: 211
installiert apt-get -s -t unstable install linux-source-2.6.15 aber doch von unstable.

Benutzeravatar
rolo
Beiträge: 2697
Registriert: 29.08.2002 12:12:25
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: hannover

Beitrag von rolo » 24.02.2006 22:03:10

hi,
apt-pinning kann nur daneben gehen, irgebdwann wird die libc6 ausgewechselst und dann bist du bei unstable.bzw. irgendwo.
lass das aus meiner sicht ganz einfach sein und benutze eine der versionen. selber habe ich lange nur blöde erfahrunnngen gemacht.ich denke du hast vielleicht genug erfahrung für sid (desktop), es ist dann sicher der bessere weg.
machs gut
atropin

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 24.02.2006 22:10:22

Apt-pinnig ist ein tolles feature von apt. Du solltest nur die apt.conf löschen (besser verschieben), um Problemen vorzubeugen (bei mir wurden plötzlich nur unstable-Pakete installiert).

preferences:

Code: Alles auswählen

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package: *
Pin: release o=Debian
Pin-Priority: -10

Package: firefox
Pin: version 1.5*
Pin-Priority: 1001
sources.list:

Code: Alles auswählen

deb ftp://ftp.de.debian.org/debian/ testing main contrib

deb ftp://ftp.de.debian.org/debian/ unstable main contrib

deb http://secure-testing.debian.net/debian-secure-testing testing/security-updates main contrib
deb http://ftp.de.debian.org/debian-secure-testing testing/security-updates main contrib
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 25.02.2006 20:27:40

atropin hat geschrieben:apt-pinning kann nur daneben gehen, irgebdwann wird die libc6 ausgewechselst und dann bist du bei unstable.bzw. irgendwo.
lass das aus meiner sicht ganz einfach sein und benutze eine der versionen. selber habe ich lange nur blöde erfahrunnngen gemacht.ich denke du hast vielleicht genug erfahrung für sid (desktop), es ist dann sicher der bessere weg.
Mein Desktop läuft auf Testing. Nun würde ich gerne einen Laptop auf Stable mit ein paar Teilen von backports einrichten. Deswegen will ich verstehen, wie apt funktioniert.
Das was ich hier geschrieben habe ist eine Spielerei mit dem apt von Testing. Das apt tut offenbar nicht das, was es mMn laut man apt_preferences und dergleichen tun soll.
Ich frage mich, ob ich etwas falsch verstanden habe, oder ob es einen Fehler in apt gibt.
Das apt-Kapitel im Debiananwenderhandbuch ist eine teilweise falsche und oft unpräzise Übersetzung der man-Seiten. Wenn ich verstanden habe, wie das Ding läuft, werde ich ein Wiki dazu schreiben.

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 26.02.2006 00:02:43

Das Verhalten, das du mit apt-cache policy hast, habe ich nicht. Vielleicht sind die Werte mit 753, usw. nicht besonders toll gewählt. Bei mir heißt 900: das ist mein default. 800: benutze ich auch, ist aber nicht so wichtig wie der default. -10: das möchte ich nicht haben. o=Debian heißt soviel wie, das andere Zeug (sarge, experimental, usw.). Mit 1001 pinne ich das, was ich gerne in einer bestimmten Version möchte.

sid = unstable, das wird immer so sein. Die Ordner sind die selben, einer verlinkt nur auf den anderen (testing= etch, sarge = stable). Irgendwann wird etch stable, dann kommt ein neues testing (Name kenne ich nocht nicht). Sarge wird dann zu oldstable.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 26.02.2006 04:34:03

H4kk3r hat geschrieben:Das Verhalten, das du mit apt-cache policy hast, habe ich nicht. Vielleicht sind die Werte mit 753, usw. nicht besonders toll gewählt.
Du hast den Effekt nicht, weil es firefox nur in unstable gibt.
H4kk3r hat geschrieben:Bei mir heißt 900: das ist mein default. 800: benutze ich auch, ist aber nicht so wichtig wie der default. -10: das möchte ich nicht haben. o=Debian heißt soviel wie, das andere Zeug (sarge, experimental, usw.). Mit 1001 pinne ich das, was ich gerne in einer bestimmten Version möchte.
Wenn die Pakete aus testing/security-updates zu testing zählen (siehe unten) funktioniert das. Wenn das ein eigenes archive ist, sind sie auf 500.
H4kk3r hat geschrieben:sid = unstable, das wird immer so sein. Die Ordner sind die selben, einer verlinkt nur auf den anderen (testing= etch, sarge = stable). Irgendwann wird etch stable, dann kommt ein neues testing (Name kenne ich nocht nicht). Sarge wird dann zu oldstable.
Das weiß ich auch. Ich war nur verwundert darüber, dass es mit sid nicht funktioniert, obwohl ich sid in meiner Pfandangabe habe. Inzwischen bin ich schlauer. In der dazugehörigen Datei mit dem Namen Release steht Suite: unstable. Ich vermute mal, dass es hiermit abgeglichen wird (kann das jemand bestätigen?). Warum das Ding mal archive und mal suite heißt, das weiß der Teufel; dist wäre passend.

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 26.02.2006 09:59:28

Lohengrin hat geschrieben:Du hast den Effekt nicht, weil es firefox nur in unstable gibt.
Ich habe es auch mit den von dir getesteten Paketen ausprobiert.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 27.02.2006 15:20:16

H4kk3r hat geschrieben:
Lohengrin hat geschrieben:Du hast den Effekt nicht, weil es firefox nur in unstable gibt.
Ich habe es auch mit den von dir getesteten Paketen ausprobiert.
Ich habe aber diesen Effekt.
Wie muss der Output von apt-cache policy aussehen bzw interpretiert werden? Da steht (mein Beispiel vor Frage2)

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-7
  Paketstecknadel: 2.6.15-7
  Versions-Tabelle:
     2.6.15-7 753
        200 http://ftp.de.debian.org sid/main Packages
     2.6.15-4 753
        500 http://ftp.de.debian.org etch/main Packages
Die vorletzte Zeile nennt die Version von testing. Die 500 in der letzten Zeile ist das generelle Pin für testing. Aber was soll die 753 in der vorletzen Zeile? Das ist das spezielle Pin für dieses Paket aus unstable. Dies 753 gehört da nicht hin!

Wie sieht das denn bei dir aus? Du hast in deiner Einstellung leider kein Paket was in testing und unstable vorkommt, und einen speziellen Pin gesetzt bekommen hat. Hast du so etwas mal ausprobiert? Falls ja, wie sieht der Output von apt-cache policy aus?

Ich habe gerade noch mal zu meiner Frage3 herumgespielt:
Wenn ich dies in die /etc/apt/preferences schreibe

Code: Alles auswählen

Package: linux-source-2.6.15
Pin: release a=unstable
Pin-Priority: 753

Package: linux-source-2.6.15
Pin: release a=testing
Pin-Priority: 666
Dann kommt bei apt-cache policy linux-source-2.6.15 dies heraus

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-4
  Paketstecknadel: 2.6.15-4
  Versions-Tabelle:
     2.6.15-7 666
        500 http://ftp.de.debian.org unstable/main Packages
     2.6.15-4 666
        500 http://ftp.de.debian.org testing/main Packages
Und es wird von testing installiert.
Wenn in der /etc/apt/preferences dies steht

Code: Alles auswählen

Package: linux-source-2.6.15
Pin: release a=testing
Pin-Priority: 666

Package: linux-source-2.6.15
Pin: release a=unstable
Pin-Priority: 753
dann ergibt apt-cache policy linux-source-2.6.15 dies

Code: Alles auswählen

linux-source-2.6.15:
  Installiert:(keine)
  Mögliche Pakete:2.6.15-7
  Paketstecknadel: 2.6.15-7
  Versions-Tabelle:
     2.6.15-7 753
        500 http://ftp.de.debian.org unstable/main Packages
     2.6.15-4 753
        500 http://ftp.de.debian.org testing/main Packages
und es wird von unstable installiert.

Laut man apt_preferences hätte das funktionieren müssen. Was ist hier los?

Antworten