ubuntuusers.de

apt-pinning via preferences - Syntax?

Status: Ungelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6494

Moin,

ich habe den Effekt, dass seit einiger Zeit mein apt-pinning nicht mehr wie erwartet funktioniert.

Beispiel:

cat /etc/apt/preferences.d/kubernetes
Package: kubectl
Pin: version 1.19.*
Pin-Priority: 1000
 
Package: kubeadm
Pin: version 1.19.*
Pin-Priority: 1000
 
Package: kubelet
Pin: version 1.19.*
Pin-Priority: 1000
# kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:03:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}

Ich hatte erwartet, dass hier Version 1.19 installiert wird. Bis vor einiger Zeit (mindestens in Xenial) war das auch noch so.

Kürzlich habe ich dasselbe Problem auch mit dem Paket docker-ce beobachtet. Hier konnte ich das Problem durch eine Syntax-Änderung beheben:

Aus

Pin: version 19.03.11

wurde

Pin: version 5:19.03.14~3-0~ubuntu-focal

Damit hat es dann geklappt.

Bei kubectl verstehe ich aber nicht wo es hakt:

# apt-cache madison kubectl | grep 1.19
   kubectl |  1.19.8-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.7-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.6-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.5-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.4-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.3-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.2-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.1-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubectl |  1.19.0-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages

(Nicht wundern, die Pakete für bionic und focal werden bei kubernetes auch aus der xenial-PPA bedient. Das gehört so 😉 ▶ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl )

Wer hat mir einen Tipp?

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8459

Wohnort: Digiworld

kannst du mal

apt-cache policy

zeigen? Ich will mir diese quelle jetzt nicht unbedingt in mein system einfügen.

Gruß Taomon

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6494

jupp, schon mal vielen Dank.

root@k8s-migration-containerd:/home/ubuntu# apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
     release o=kubernetes-xenial,a=kubernetes-xenial,n=kubernetes-xenial,l=kubernetes-xenial,c=main,b=amd64
     origin apt.kubernetes.io
 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
     release o=Docker,a=focal,l=Docker CE,c=stable,b=amd64
     origin download.docker.com
 500 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=main,b=amd64
     origin security.ubuntu.com
 100 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-backports,n=focal,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
Pinned packages:
     kubelet -> 1.19.8-00 with priority 1000
     kubelet -> 1.19.7-00 with priority 1000
     kubelet -> 1.19.6-00 with priority 1000
     kubelet -> 1.19.5-00 with priority 1000
     kubelet -> 1.19.4-00 with priority 1000
     kubelet -> 1.19.3-00 with priority 1000
     kubelet -> 1.19.2-00 with priority 1000
     kubelet -> 1.19.1-00 with priority 1000
     kubelet -> 1.19.0-00 with priority 1000

Hab da mit der preferences-Datei noch etwas rumgespielt, sieht aktuell so aus:

# cat /etc/apt/preferences.d/kubernetes 
Package: kubectl
Pin: version 1.19.8-00
Pin-Priority: 1000
 
Package: kubeadm
Pin: version 1.19.*
Pin-Priority: 1000
 
Package: kubelet
Pin: version 1.19.*
Pin-Priority: 1000

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8459

Wohnort: Digiworld

Kannst Du bitte noch

apt show kubeadm kubectl kubelet

zeigen;

damit ich die "Beziehung" zwischen den Paketen sehen kann? (Stichwort meta-paket)

Gruß Taomon

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6494

# apt show kubeadm kubectl kubelet
Package: kubeadm
Version: 1.20.4-00
Priority: optional
Section: misc
Maintainer: Kubernetes Authors <kubernetes-dev+release@googlegroups.com>
Installed-Size: 39.3 MB
Depends: kubelet (>= 1.13.0), kubectl (>= 1.13.0), kubernetes-cni (>= 0.8.7), cri-tools (>= 1.13.0)
Homepage: https://kubernetes.io
Download-Size: 7710 kB
APT-Sources: http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
Description: Kubernetes Cluster Bootstrapping Tool
 The Kubernetes command line tool for bootstrapping a Kubernetes cluster.

Package: kubectl
Version: 1.20.4-00
Priority: optional
Section: misc
Maintainer: Kubernetes Authors <kubernetes-dev+release@googlegroups.com>
Installed-Size: 40.3 MB
Homepage: https://kubernetes.io
Download-Size: 7944 kB
APT-Manual-Installed: yes
APT-Sources: http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
Description: Kubernetes Command Line Tool
 The Kubernetes command line tool for interacting with the Kubernetes API.

