[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

apt: welches paket woher?



On Thu, 22 May 2003 11:40:07 +0200, in linux.debian.user.german you
wrote:

>Aber du hast "Hol dir das Release-File von debian.cobolt.net", nicht
>befolgt, oder? o="COBOLT NetServices" oder l="COBOLT NetServices" muesste
>funktionieren.

Doch doch, ich hab schon mittlerweile gelernt, *exakt* zu lesen. 

Ich kann mal etwas -v berichten, jedenfalls scheint mir da was mit dem
Pinning nicht ganz in Ordnung zu sein.

Wir möchten also folgendes: aus den offiziellen Debian-Quellen alle
Pakete installieren und updaten, ausser alle courier-pakete, die sind
uns zu alt und auf debian.cobolt.net (der Maintainer) gibt es viel
frischere Päckchen vom courier, die wir aus irgendwelchen Gründen
brauchen.

ein einfaches hinzufügen von 
deb http://debian.cobolt.net/ woody main

in /etc/apt/sources.list

hilft uns dabei und damit wäre auch schon alles geklärt, beim nächsten
update wird courier aus dieser Quelle installiert. 

Jetzt stellen wir aber bei einem "apt-get -s upgrade" fest, dass nicht
nur courier, sondern auch eine Anzahl anderer Pakete ebenfalls aus
debian.cobolt.net installiert würden, z.B. mysql*. DAS wollen wir aber
NICHT, warum auch immer. Wir wollen also NUR courier* von
debian.cobolt.net und alles andere soll von den offiziellen Servern
kommen.

Wir spielen jetzt mit /etc/apt/preferences einige Möglichkeiten durch.

Das naheliegende wäre, um diese Anforderung mittels Pinning apt-get
mitzuteilen, ungefähr sowas, wie Andreas schon vorgeschlagen hat:

Package: *
Pin: release o=COBOLT NetServices
Pin-Priority: -1

Package: courier*
Pin: release o=COBOLT NetServices
Pin-Priority: 1001

das klappt leider nicht. der erste Eintrag scheint den zweiten
ungültig zu machen. 

Ich hab nach einigem herumspielen allerdings den EIndruck gehabt, dass
der * irgendwie nicht richtig interpretiert wird, denn ein 

Package: courier-mta
Pin: release o=COBOLT NetServices
Pin-Priority: 1001

bringt:

The following packages have been kept back
  courier-mta
0 packages upgraded, 0 newly installed, 0 to remove and 1  not
upgraded.


kept back??? warum das jetzt?

woody:~# apt-cache policy courier-mta
courier-mta:
  Installed: 0.37.3-2.3
  Candidate: 0.40.2-3
  Package Pin: 0.40.2-3
  Version Table:
     0.40.2-3 1001
         -1 http://debian.cobolt.net woody/main Packages
 *** 0.37.3-2.3 1001
        500 ftp://ftp.de.debian.org stable/main Packages
        500 http://security.debian.org stable/updates/main Packages
        100 /var/lib/dpkg/status


ok, abgesehen davon, dass hier irgendwas nicht stimmt, hilft es uns
auch nicht weiter, wenn das courier-mta Paket "kept back" wird, oder? 

Was bleibt, ist das dunkle gefühl, es mit zwei völlig
unterschiedlichen Problemen zu tun zu haben...


Den ersten Eintrag kann man nicht weglassen, sobald man 

Package: *
Pin: release o=COBOLT NetServices
Pin-Priority: -1

entfernt, will apt alle Pakte, die auf COBOLT aktueller sind,
upgraden. Wenn man z.B. folgendes versucht

woody:~# cat /etc/apt/preferences
Package: courier-mta
Pin: release o=Debian
Pin-Priority: -1

Package: mysql-server
Pin: release o=COBOLT NetServices
Pin-Priority: -1

wird man enttäuscht. Auch hier werden ALLE aktuelleren Pakete von
COBOLT gezogen, und das obwohl das für den mysql-server eindeutig
verboten wurde! 

ich könnte noch ein paar dutzend weiterer versuche schicken, die aber
alle nix gebracht haben. 

Drei Ergebnisse haben mir aber die Tests gebracht (Versuch, alles
krampfhaft positiv zu sehen):

1. Entweder das pinning ist kaputt, hat nur noch keiner bemerkt, weil
es so kompliztiert ist ;), oder ich weiss zu wenig über die
Algorithmen, die die Entscheidung treffen, welche das zu
installierende Paket auswählen. 

2. Offensichtlich scheint es irgendwelche besonderen Regeln für
Wildcards in /etc/apt/preferences zu geben, jedenfalls scheint ein
packetname* nicht die gewünschte Wirkung zu haben, wie ich oben
beschrieben habe. Man stösst vereinzelt auf threads zu diesem Thema,
danach scheint tatsächlich nur "*" für alle Pakete zu funktionieren. 

Demnach wäre die Information in 
http://www.linux-magazin.de/Artikel/ausgabe/2002/11/apt/apt.html

falsch, leider kann man die Artikel nicht kommentieren (warum
eigentlich nicht, haben die was verpasst?)


3. Pinning ist zu wenig dokumentiert. Den Sourcecode verstehe ich
nicht und eigentlich finde ich es schade, dass ein so gutes und
wichtiges Feature so wenig ausführlich dokumentiert wird. Wie so oft,
findet man nur die Anleitungen für den simpelsten Fall, in diesem
Falle stabel/testing oder ähnlich Paketkombinationen. 

Ich muss sowas leider nebenbei machen, aber ich schreibs mir auf die
todo-Liste, damit ich was zu tun hab, wenn ich in Rente gehe... 



Have a nice thread,
Peter



Reply to: