staging.inyokaproject.org

Apt-Pinning

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Apt-Pinning.

tillmo

Anmeldungsdatum:
3. Dezember 2006

Beiträge: 781

Hallo,

also ein einfaches Beispiel der Form

Package: *
Pin: origin linux.getdropbox.com
Pin-Priority: 100

haben wir bei Communtu für Lucid, Maverick, Natty und Oneiric ausprobiert, das läuft.

Gruß Till

UMLAUTaxl

Avatar von UMLAUTaxl

Anmeldungsdatum:
15. Juli 2010

Beiträge: 64

Ab Ubuntu 10.04 müssen im Ordner '''/etc/apt/preferences.d/''' Dateien angelegt werden. Diese können beliebige Namen haben und beliebig viele Regeln enthalten.

Achtung!

In Ubuntu 10.04 und 10.10 gibt es einen Bug in aptitude, wodurch /etc/apt/preferences.d/ übergangen wird.

Qué? Das widerspricht sich doch irgendwie. Heißt im Grunde doch, dass man in 10.04 und 10.10 beides anlegen müsste, weil aptitude vor 0.6.3-3.2 die Dateien in preferences.d übergeht? Hat mich ein paar Stunden gekostet, aber wie es scheint ist dem zumindest in 10.10 nicht so. Einen "workaround" hab' ich aber trotzdem gefunden, falls Interesse besteht.

Das Ganze müsste eventuell auch noch erklärt werden. Meine Übersetzung aus man apt_preferences:

Dateien in /etc/apt/preferences.d werden nach Zahlen und Alphabet geordnet eingelesen und müssen nach folgenden Regeln benannt werden:
* Keine oder "pref" als Endung
* nur Zahlen und Klein- und Großbuchstaben, Bindestrich (-), Unterstrich (_) und Punkt (.)
Andernfalls werden die Einstellungen ohne Meldung übergangen.

Beispiele würden dann folgen.

3TX

Anmeldungsdatum:
10. April 2012

Beiträge: Zähle...

Es hat scheinbar eine Änderung bei der genauen Definition der Pin-Prioritäten gegeben:

Aus man apt_preferences in quantal (apt_0.9.7.5ubuntu5_amd64.deb):

500 <= P < 990
           causes a version to be installed unless there is a version available belonging to the target release or the installed version is
           more recent

aus man apt_preferences in precise (apt_0.8.16~exp12ubuntu10.2_amd64.deb):

500 < P <=990
           causes a version to be installed unless there is a version available belonging to the target release or the installed version is
           more recent

Das ist in sofern relevant, als das die Beispiele im oberen Teil der man-Page genau die kritischen Zahlen benutzten, ebenso bei der Option -t für apt-get. Getestet habe ich das ganze mal in quantal: 499 und 500 haben verschiedene Bedeutung; 500 und 501 sind identisch.

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Das Vorgehen bei den grafischen Programmen, zB Synaptic#Versionen-sperren-oder-erzwingen ist doch auch ein Pinning, oder?

Dann sollte man hier auf die grafischen Möglichkeiten verlinken.

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21668

Das Sperren in synpatic interessiert aber auch nur synaptic. Pinning wird mEn von allen Paketverwaltungstools beachtet

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

redknight schrieb:

Das Sperren in synpatic interessiert aber auch nur synaptic. Pinning wird mEn von allen Paketverwaltungstools beachtet

Hmmm, wenn ich das mit der Muon Paketverwaltung mache (Abschnitt fehlt in dem Artikel[noch]), wird eine entsprechende Datei unter /etc/apt/preferences.d/ angelegt. Dann müsste das ja auch von allen Paketverwaltungstools beachtet werden.

Mit dem Muon-Teil kann man aber auch nur Versionen sperren.

Wie das bei Synaptic ist, weiß ich nicht.

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Wer definiert eigentlich die Pin-prioritäten für ein Paket?

Ich hatte jetzt bei mir fest gestellt, das ein Paket aus den Backports die Prio 100 hatte und deshalb immer das Paket aus der normalen Quelle bevorzugt wird:

sudo apt-cache policy widelands                                                    
widelands:                                                                                      
  Installiert: (keine)                                                                          
  Kandidat:    1:16-1                                                                           
  Versionstabelle:                                                                              
     1:17-2~ubuntu12.04.1 0                                                                     
        100 http://archive.ubuntu.com/ubuntu/ precise-backports/universe amd64 Packages         
     1:16-1 0                                                                                   
        500 http://archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages

Im Abschnitt Apt-Pinning#Gezieltes-Umgehen-mit-apt-get heißt es:

"Folgender Aufruf z.B. zieht mplayer aus dem precise-Paketbereich (= Ubuntu 12.04)."

Ist das ein Beispiel dafür, wenn man in Quantal ein Paket aus precise installieren möchte?

Spricht etwas dagegen wenn man noch ein Beispiel wie aus meiner ersten Frage einfügt? Also:

sudo apt-get -t precise-backports install widelands 

busybit

Anmeldungsdatum:
29. Dezember 2010

Beiträge: 171

Ich glaube mit dem feststellen des richtigen Origin stimmt was nicht.

Für das Debian Multimedia Repository sagt mir "apt-cache policy":

origin www.deb-multimedia.org

in http://www.deb-multimedia.org/dists/wheezy/Release steht jedoch

Origin: Unofficial Multimedia Packages

und letzteres scheint mir das passende zu sein.

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1536

Verständnisfrage zum neu angefügten Absatz "Einzelne Pakete aus einem Sammel-PPA installieren".

Da das Wording im Vergleich zu Paketquellen_freischalten/PPA ein anderes ist:
Aus ppa:LP-BENUTZER/PPA-NAME wird hier LP-PPA-INHABER-PPA_NAME. Benutzer = Inhaber?! Falls das zutrifft, wäre bei Verweis auf einen anderen Artikel die Nutzung der gleichen Worte für gleiche Inhalte sinnvoll (also LP-BENUTZER-PPA-NAME), Anfänger (wie mich) werden sonst irritiert ...

Im Beispiel: Aus der Angabe eines PPA ppa:mc3man/gstffmpeg-keep, wird: release o=mc3man-gstffmpeg-keep ?!

TausB

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

TausB schrieb:

also LP-BENUTZER-PPA-NAME), Anfänger (wie mich) werden sonst irritiert ...

Korrigiert.

Aus der Angabe eines PPA ppa:mc3man/gstffmpeg-keep, wird: release o=mc3man-gstffmpeg-keep ?!

Nein, richtig ist release o=LP-PPA-mc3man-gstffmpeg-keep

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1536

aasche schrieb:

Aus der Angabe eines PPA ppa:mc3man/gstffmpeg-keep, wird: release o=mc3man-gstffmpeg-keep ?!

Nein, richtig ist release o=LP-PPA-mc3man-gstffmpeg-keep

Danke für die Richtigstellung/Aufklärung.

linux_joy

Anmeldungsdatum:
6. Februar 2008

Beiträge: 636

1. In der Einleitung steht im 2. Absatz u.a. folgendes:

Das Pinning erfolgte früher traditionell in der Datei /etc/apt/preferences. Seit Ubuntu 10.04 sollte man den Ordner /etc/apt/preferences.d/ nutzen, in dem man eine neue Datei mit einem beliebigen Namen anlegt.

In den Abschnitten "Werte für Pin-Priority" sowie "Einzelne Pakete aus älterer/neuerer Ubuntu-Version installieren" ist aber immer noch von der Datei /etc/apt/preferences die Rede. Soll man das so lassen?

2. Im Abschnitt "Von proposed-Quellen downgraden" ist von der Datei /etc/apt/preferences/no-proposed die Rede. fehlt da hinter preferences nicht ein .d?

3. Der Abschnitt "Von proposed-Quellen downgraden" eignet sich auch gut als Vorlage für einen neuzuschaffenden Abschnitt "Pakete aus PPAs und Fremdquellen sowie deren Abhängigkeiten downgraden" – vor allem dann, falls die Fremdpakete via apt-get dist-upgrade installiert wurden. Da dabei dann aber ausnahmslos alles "Fremde" downgegraded wird, sollte man diese Aktion aber eigentlich nur dann ausführen, wenn man aus irgendwelchen Gründen alles "Fremde" loswerden will, entweder weil man ein "sauberes" System haben will und/oder vor einem Upgrade auf eine neuere Ubuntu-Version.

