在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
这有点帮助,但不会太多。还请记住,通常您已经安装了许多这些依赖项,因为其他东西依赖于它,所以这不会告诉您还需要安装什么。