Ich möchte alle Pakete von non-free
blockieren , außer denen, die ich
explizit nenne. Derzeit habe ich:
/etc/apt/sources.list
:
deb http://ftp.us.debian.org/debian stable main contrib non-free
/etc/apt/preferences.d/non-free_policy
:
Explanation: Disable packages from `non-free` tree by default
Package: *
Pin: release c=non-free
Pin-Priority: -1
(Die Idee ist, dass ich für jedes Paket, das ich von non-free will, eine explizite Strophe hinzufüge.)
Aber es funktioniert nicht:
[email protected]:/etc/apt/preferences.d# apt-get -s install firmware-linux-nonfree
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
firmware-linux-nonfree
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Inst firmware-linux-nonfree (0.43 Debian:8.4/stable [all])
Conf firmware-linux-nonfree (0.43 Debian:8.4/stable [all])
Was übersehe ich?
Akzeptierte Antwort:
Sie müssen sicherstellen, dass Sie keine andere, allgemeinere PIN-Priorität haben, die Vorrang vor Ihrem non-free
hat -Ausschlussregel. (Dazu gehört auch das APT::Default-Release
Konfigurationseinstellung, die dem jeweiligen Release eine hohe Priorität zuweist.)
Wenn beispielsweise Ihre /etc/apt/preferences
Datei (oder eine andere Datei in /etc/apt/preferences.d
) enthält etwa Folgendes:
Package: *
Pin: release a=unstable
Pin-Priority: 200
dann unstable
Pakete haben unabhängig von der Komponente die Pin-Priorität 200. Damit dies mit Ihrer zusätzlichen Datei funktioniert, sollten Sie dies in
Package: *
Pin: release a=unstable, c=main
Pin-Priority: 200
(und fügen Sie eine zusätzliche Strophe für contrib
hinzu wenn es dich interessiert). (In Ihrem Fall hätten Sie stable
natürlich.)
Sie können die Auswirkung Ihrer Pin-Prioritäten überprüfen, indem Sie
ausführenapt-cache policy
Wenn Ihr non-free
-Exclude-Konfiguration korrekt funktioniert, sollten Sie Einträge für alle Suiten sehen, die Sie verfolgen, auf non-free
, mit einer Pin-Priorität von -1. Sobald das funktioniert, werden Sie feststellen, dass Sie raccoon
nicht mehr installieren können , oder tatsächlich jeder non-free
Paket (auch wenn es ausdrücklich erwähnt wird) – Sie müssen den non-free
hinzufügen Pakete, die Sie Ihrer Konfigurationsdatei hinzufügen möchten, mit einer entsprechenden Pin-Priorität.
Als Beispiel hier das von mir verwendete Setup:Ich habe eine Datei namens /etc/apt/preferences.d/non-free
enthält
Package: intel-microcode
Pin: release n=buster, c=non-free
Pin-Priority: 100
Explanation: Disable packages from non-free tree by default
Package: *
Pin: release c=non-free
Pin-Priority: -1
Unfreie Pakete werden immer noch in Suchen angezeigt, aber ich kann sie nicht installieren:
$ sudo apt install lmbench
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lmbench is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'lmbench' has no installation candidate
und apt policy
stimmt zu:
$ apt policy lmbench
lmbench:
Installed: (none)
Candidate: (none)
Version table:
3.0-a9+debian.1-2 -1
-1 http://ftp.fr.debian.org/debian buster/non-free amd64 Packages
-1 http://ftp.fr.debian.org/debian testing/non-free amd64 Packages
-1 http://ftp.fr.debian.org/debian unstable/non-free amd64 Packages
Aber intel-microcode
ist installierbar und aktualisierbar. Daher bekomme ich nach einem erzwungenen Downgrade auf die alte stabile Version
$ apt policy intel-microcode
intel-microcode:
Installed: 3.20190618.1~deb9u1
Candidate: 3.20190618.1
Version table:
3.20190618.1 100
-1 http://ftp.fr.debian.org/debian buster/non-free amd64 Packages
-1 http://ftp.fr.debian.org/debian testing/non-free amd64 Packages
-1 http://ftp.fr.debian.org/debian unstable/non-free amd64 Packages
*** 3.20190618.1~deb9u1 100
100 /usr/var/lib/dpkg/status
$ apt list --upgradable
intel-microcode/stable,testing,unstable 3.20190618.1 amd64 [upgradable from: 3.20190618.1~deb9u1]
Die apt policy
Die Ausgabe ist etwas verwirrend – schauen Sie in der „Candidate“-Zeile nach, um zu sehen, was wirklich passieren wird.