Alternativ könnte man ja den Abschnitt "Von proposed-Quellen downgraden" auch umbenennen, etwa in "Von proposed-Quellen downgraden/Pakete aus PPAs und Fremdquellen sowie deren Abhängigkeiten downgraden", weil die PIN-Datei in beiden Fällen exakt gleich aussieht.

Egal, welche der vorgenannten Möglichkeiten auch realisiert wird, es könnten auf diesen Abschnitt auf jeden Fall auch Links aus Upgrade, Fremdquellen und PPA erfolgen. Im letzteren Artikel dann ggf. als weitere Alternative zum Abschnitt "PPA Purge", falls man alles "Fremde" downgraden möchte.

3.5 Als Vorlage für eine direkte Alternative zum Abschnitt "PPA Purge" im Artikel PPA könnte evtl. aber im hiesigen Artikel der Abschnitt "Einzelne Pakete aus einem Sammel-PPA installieren" dienen, indem man nämlich in die PIN-Datei beispielsweise folgendes packen würde, falls das aktuell benutzte Release 16.04 wäre:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Package: *
Pin: release a=xenial*
Pin-Priority: 1001

Package: *
Pin: release o=LP-PPA-LP-BENUTZER-PPA-NAME
Pin-Priority: 1001

Package: *
Pin: release o=LP-PPA-LP-BENUTZER-PPA-NAME
Pin-Priority: 1001

Diese drei Datensätze beschreiben das aktuell benutzte Release 16.04 sowie zwei andere benutzte PPAs. Das nicht mehr benutze PPA sollte man aber vorher aus den Paketquellen entweder entfernt oder dort auskommentiert haben. Nun können nach Aktualisieren der Paketlisten mit apt-get update mit apt-get dist-upgrade automatisch die älteren Versionen installiert werden. Nachdem die Paketversionen korrigiert wurden, sollte die Pinning-Datei wieder entfernt werden, damit irgendwann in Zukunft ein Upgrade auf eine neuere Ubuntu-Version ohne Probleme möglich ist. Ich habe das allerdings leider nicht selber ausprobiert.

4. Nun zu meiner Situation, wie ich zum Apt-Pinning gekommen bin: Ich habe vor einigen Tagen ein Dist-Upgrade von Lubuntu 14.04 auf 16.04 und dann auf 18.04 durchgeführt, was alles in allem problemlos vonstatten ging. Allerdings hatte ich in 14.04 ein paar PPAs verwendet, siehe den folgenden Terminal-Auszug:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
~$ inxi -r
Repos:     Active apt sources in file: /etc/apt/sources.list
           deb http://de.archive.ubuntu.com/ubuntu/ trusty main restricted
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty main restricted
           deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
           deb http://de.archive.ubuntu.com/ubuntu/ trusty universe
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty universe
           deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates universe
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates universe
           deb http://de.archive.ubuntu.com/ubuntu/ trusty multiverse
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty multiverse
           deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
           deb http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
           deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
           deb http://security.ubuntu.com/ubuntu trusty-security main restricted
           deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
           deb http://security.ubuntu.com/ubuntu trusty-security universe
           deb-src http://security.ubuntu.com/ubuntu trusty-security universe
           deb http://security.ubuntu.com/ubuntu trusty-security multiverse
           deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse
           deb http://extras.ubuntu.com/ubuntu trusty main
           deb-src http://extras.ubuntu.com/ubuntu trusty main
           Active apt sources in file: /etc/apt/sources.list.d/jonathonf-ffmpeg-3-trusty.list
           deb http://ppa.launchpad.net/jonathonf/ffmpeg-3/ubuntu trusty main
           Active apt sources in file: /etc/apt/sources.list.d/mc3man-mpv-tests-trusty.list
           deb http://ppa.launchpad.net/mc3man/mpv-tests/ubuntu trusty main
           Active apt sources in file: /etc/apt/sources.list.d/rvm-smplayer-trusty.list
           deb http://ppa.launchpad.net/rvm/smplayer/ubuntu trusty main

