我如何确保依赖项列表是递归的,并且使用 apt(sudo apt-get download <package>)下载也是递归进行的?
我正在尝试下载本地文件夹中的每个 .deb 文件,但 sudo apt-get -download 无法有效下载给定的包及其依赖项。它只能下载特定的包。
所以,我正在做
sudo apt-cache depends doxygen
输出为:
doxygen
Depends: libc6
Depends: libclang1-3.6
Depends: libgcc1
Depends: libstdc++6
Conflicts: graphviz
Suggests: doxygen-latex
Suggests: doxygen-doc
Suggests: doxygen-gui
Suggests: graphviz
graphviz:i386
因此,
sudo apt-get download < each dependency mentioned above >
sudo dpkg -i <each dependency mentioned above>
我收到错误libllvm
,说其中一个依赖项未安装。
我如何确保依赖项列表是递归的,并且使用 apt 下载也是递归进行的?
答案1
apt-depends(或 16.04 及更高版本中的 aptdepends)有一个 --recurse 标志,但它并不像您想象的那么有用:
$ apt depends --recurse hello | grep Depends | wc -l
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
102003
您的整个系统由数千个相互依赖的软件包组成。您在系统上安装的应用程序可能仅依赖于少数软件包……但间接依赖于其中大多数软件包。
幸运的是,有更好、更简单的答案。
确定已卸载依赖项的一个简单方法是使用 apt 的 --simulate 标志:
$ apt install --simulate doxygen
确定已卸载依赖项的另一种简单方法是使用 Synaptic 中的安装脚本功能。