Oft genug steht man vor dem Problem: Man braucht ein bestimmtes Stück Software, doch in Debian ist es nicht zu finden. Sei es nun aus rechtlichen, ideologischen oder Unbeachtetheits-Gründen nicht im Kern-Debian; irgendwo muss das Programm her.
Trägt man nun ein fremdes APT-Repository in seine
/etc/apt/sources.list
ein, scheint die Welt erstmal in Ordnung;
doch setzt man sich damit auch gewissen Risiken aus. Dieser Artikel versucht,
dem Leser ein größeres Maß an Kontrolle über die Nutzung des Fremd-Repository zu geben.
(Ab hier nur skizzenhafte Vor-Ausarbeitung.)
Ann.: /etc/apt/sources.list
enthält:
deb http://foo.example.com/debian stable-bar main
deb-src http://foo.example.com/debian stable-bar main
Release
enthält:
Origin: Fooluff Bartor
Label: bar
Codename: etch-bar
Suite: stable-bar
In die /etc/apt/preferences
tun:
Explanation: Ignore packages from the foo repository unless explicitly allowed.
Explanation:
Package: *
Pin: origin foo.example.com
Pin-Priority: -1
Package: *
Pin: release o=Fooluff Bartor
Pin-Priority: -1
Package: *
Pin: release l=bar
Pin-Priority: -1
Package: *
Pin: release a=etch-bar
Pin-Priority: -1
Package: *
Pin: release a=stable-bar
Pin-Priority: -1
Möchte man nun Paket baz installieren:
Explanation: Use baz from the foo repository because of $reason.
Package: baz
Pin: release l=bar
Pin-Priority: 500
Nun kann der Betreiber des externen Repositories einem zumindest nicht mehr unbemerkt einfach "Ersatz" für Kern-Debian unterschieben, auch wenn der Key seines Repositories in apt-key(8) eingetragen ist.
Zu Beachten ist allerdings:
Ein
ins post-inst vom Paket
baz tun (oder schlimmeres) kann man natürlich immer.rm -rf /
Die Hinweise in diesem Artikel sollen in erster Linie größere Kontrolle über die Paketwahl sowie einen praktischen Einstieg in apt_preferences(5) ermöglichen; sie ersetzen nicht das nötige Vertrauen in den Betreiber eines Fremd-Repositories (oder der es hostenden Maschinen).
Note: This document is (somewhat) valid HTML4.01, not XHTML.