apt: welches paket woher?
- To: debian-user-german@lists.debian.org
- Subject: apt: welches paket woher?
- From: Peter Holm <pholm@gmx.de>
- Date: Thu, 22 May 2003 14:09:15 +0200
- Message-id: <[🔎] nqbpcv4hhir3sjp25p36bakilaaksia81t@4ax.com>
- In-reply-to: <20030522094007$32e6@gated-at.bofh.it>
- References: <20030519195015$43a2@gated-at.bofh.it> <20030519195015$3fa0@gated-at.bofh.it> <20030520022009$403a@gated-at.bofh.it> <20030520022009$26bc@gated-at.bofh.it> <20030520152017$3f13@gated-at.bofh.it> <20030520152017$2fc4@gated-at.bofh.it> <20030522010022$2492@gated-at.bofh.it> <20030522010022$6c9e@gated-at.bofh.it> <20030522010022$6851@gated-at.bofh.it> <20030522094007$32e6@gated-at.bofh.it>
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: