141 votes

Comment faire pour qu'apt-get ignore certaines dépendances ?

Comment faire pour qu'apt-get ignore certaines dépendances ? Par exemple, je voulais installer mailx afin que je puisse l'utiliser pour envoyer des e-mails à partir de cron scripts/outils de génération de rapports. Cependant, l'installation de mailx installe également exim4 et tout un tas de dépendances (j'ai déjà Postfix installé) dont je n'ai pas vraiment besoin et dont je suppose que mailx peut aussi se passer.

Comment puis-je ignorer certaines dépendances tout en utilisant apt-get, qui est un bon outil ?

21voto

stew Points 9143

Puisque vous avez installé postfix depuis les sources, vous devez installer un paquet "factice" qui satisfera la dépendance mail-transport-agent de mailx (ou bsd-mailx). Le paquet "equivs" dans debian existe pour créer un tel paquet factice que vous pouvez installer pour dire à dpkg "cette dépendance est satisfaite".

La raison pour laquelle dire à dpkg d'ignorer simplement les dépendances n'est pas une bonne solution, est que vous ne dites à dpkg/apt de les ignorer que pour une seule transaction, vous ne pouvez pas lui dire d'ignorer les dépendances pour toujours. Chaque fois que vous utilisez apt, il vérifie les dépendances sur todo paquets

12voto

A.Badger Points 231

Vous pouvez télécharger le paquet avec apt-get, puis l'installer avec dpkg, en listant manuellement les dépendances que vous souhaitez ignorer.

Par exemple, si je veux télécharger mypackage mais qu'il dépend de libperl5.14 et que je ne veux pas installer libperl5.14 car j'ai une version différente, je peux ignorer cette dépendance comme suit :

apt-get download mypackage
dpkg -i --ignore-depends=libperl5.14 mypackage.deb

8voto

Chris Points 705

J'ai cherché cette option sur un serveur Ubuntu 12.04 exécutant Xen. Dans mes domaines, j'utilise le noyau -virtual, et apt a essayé de manière persistante d'installer Grub avec chaque mise à niveau du paquet du noyau. Grub n'est cependant pas nécessaire à l'intérieur du domU lorsque vous utilisez p[yv]Grub.

J'ai également cherché l'option -nodeps à apt-get, mais cela n'a pas fonctionné, donc j'ai fini par désinstaller/purger Grub* après chaque mise à jour du noyau.

Après tout, vraiment lecture une page de manuel peut parfois aider - il s'avère qu'une option apt-get similaire sur 12.04 semble être --no-install-recommends, qui fonctionne en fait dans ce cas, puisque Grub est listé comme 'recommandé' dans les informations du paquet (je suppose que ce n'est donc pas une "vraie" dépendance ?).

Je l'ajoute ici parce que dans mon cas, cela a résolu un problème similaire, et l'astuce pour '--no-install-recommends' n'a pas encore été mentionnée.

3voto

Dumb Questioner Points 428

Sur mon système debian, bsd-mailx dépend en fait de default-mta | mail-transport-agent (vous pouvez vérifier ce dont un paquet dépend avec apt-cache show <pkg> pour tout ce qui est dans les archives ou dpkg -s <pkg> pour les paquets installés.

Il se peut que votre paquetage postfix ne dispose pas de Provides: mail-transport-agent pour qu'apt ne réalise pas que vous avez un MTA installé. Cela vaudrait la peine de déposer un bogue pour cela si c'est un paquet officiel.

2voto

Cha Points 11

Comment exclure des paquets de la mise à niveau d'Apt-Get ?

  • Utilisation d'apt

    sudo apt-mark hold package_name

  • Utilisation de dpkg

    echo "package_name hold" | sudo dpkg --set-selections

  • Utilisation de l'aptitude

sudo aptitude hold package_name

Liste des paquets de marques

sudo apt-mark show[hold/auto/manual]

source : https://tecadmin.net/exclude-packages-from-apt-upgrade

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X