GNU/Linux >> Znalost Linux >  >> Debian

Debian – Jak blokovat Non-free s předvolbami Apt?

Chci zablokovat všechny balíčky z non-free , kromě těch, které
výslovně jmenuji. Momentálně mám:

/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

(Myšlenka je taková, že přidám explicitní stanzu pro každý balíček, který chci od non-free.)

Ale to nefunguje:

[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])

Co mi chybí?

Přijatá odpověď:

Musíte se ujistit, že nemáte jinou, obecnější prioritu PIN, která má přednost před vaším non-free - vylučující pravidlo. (To zahrnuje APT::Default-Release konfigurační nastavení, které dané verzi přiřadí vysokou prioritu.)

Například pokud máte /etc/apt/preferences soubor (nebo jiný soubor v /etc/apt/preferences.d ) obsahuje něco jako následující:

Package: *
Pin: release a=unstable
Pin-Priority: 200

pak unstable balíčky budou mít prioritu 200 bez ohledu na komponentu. Aby to fungovalo s vaším dalším souborem, měli byste to změnit na

Package: *
Pin: release a=unstable, c=main
Pin-Priority: 200

(a přidejte další stanzu pro contrib pokud vám na tom záleží). (Ve vašem případě byste měli stable samozřejmě.)

Účinek priorit vašich pinů můžete zkontrolovat spuštěním

apt-cache policy

Pokud vaše non-free -s výjimkou konfigurace funguje správně, měli byste vidět položky pro všechny sady, které sledujete, na non-free s prioritou pinu -1. Jakmile to bude fungovat, zjistíte, že již nemůžete nainstalovat raccoon , nebo ve skutečnosti jakýkoli non-free balíček (i když je výslovně zmíněn) – budete muset přidat non-free balíčky, které chcete do konfiguračního souboru, s vhodnou prioritou pinů.

Jako příklad uvádím nastavení, které používám:Mám soubor s názvem /etc/apt/preferences.d/non-free obsahující

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

Balíčky, které nejsou zdarma, se stále objevují ve vyhledávání, ale nemohu je nainstalovat:

$ 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

a apt policy souhlasí:

$ 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

Ale intel-microcode je instalovatelný a upgradovatelný. Takže po vynuceném downgradu na oldstable verzi dostávám

$ 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]

apt policy výstup je nakonec poněkud matoucí – podívejte se na řádek „Kandidát“, abyste viděli, co se skutečně stane.

Související:Debian – PC se spouští přímo do Windows 10 místo spouštění grub?
Debian
  1. Jak spravovat balíčky pomocí APT na Ubuntu 18.04 LTS

  2. Jak nainstalovat balíčky RPM na Debian 11 Bullseye

  3. Apt get příklady příkazů pro správu balíčků na Ubuntu/Debianu

  1. Jak nastavit firewall s UFW na Debianu 10

  2. Debian – automatizace instalace jednotlivých balíčků Debian 8 s interaktivními výzvami?

  3. Jak povolím v Debianu balíčky, které nejsou zdarma?

  1. Jak nainstalovat Yarn na Debian 9

  2. Jak zobrazit seznam nainstalovaných balíčků v Debianu

  3. Jak nainstalovat Yarn na Debian 10