GNU/Linux >> Tutoriels Linux >  >> Debian

Debian – Comment bloquer les non-free avec les préférences Apt ?

Je veux bloquer tous les paquets de non-free , sauf pour ceux que je
nomme explicitement. Actuellement, j'ai :

/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'idée est que j'ajoute une strophe explicite pour chaque paquet non-free que je veux.)

Mais ça ne marche pas :

[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'est-ce que je rate ?

Réponse acceptée :

Vous devez vous assurer que vous n'avez pas une autre priorité de broche plus générale qui a priorité sur votre non-free -règle d'exclusion. (Cela inclut le APT::Default-Release paramètre de configuration qui attribue une priorité élevée à la version donnée.)

Par exemple, si votre /etc/apt/preferences file (ou un autre fichier dans /etc/apt/preferences.d ) contient quelque chose comme ceci :

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

alors unstable les packages auront la priorité de broche 200, quel que soit le composant. Pour que cela fonctionne avec votre fichier supplémentaire, vous devez le remplacer par

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

(et ajouter une strophe supplémentaire pour contrib si cela vous intéresse). (Dans votre cas, vous auriez stable bien sûr.)

Vous pouvez vérifier l'effet de vos priorités de broches en exécutant

apt-cache policy

Si votre non-free -sauf si la configuration fonctionne correctement, vous devriez voir des entrées pour toutes les suites que vous suivez, sur non-free , avec une priorité de broche de -1. Une fois que cela fonctionnera, vous constaterez que vous ne pouvez plus installer raccoon , ou en fait n'importe quel non-free package (même s'il est mentionné explicitement) — vous devrez ajouter le non-free packages que vous souhaitez dans votre fichier de configuration, avec une priorité de broche appropriée.

À titre d'exemple, voici la configuration que j'utilise :j'ai un fichier nommé /etc/apt/preferences.d/non-free contenant

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

Les packages payants apparaissent toujours dans les recherches, mais je ne peux pas les installer :

$ 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

et apt policy accepte :

$ 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

Mais intel-microcode est installable et évolutif. Ainsi après un downgrade forcé vers la version oldstable, j'obtiens

$ 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 sortie finit par être quelque peu déroutante - reportez-vous à la ligne "Candidat" pour voir ce qui va vraiment se passer.

Connexe :Debian – PC démarre directement dans Windows 10 au lieu de lancer grub ?
Debian
  1. Comment gérer les packages avec APT sur Ubuntu 18.04 LTS

  2. Comment installer les packages RPM sur Debian 11 Bullseye

  3. Debian – Automatiser l'installation de paquets Debian 8 individuels avec des invites interactives ?

  4. Apt obtenir des exemples de commandes pour gérer les packages sur Ubuntu/Debian

  5. Comment activer les paquets non libres sur Debian ?

Comment convertir des packages Linux avec Alien

Comment construire des paquets Debian à partir de la source

Comment installer le paquet Debian (.deb)

Comment accélérer les téléchargements et les mises à jour de packages avec apt-fast sur Debian 10

Comment installer les packages Deb dans Ubuntu, Debian et Mint

Comment utiliser APT pour gérer les packages sur Ubuntu ?