Dan*_*iel 3 package-management apt dependencies deb
假设我有一个包列表:
foo
libfoo
bar
baz
quux
Run Code Online (Sandbox Code Playgroud)
并假设foo需要libfoo和bar,并且baz需要quux。
我想要一种方法来放入那个列表,然后取出这个列表:
foo
baz
Run Code Online (Sandbox Code Playgroud)
即 - 我想要安装的最小包列表 - 在依赖解析后 - 导致安装整个包列表。
小智 5
我创建了一个完全符合您要求的脚本:https : //gist.github.com/kotarou3/2b311fb7b79ae6b682246b32acf0b7e9
python3-apt和python3-networkx是依赖项。它使用 apt 包缓存作为包信息的来源。
包名本身每行输出一个到 stdout,而关于它们的任何注释(例如它们是否是循环的一部分)都将输出到 stderr
例子:
$ ./find-top-level-packages.py nginx nginx-core zlib1g firefox
firefox
nginx
$ ./find-top-level-package.py -h
usage: find-top-level-packages.py [-h] [--root-dir dir]
[--follow-unspecified-packages]
[--no-use-recommends]
[--show-missing-recommends]
[package [package ...]]
Find top-level packages of the dependency graph
positional arguments:
package package names to use (default: all installed packages)
optional arguments:
-h, --help show this help message and exit
--root-dir dir act as if chrooted in the specified directory
--follow-unspecified-packages
follow dependencies of packages not part of the
initial input
--no-use-recommends don't use recommended packages for the dependency
graph
--show-missing-recommends
list missing recommended packages suffixed with a dash
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1561 次 |
| 最近记录: |