为什么包 mercurial 在 chroot 环境中依赖于 x11-common?

0xC*_*22L 4 package-management apt dpkg 14.04

关于我提出的前一个问题(使用 -y 运行 apt-get(或 aptitude)但不提示替换配置文件?)我遇到了一个有点奇怪且难以解释的行为。也许有人仍然可以解释它。

当我debootstap在目标内部之后立即执行以下命令时chroot,包mercurial似乎需要比看起来更合理的更多内容:

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.
Run Code Online (Sandbox Code Playgroud)

查看apt-cache depends它的输出超出了我为什么apt-get决定必须安装这些依赖项的原因。

如您所见,我正在传递Dpkg上述链接问题中所述的选项。它背后的主要目的是防止apt-get并最终dpkg在应该是自动安装的过程中进行提示。

但是,我尝试在不传递这些选项的情况下运行相同的程序,结果是相同的。

Mic*_*ler 12

mercurial包建议wish,这是由一个虚包tk。这个包包含所有你看到的作为依赖项安装在 chroot 中的与 X 相关的包。

您可能想要做的是mercurial通过将--no-install-recommends选项添加到apt-get. 有关避免安装推荐的软件包依赖项的更多信息,请参阅此答案