In diesem kleinen Beitrag arbeite ich das LUG Thema vom 06.03.2024 auf. Wir hatten dort das Thema Pinning von deb Paketen unter Debian. Eine weiterführende Dokumentation ist auch direkt auf der Debian Seite 1) zu finden.
apt
oder auch apt-get
ist die Paketverwaltung unter Debian basierte Linux Distribution 2)
Mit apt
pinning möchte man in der Paketverwaltung bestimmte Programme bei der Installation priorisieren.
Beispiel:
Du möchtest als Standarddistribution Debian 12 bookworm verwenden, aber bestimmt Pakete aus einer anderen Version von Debian (oder einer anderen Distribution) dazu installieren.
/etc/apt/source.list.d
eine .list
mit dem entsprechenden Repo, was du verwenden willst. → Als Vorlage kann die /etc/apt/source.list
dienen. → Kopiere diese in den Ordner /etc/apt/source.list.d/
und bennen diese vorzugsweise um. Beispiel: cp /etc/apt/source.list /etc/apt/source.list.d/foo.list
→ Ändere die Einträge in der Datei mit einem Editor deiner Wahl auf das passende Repo ab./etc/apt/preferences.d/
eine Datei an, in der du das Pinning konfigurierst. → Ich gebe der Datei immer voran gestellt eine Nummer und dann, was diese enthalten soll. → Beispiel: 99-debian
Package: * Pin: release a=unstable Pin-Priority: 500 Package: * Pin: release a=stable Pin-Priority: 900 Package: firefox* Pin: release a=unstable Pin-Priority: 1000 Package: keepass* Pin: release a=unstable Pin-Priority: 1000 Package: flameshot* Pin: release a=unstable Pin-Priority: 1000 Package: filius* Pin: release a=unstable Pin-Priority: 1000 Package: remmina* Pin: release a=unstable Pin-Priority: 1000 Package: libreoffi* Pin: release a=unstable Pin-Priority: 1000 Package: podman* Pin: release a=unstable Pin-Priority: 1000 Package: docker* Pin: release a=unstable Pin-Priority: 1000 Package: distrobox* Pin: release a=unstable Pin-Priority: 1000 Package: remmina* Pin: release a=unstable Pin-Priority: 1000 Package: qflipper* Pin: release a=unstable Pin-Priority: 1000 Package: mfcuk Pin: release a=unstable Pin-Priority: 1000 Package: mfoc Pin: release a=unstable Pin-Priority: 1000 Package: fritzing* Pin: release a=unstable Pin-Priority: 1000 Package: arduino* Pin: release a=unstable Pin-Priority: 1000
sid/unstable
auf den Wert 500. Das bedeutet, dass die Pakete aus diesem Repo installiert werden, wenn Sie benötigt werden. stable
auf die Priorität 900. Dadurch liegt die Priorität für stable höher als 500 von unstable
und dem Paket aus dem stabilen Zweck vorrangig installiert, wenn die dort Pakete mit einer niedrigeren Versionsnummer vorhanden sind. unstable
mit einer 1000. Die Priorität 1000 sagt, dass die Pakete explizit aus unstable
installiert werden sollen und die nötigen Abhängigkeiten zwingend nach gezogen werden sollen. Dabei prüft apt ob er Abhängigkeiten aus dem stable
und unstable
Zweig der Repositorys auflösen kann. Wenn jemand einen Fehler findet, bitte sendet mir diesen zu. Ich korrigiere dann den Eintrag. Falls ich noch auf etwas eingehen soll, dann bitte auch eine Info. Ansonsten findet man sehr gute Anleitungen im Netz dazu, Ich hoffe ich konnte etwas Licht ins Dunkel bringen.