web-dev-qa-db-ja.com

パッケージMercurialがchrootされた環境でx11-commonに依存するのはなぜですか?

前の質問に関連して( apt-get(またはaptitude)を-yで実行しますが、構成ファイルの置換を要求しませんか? )少し奇妙で説明しにくい動作に遭遇しました。おそらく誰かがそれをまだ説明できるでしょう。

ターゲット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.

apt-cache dependsからの出力を見ると、apt-getがこれらの依存関係をインストールする必要があると判断する理由は私にはありません。

ご覧のとおり、上記のリンクされた質問で説明されているDpkgオプションを渡します。その背後にある主な意図は、apt-get、そして最終的にはdpkgが自動インストールであると想定されているときにプロンプ​​トを表示しないようにすることです。

ただし、これらのオプションを渡さずに同じものを実行しようとしましたが、結果は同じです。

4
0xC0000022L

Mercurialパッケージは、wishが提供する仮想パッケージであるtkを推奨します。これは、依存関係としてchrootにインストールされていることがわかるすべてのX関連パッケージをプルするパッケージです。

おそらくあなたがしたいのは、--no-install-recommendsオプションをapt-getに追加して、推奨パッケージなしでMercurialをインストールすることです。推奨パッケージの依存関係のインストールを回避する方法の詳細については、 この回答 を参照してください。

12
Mike Miller