Wie man sieht, war u.a. das PPA mpv-tests installiert, was laut (zumindest damaliger) PPA-Beschreibung des Eigentümers/Teams ein apt-get dist-upgrade erforderlich machte zum erfolgreichen installieren von mpv. Und damit war für mich klar, dass das bloße Entfernen des Paketes mpv die Sache nicht vollständig bereinigen würde. Da ich zu dem Zeitpunkt nicht an die Wiki-Seite PPA gedacht habe, habe ich im Internet nach "aptitude downgrade packages" gesucht (von anderer Seite habe ich den Tipp zu aptitude anstatt apt oder apt-get erhalten). Und bin dann u.a. zu dieser Anleitung gelangt. Zuerst habe ich mithilfe der grafischen Aktualisierungsverwaltung alle PPA-Quellen deaktiviert. Die Datei /etc/apt/preferences habe ich dann folgendermaßen gestaltet:

1
2
3
Package: *
Pin: release a=trusty-updates
Pin-Priority: 1001

Danach:

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade && sudo apt-get clean 

Also habe ich gemäß der Internet-Anleitung 2 Schritte gemacht, nämlich "upgrade" und "dist-upgrade":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
...
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  fontconfig fontconfig-config libavcodec-extra libflac8 libfontconfig1
  libssh-4
0 aktualisiert, 0 neu installiert, 6 durch eine ältere Version ersetzt, 0 zu entfernen und 1 nicht aktualisiert.
Es müssen 552 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 525 kB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] j
...
Die folgenden Pakete werden ENTFERNT:
  mpv
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  liblcms2-2
0 aktualisiert, 0 neu installiert, 1 durch eine ältere Version ersetzt, 1 zu entfernen und 0 nicht aktualisiert.
Es müssen 131 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 26,4 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] j
...

So, ich hoffe, das war nun nicht zu viel auf einmal... Was meint Ihr zu meinen Vorschlägen? Könnt Ihr sie evtl. sogar testen?

noisefloor Team-Icon

Ehemaliger
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

So, ich hoffe, das war nun nicht zu viel auf einmal...

Doch, war es.

Was meint Ihr zu meinen Vorschlägen?

Was sind denn "die Vorschläge"? Ich sehen nur einen, nämlich die Überschrift "Von proposed-Quellen downgraden" auf PPA und andere Fremdquellen erweitern.

Gruß, noisefloor

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Hallo,

zu Punkt 1) Nein, das sollte angepasst werden.

Die übrigen Punkte kann ich mir gerade leider nicht anschauen, da ich aktuell kaum Zeit fürs Wiki habe.

Gruß BillMaier

linux_joy

Anmeldungsdatum:
6. Februar 2008

Beiträge: 636

Hallo,

BillMaier schrieb:

Hallo,

zu Punkt 1) Nein, das sollte angepasst werden.

Vllt. aber auch nicht, denn in https://help.ubuntu.com/community/PinningHowto ist immer noch explizit die Datei /etc/apt/preferences erwähnt. Zwar wird in den Beispielen lediglich der Ordner /etc/apt/preferences.d/ erwähnt, doch dass dies jetzt ein "Muss" sei, dafür finde ich dort keinerlei Belege. Und auch in https://wiki.debian.org/AptPreferences ist nur von der /etc/apt/preferences die Rede. Alternativ-Vorschlag zu Punkt 1): An das Ende der Einleitung wird eine Info-Box gesetzt mit ungefähr dem folgenden Inhalt: "Für Wartungs-Arbeiten, für die eine temporäre Pinning-Datei angelegt wird (sie wird also danach wieder gelöscht bzw. entfernt), kann man aber auch nach wie vor getrost die traditionelle Datei /etc/apt/preferences benutzen.".

Die übrigen Punkte kann ich mir gerade leider nicht anschauen, da ich aktuell kaum Zeit fürs Wiki habe.

Gruß BillMaier

Ist OK so, jeder wie er gerade Zeit und Lust hat 😉

noisefloor schrieb:

Hallo,

So, ich hoffe, das war nun nicht zu viel auf einmal...

Doch, war es.

Was meint Ihr zu meinen Vorschlägen?

Was sind denn "die Vorschläge"? Ich sehen nur einen, nämlich die Überschrift "Von proposed-Quellen downgraden" auf PPA und andere Fremdquellen erweitern.

Gruß, noisefloor

Halt, Du meinst damit den Punkt 3). Es gibt aber außerdem noch den Punkt 3.5) "eine direkte Alternative zum Abschnitt "PPA Purge" im Artikel PPA" 😉