GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Debian – Wie blockiert man Non-Free mit Apt-Einstellungen?

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

ändern
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ühren
apt-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.

Verwandte:Debian – PC bootet direkt in Windows 10, anstatt Grub zu starten?
Debian
  1. So verwalten Sie Pakete mit APT unter Ubuntu 18.04 LTS

  2. So installieren Sie RPM-Pakete auf Debian 11 Bullseye

  3. Debian – Automatisierung der Installation einzelner Debian-8-Pakete mit interaktiven Eingabeaufforderungen?

  4. Apt get-Befehlsbeispiele zum Verwalten von Paketen unter Ubuntu/Debian

  5. Wie aktiviere ich unfreie Pakete auf Debian?

So konvertieren Sie Linux-Pakete mit Alien

Wie man Debian-Pakete aus den Quellen erstellt

So installieren Sie das Debian-Paket (.deb).

So beschleunigen Sie Paket-Downloads und -Updates mit apt-fast unter Debian 10

So installieren Sie Deb-Pakete in Ubuntu, Debian &Mint

Wie verwende ich APT, um Pakete unter Ubuntu zu verwalten?