如何检查deb包的依赖列表

如何检查deb包的依赖列表。 我正在运行Ubuntu 11.10并且我已经从var/cache/apt/archives备份了所有deb包。 我想格式化我的电脑并仅重新安装选定的应用程序。 另外,我如何获取已安装的软件包和依赖项列表。

除了dpkg方法,您还可以检查存储库中包的依赖关系:

 apt-cache depends package-name 

编辑更新了@Tino的推荐。 @ Tigran的评论不再适用。

这将显示有关该包的所有信息:

 dpkg -I package.deb 

apt-cache depends [Package-Name]也可以。 虽然如果从源列表外部获取.deb包,但apt-cache showpkg [Package-Name] && apt-cache depends [Package-Name]可能会显示过时的信息,或者可能与实际安装的软件包不同,因此dpkg -I [Package-Name]在这种情况下效果最好。

这里有一些草率,可能不是非常包含后处理你可以做dpkg -I输出以获取依赖项作为列表:

凝聚于计算机

 # dpkg -I package.deb | python -c "import sys, re; t=re.split(r'\n(?= ?[\w]+:)|:', sys.stdin.read()); print '\n'.join([i.strip() for i in {key.strip(): value.strip() for key, value in zip(t[::2], t[1::2])}['Depends'].split(',')])" # 

为人类扩展:

 dpkg -I package.deb | python -c " import sys, re; # Split keys and values into pairs (zipped together later) t=re.split( r'\n(?= ?[\w]+:)|:', sys.stdin.read() ); # Newline separate each dependency print '\n'.join([ # Trim each dependency value i.strip() for i in { # Build assoc array from package metadata key.strip(): value.strip() for key, value in zip(t[::2], t[1::2]) }['Depends'].split(',') ]) "