为什么 Ubuntu 列出的 Python 依赖项与 apt-get 安装的不同

为什么 Ubuntu 列出的 Python 依赖项与 apt-get 安装的不同

Ubuntu 的网站,Python 包中列出了三个依赖项。但是,当我使用 时apt-get install python,会安装另外六个包。

因此,Ubuntu 软件包说我需要:libpython-stdlib、python-minimal 和 python2.7

而且,apt-get 说我需要:libpython-stdlib、libpython2.7-minimal、libpython2.7-stdlib、python-minimal、python2.7 和 python2.7-minimal

这种差异从何而来?在输入命令之前,我应该使用什么参考来知道将安装哪些附加软件包apt-get install ...

答案1

这些是递归依赖关系。

依赖图(手动绘制,因此过于简单,仅包括您提到的包)看起来像这样:

python
├── libpython-stdlib
│   └── libpython2.7-minimal
├── python2.7
│   ├── libpython2.7-stdlib
│   └── python2.7-minimal
└── python-minimal
    └── python2.7-minimal

你看,每个依赖项只是一个可以拥有更多自身依赖项的常规包。你可以在https://packages.ubuntu.com单击所有依赖包(带有红点的包)的链接,然后对每个条目重复此操作。不幸的是,这是一项繁琐的任务。

找出需要安装哪些软件包的最简单方法是运行命令sudo apt install PACKAGE并查看其输出。或者,如果你想要安全起见,什么都不会发生,你只是得到信息,你可以只模拟安装:

apt -s install PACKAGE

还可以apt depends PACKAGE列出软件包的直接依赖项(和其他关系),但是如果您还添加--recurse获取间接依赖项,列表会变得太长而难以阅读,因为会显示大量重复项和不相关的条目。--important这有点帮助,但不会太多。还请记住,通常您已经安装了许多这些依赖项,因为其他东西依赖于它,所以这不会告诉您还需要安装什么。

相关内容