GNU/Linux >> Tutoriales Linux >  >> Debian

Debian – ¿Cómo bloquear non-free con las preferencias de Apt?

Quiero bloquear todos los paquetes de non-free , a excepción de aquellos que
nombre explícitamente. Actualmente, tengo:

/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

(La idea es que agrego una estrofa explícita para cada paquete que quiero de no libre).

Pero no funciona:

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

¿Qué me estoy perdiendo?

Respuesta aceptada:

Debe asegurarse de que no tiene otra prioridad de PIN más general que tenga prioridad sobre su non-free -Regla excluyente. (Esto incluye el APT::Default-Release ajuste de configuración que asigna una alta prioridad a la versión dada).

Por ejemplo, si su /etc/apt/preferences archivo (u otro archivo en /etc/apt/preferences.d ) contiene algo como lo siguiente:

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

entonces unstable los paquetes tendrán prioridad de pin 200, independientemente del componente. Para que esto funcione con su archivo adicional, debe cambiar esto a

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

(y agregue una estrofa adicional para contrib si te importa eso). (En tu caso tendrías stable por supuesto.)

Puede verificar el efecto de las prioridades de sus pines ejecutando

apt-cache policy

Si tu non-free -excluir la configuración funciona correctamente, debería ver entradas para todas las suites que está rastreando, en non-free , con una prioridad de pin de -1. Una vez que esté funcionando, descubrirá que ya no puede instalar raccoon , o de hecho cualquier non-free paquete (incluso si se menciona explícitamente):deberá agregar el non-free paquetes que desee en su archivo de configuración, con una prioridad de pin adecuada.

Como ejemplo, aquí está la configuración que uso:tengo un archivo llamado /etc/apt/preferences.d/non-free que contiene

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

Los paquetes que no son gratuitos siguen apareciendo en las búsquedas, pero no puedo instalarlos:

$ 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

y apt policy está de acuerdo:

$ 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

Pero intel-microcode es instalable y actualizable. Por lo tanto, después de una degradación forzada a la versión estable anterior, obtengo

$ 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 la salida termina algo confusa:consulte la línea "Candidato" para ver qué sucederá realmente.

Relacionado:Debian:¿la PC arranca directamente en Windows 10 en lugar de iniciar grub?
Debian
  1. Cómo administrar paquetes con APT en Ubuntu 18.04 LTS

  2. Cómo instalar paquetes RPM en Debian 11 Bullseye

  3. Debian:¿automatización de la instalación de paquetes individuales de Debian 8 con avisos interactivos?

  4. Apt obtener ejemplos de comandos para administrar paquetes en Ubuntu/Debian

  5. ¿Cómo habilito paquetes no libres en Debian?

Cómo convertir paquetes de Linux con Alien

Cómo compilar paquetes Debian desde el código fuente

Cómo instalar el paquete Debian (.deb)

Cómo acelerar las descargas y actualizaciones de paquetes con apt-fast en Debian 10

Cómo instalar paquetes Deb en Ubuntu, Debian y Mint

¿Cómo usar APT para administrar paquetes en Ubuntu?