GNU/Linux >> Linux Esercitazione >  >> Debian

Debian:come bloccare i non liberi con le preferenze Apt?

Voglio bloccare tutti i pacchetti da non-free , ad eccezione di quelli che
nomino esplicitamente. Attualmente ho:

/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

(L'idea è di aggiungere una stanza esplicita per ogni pacchetto che voglio da non libero.)

Ma non funziona:

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

Cosa mi sto perdendo?

Risposta accettata:

Devi assicurarti di non avere un'altra priorità pin più generale che abbia la priorità sul tuo non-free -regola esclusa. (Questo include il APT::Default-Release impostazione di configurazione che assegna una priorità alta alla release data.)

Ad esempio, se il tuo /etc/apt/preferences file (o un altro file in /etc/apt/preferences.d ) contiene qualcosa di simile al seguente:

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

quindi unstable i pacchetti avranno priorità pin 200, indipendentemente dal componente. Per farlo funzionare con il tuo file aggiuntivo, dovresti cambiarlo in

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

(e aggiungi una stanza aggiuntiva per contrib se ci tieni). (Nel tuo caso avresti stable ovviamente.)

Puoi controllare l'effetto delle tue priorità pin eseguendo

apt-cache policy

Se il tuo non-free -escludendo la configurazione funziona correttamente, dovresti vedere le voci per tutte le suite che stai monitorando, su non-free , con una priorità dei pin di -1. Una volta che funziona, scoprirai che non puoi più installare raccoon , o in effetti qualsiasi non-free pacchetto (anche se menzionato esplicitamente):dovrai aggiungere il non-free pacchetti che desideri nel tuo file di configurazione, con una priorità pin appropriata.

Ad esempio, ecco la configurazione che utilizzo:ho un file chiamato /etc/apt/preferences.d/non-free contenente

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

I pacchetti non gratuiti vengono ancora visualizzati nelle ricerche, ma non riesco a installarli:

$ 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

e apt policy d'accordo:

$ 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

Ma intel-microcode è installabile e aggiornabile. Quindi, dopo un downgrade forzato alla versione oldstable, ottengo

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

La apt policy l'output finisce per creare confusione:fai riferimento alla riga "Candidate" per vedere cosa accadrà davvero.

Correlati:Debian – Il PC si avvia direttamente in Windows 10 invece di avviare grub?
Debian
  1. Come gestire i pacchetti con APT su Ubuntu 18.04 LTS

  2. Come installare i pacchetti RPM su Debian 11 Bullseye

  3. Debian:automatizzare l'installazione di singoli pacchetti Debian 8 con prompt interattivi?

  4. Apt ottenere esempi di comandi per gestire i pacchetti su Ubuntu/Debian

  5. Come posso abilitare i pacchetti non liberi su Debian?

Come convertire i pacchetti Linux con Alien

Come creare pacchetti Debian dal sorgente

Come installare il pacchetto Debian (.deb).

Come velocizzare i download e gli aggiornamenti dei pacchetti con apt-fast su Debian 10

Come installare i pacchetti Deb in Ubuntu, Debian e Mint

Come utilizzare APT per gestire i pacchetti su Ubuntu?