web-dev-qa-db-fra.com

Pourquoi le paquet Mercurial dépend-il de x11-common dans un environnement chrooté?

Par rapport à une question précédente, j’ai posé ( Faire en sorte qu’apt-get (ou aptitude) soit exécuté avec -y mais pas Demander le remplacement des fichiers de configuration? ) j’ai rencontré un comportement quelque peu étrange et difficile à expliquer. Peut-être que quelqu'un peut l'expliquer encore.

Lorsque j'exécute ce qui suit juste après un debootstap à l'intérieur de la cible chroot, le paquetage Mercurial semble nécessiter bien plus que ce qui semble logique:

apt-get -s -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install Mercurial
Reading package lists...
Building dependency tree...
The following extra packages will be installed:
  ca-certificates fontconfig-config fonts-dejavu-core libdrm-intel1
  libdrm-nouveau2 libdrm-radeon1 libelf1 libfontconfig1 libfontenc1
  libfreetype6 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libice6
  libllvm3.4 libpciaccess0 libsm6 libtcl8.6 libtk8.6 libtxc-dxtn-s2tc0
  libutempter0 libx11-6 libx11-data libx11-xcb1 libxau6 libxaw7 libxcb-dri2-0
  libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcb1
  libxcomposite1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2 libxi6
  libxinerama1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1 libxshmfence1
  libxss1 libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 Mercurial-common
  openssl tcl tcl8.6 tk tk8.6 x11-common x11-utils xbitmaps xterm
Suggested packages:
  libglide3 qct vim emacs kdiff3 kdiff3-qt kompare meld tkcvs mgdiff
  python-mysqldb python-pygments python-openssl tcl-tclreadline mesa-utils
  xfonts-cyrillic
Recommended packages:
  wish
The following NEW packages will be installed:
  ca-certificates fontconfig-config fonts-dejavu-core libdrm-intel1
  libdrm-nouveau2 libdrm-radeon1 libelf1 libfontconfig1 libfontenc1
  libfreetype6 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libice6
  libllvm3.4 libpciaccess0 libsm6 libtcl8.6 libtk8.6 libtxc-dxtn-s2tc0
  libutempter0 libx11-6 libx11-data libx11-xcb1 libxau6 libxaw7 libxcb-dri2-0
  libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcb1
  libxcomposite1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2 libxi6
  libxinerama1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1 libxshmfence1
  libxss1 libxt6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 Mercurial
  Mercurial-common openssl tcl tcl8.6 tk tk8.6 x11-common x11-utils xbitmaps
  xterm
0 upgraded, 64 newly installed, 0 to remove and 3 not upgraded.

En regardant le résultat de apt-cache depends, je ne comprends pas pourquoi apt-get décide que ces dépendances doivent être installées.

Comme vous pouvez le constater, je passe les options Dpkg décrites dans la question liée ci-dessus. L’intention principale derrière elle est d’empêcher apt-get et finalement dpkg d’intervenir lors de ce qui est supposé être une installation automatisée.

Cependant, j'ai essayé d'exécuter la même chose sans passer ces options et le résultat est le même.

4
0xC0000022L

Le paquetage Mercurial recommande wish, qui est un paquet virtuel fourni par tk. C'est le paquet qui extrait tous les paquets liés à X que vous voyez en train d'être installés en tant que dépendances dans le chroot.

Ce que vous voulez probablement faire est d'installer Mercurial sans les packages recommandés en ajoutant l'option --no-install-recommends à apt-get. Voir cette réponse pour plus d'informations sur l'installation des dépendances de paquets recommandées.

12
Mike Miller