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.