完美安装软件包后,如何知道在基于 debian 的操作系统中下载的依赖项?
这个在安装的时候就给出了明确的信息,但是如果安装过就无法再获取到这些信息,那么如何在用户想要的时候随时获取这些信息呢?
答案1
要下载的依赖项取决于最终安装的包以及已存在的包集。这是apt
安装软件包时和类似工具确定并显示的内容。
安装软件包后,您将需要一些手动工作。apt-rdepends
将递归地列出包的所有依赖项;这将允许您确定需要下载的最大软件包集。例如,
$ apt-rdepends msitools
msitools
Depends: libc6 (>= 2.4)
Depends: libgcab-1.0-0 (>= 0.4)
Depends: libglib2.0-0 (>= 2.18.0)
Depends: libgsf-1-114 (>= 1.14.8)
Depends: libmsi0 (>= 0.93)
Depends: libuuid1 (>= 2.16)
Depends: libxml2 (>= 2.6.27)
libc6
Depends: libgcc1
libgcc1
Depends: gcc-8-base (= 8.3.0-6)
Depends: libc6 (>= 2.14)
gcc-8-base
[...]
通过适当的后处理(在本例中),| grep Depends | sort -u
您可以确定msitools
今天在 Debian 10 中安装需要gcc-8-base
(8.3.0-6)、libblkid1
(2.17.2 或更高版本)、、libbz2-1.0
( libc6
2.28 或更高版本)、libffi6
(3.0.4或更高版本)、libgcab-1.0-0
(0.4 或更高版本)、libgcc1
(1:4.2 或更高版本)、libglib2.0-0
(2.39.4 或更高版本)、libgsf-1-114
(1.14.8 或更高版本)、libgsf-1-common
(1.14.45-1 或更高版本)、libicu63
(63.1-1~ 或更高版本)、liblzma5
(5.1.1alpha+20120614 或更高版本)、libmount1
(2.28 或更高版本)、libmsi0
(0.93 或更高版本)、、libpcre3
(libselinux1
2.6-3~ 或更高版本)、libstdc++6
(5.2 或更高版本)、libuuid1
(2.16 或更高版本)、libxml2
(2.7. 4 或更高版本)和zlib1g
(1:1.2.3.3 或更高版本)。
将所有这些内容提供给apt-get download
,没有版本限制,将为您提供所有必需的包文件。 (不需要版本限制,因为使用 Debian 10 中的最新版本即可满足以上所有条件。)
这是一个简单的依赖关系树,但是一旦虚拟包或替代依赖关系可用,分析就会变得更加复杂。
答案2
评论变得有点长。
你安装的是什么?如何?
在大多数情况下,软件包依赖于其他软件包,因此软件在安装后即可使用。如果您安装的软件所具有的依赖项不是软件包的依赖项,我希望您安装的软件包的源能够提供一些信息。如果包没有适当的依赖项,则有几个选项可以说明如何输出它们。你可以尝试看看包里有没有可用的文档dpkg -l <package name>
。