Question Empêcher l'installation de paquets spécifiques dans Debian


J'ai plusieurs serveurs Debian et je veux m'assurer qu'un serveur X ne soit jamais installé sur ceux-ci. Parfois, lorsque je suis en train d'installer un paquet, il existe des dépendances qui incluent X. Existe-t-il un moyen efficace de s'assurer que le serveur X n'est jamais installé? Je préférerais que les bibliothèques X11 ne soient pas installées non plus, car le transfert X ne devrait jamais être activé.


4
2018-06-01 18:15


origine




Réponses:


Mettre un paquet en attente ne fonctionne pas (très bien) pour y parvenir. Il ne couvre pas tous les outils de manière satisfaisante. Par exemple, aptitude sur la ligne de commande ignore complètement l’invocation précédente de aptitude hold somepackage, installer un paquet installe également les dépendances même si elles sont en attente.

La meilleure façon, à mon avis, est de créer un faux paquet (nommé par exemple "indésirable-pkg") qui entre en conflit avec tous les paquets que vous ne voulez pas et de l'installer (avec dpkg -i). Et puis vous mettez ce paquet en attente pour éviter son retrait.

Vous pouvez utiliser un outil tel que "equivs" pour créer facilement le faux paquet. Voir equivs-control  et equivs-build. Un champ de conflits ressemble à ceci:

Conflicts: xserver-xorg-video-2, xserver-xorg-core

Vous pouvez entrer en conflit avec les dépendances de bas niveau communes à tous les packages indésirables pour éviter de répertorier chaque package individuel (ou utiliser un package virtuel tel que xserver-xorg-video-2).

Notez que l'épinglage ne fonctionne pas pour résoudre ce problème. Si tu fais aptitude install xorg il installera de nombreux paquets xserver-xorg- * malgré le blocage négatif. BTW, pour que l’épingle soit reconnue par apt (vérifiez auprès de apt-cache policy <package>) vous devez utiliser une syntaxe comme celle-ci:

$ cat /etc/apt/preferences
Package: xserver-xorg-video-vga
Pin: version *
Pin-Priority: -100
$ LANG=C apt-cache policy xserver-xorg-video-vga
xserver-xorg-video-vga:
  Installed: (none)
  Candidate: 1:4.1.0-8
  Package pin: 1:4.1.0-8
  Version table:
     1:4.1.0-8 -100
        500 http://localhost lenny/main Packages

L'utilisation d'une expression rationnelle dans le champ Package ne fonctionne pas (à l'exception de "*" seul, auquel cas vous avez d'autres exigences dans le champ Pin).


9
2018-06-02 07:35



Je pense que vous devriez déposer un rapport de bogue sur aptitude. Soit "aptitude hold" ne définit pas correctement la sélection pour le paquet, soit "aptitude install" n'honore pas la sélection. - Sparr
De nombreux (anciens) rapports de bogue sont déjà ouverts sur ce sujet. Malheureusement, le responsable de la maintenance est occupé et ne peut traiter qu'un nombre aussi important de bogues chaque mois. Voir bugs.debian.org/aptitude et recherchez "hold". - Raphaël Hertzog


http://www.debian.org/doc/FAQ/ch-pkg_basics.fr.html

Voir la section 7.12, "Comment mettre un paquet en attente?"

Si vous maintenez un paquet actuellement désinstallé, il ne sera jamais installé.


4
2018-06-01 19:23





Vous pouvez utiliser apt pinning pour empêcher l'installation de certains paquets. Essayez de mettre ceci dans /etc/apt/preferences:

Paquet: xserver-xorg *
Priorité de broche: -100

Devrait empêcher l'installation de tous les paquets xserver-xorg *.


2
2018-06-02 08:07



Oui, voir cette page de manuel: man.cx/apt_preferences - Bruno De Fraine
Quand les caractères génériques ont-ils commencé à fonctionner dans les noms de paquets dans apt_preferences? - derobert