Package: kubelet
Version: 1.19.8-00
Priority: optional
Section: misc
Maintainer: Kubernetes Authors <kubernetes-dev+release@googlegroups.com>
Installed-Size: 110 MB
Depends: iptables (>= 1.4.21), kubernetes-cni (>= 0.8.7), iproute2, socat, util-linux, mount, ebtables, ethtool, conntrack
Homepage: https://kubernetes.io
Download-Size: 18.2 MB
APT-Sources: http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
Description: Kubernetes Node Agent
 The node agent of Kubernetes, the container cluster manager

N: There are 626 additional records. Please use the '-a' switch to see them.

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8459

Wohnort: Digiworld

da ich neugierig bin, habe ich die quelle mal eingebunden.

bitte probier es so

Package:  kubeadm     
Pin: version 1.19.*      
Pin-Priority: 1001  
 
Package: kubectl   
Pin: version 1.19.*   
Pin-Priority: 1001 
 
Package: kubelet   
Pin: version 1.19.*       
Pin-Priority: 1001 


Package: kubeadm   
Pin: version 1.20.*   
Pin-Priority: -1
 
Package: kubectl
Pin: version 1.20.*
Pin-Priority: -1  

Keine Ahnung warum man explicit bestimmte versionen durch -1 verbieten muß.

beachte: ich habe die Installation der Pakete bei mir nur simuliert. Für Schäden an Deiner Paketverwaltung überneheme ich keine Haftung. ☺

alex@Guilmon:~$ apt -s install kubeadm
HINWEIS: Dies ist nur eine Simulation!
         apt benötigt root-Privilegien für die reale Ausführung.
         Behalten Sie ebenfalls in Hinterkopf, dass die Sperren deaktiviert
         sind, verlassen Sie sich also bezüglich des reellen aktuellen
         Status der Sperre nicht darauf!
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  conntrack cri-tools ebtables ethtool kubectl kubelet kubernetes-cni socat
Vorgeschlagene Pakete:
  nftables
Die folgenden NEUEN Pakete werden installiert:
  conntrack cri-tools ebtables ethtool kubeadm kubectl kubelet kubernetes-cni socat
0 aktualisiert, 9 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Inst conntrack (1:1.4.5-2 Ubuntu:20.04/focal [amd64])
Inst cri-tools (1.13.0-01 kubernetes-xenial:kubernetes-xenial [amd64])
Inst ebtables (2.0.11-3build1 Ubuntu:20.04/focal [amd64])
Inst ethtool (1:5.4-1 Ubuntu:20.04/focal [amd64])
Inst kubernetes-cni (0.8.7-00 kubernetes-xenial:kubernetes-xenial [amd64])
Inst socat (1.7.3.3-2 Ubuntu:20.04/focal [amd64])
Inst kubelet (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
Inst kubectl (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
Inst kubeadm (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
Conf conntrack (1:1.4.5-2 Ubuntu:20.04/focal [amd64])
Conf cri-tools (1.13.0-01 kubernetes-xenial:kubernetes-xenial [amd64])
Conf ebtables (2.0.11-3build1 Ubuntu:20.04/focal [amd64])
Conf ethtool (1:5.4-1 Ubuntu:20.04/focal [amd64])
Conf kubernetes-cni (0.8.7-00 kubernetes-xenial:kubernetes-xenial [amd64])
Conf socat (1.7.3.3-2 Ubuntu:20.04/focal [amd64])
Conf kubelet (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
Conf kubectl (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
Conf kubeadm (1.19.8-00 kubernetes-xenial:kubernetes-xenial [amd64])
alex@Guilmon:~$ 

Und ich habe keine ahnung ob dann alles so funktioniert wie es soll. ☺

Gruß Taomon

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6494

Schon klar mit der Haftung. Jeder ist schon auch noch selbst verantwortlich für das was er tut.

Dein Workaround bringt aber leider nichts. Weil wenn die 21 kommt, wird die trotzdem installiert...

Und ich kann nicht alle zukünftigen Versionen ausschließen. Ist sicher auch nicht im Sinne des Erfinders.

Gruß BillMaier

BillMaier Team-Icon

Supporter
(Themenstarter)

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6494

Ich versteh es nicht: Jetzt habe ich eine VM, bei der es wieder wie erwartet klappt. Entweder teste ich komisch, oder es geschehen hier Dinge die ich nicht verstehe...

Antworten |