Answers:
除了该dpkg
方法之外,您还可以检查存储库中软件包的依赖关系:
apt-cache depends package-name
编辑用@Tino的推荐进行了更新。@Tigran的评论不再适用。
dpkg -I package
仅适用于已安装的软件包。 apt-cache
完成所有已知的软件包的工作apt-get update
。
apt-cache depends package
在这种情况下,这是一种更好的方法,因为showpkg
并不能确定依赖项是否是推荐,冲突等,因此有点令人费解。有关depends
结合使用的脚本,showpkg
请参见unix.stackexchange.com/a/362866/23450
这将显示有关该软件包的所有信息:
dpkg -I package.deb
dpkg -I splunkforwarder-6.3.3-f44afce176d0-linux-2.6-amd64.deb new debian package, version 2.0. size 15881308 bytes: control archive=3104 bytes. 153 bytes, 5 lines control 6058 bytes, 207 lines * postinst #!/bin/bash 2912 bytes, 93 lines * preinst #!/bin/bash Package: splunkforwarder Version: 6.3.3 Maintainer: Splunk Inc. <info@splunk.com> Architecture: amd64 Description: Splunk The platform for machine data.
/var/cache/apt/archives/
在软件包名称前放上,并使用制表符补全查找带有版本的完整软件包名称,例如dpkg -I /var/cache/apt/archives/elasticsearch_2.4.4_all.deb
。
sudo apt-get install --reinstall --download-only [package name]
。
apt-cache depends [Package-Name]
也会工作。尽管如果您.deb
从来源列表之外获取软件包,则类似的内容
apt-cache showpkg [Package-Name] && apt-cache depends [Package-Name]
可能会显示过期信息或可能与实际安装的软件包不同步,因此
dpkg -I [Package-Name]
在这种情况下效果最佳。
dpkg
没有-I
更多了,您必须使用它dpkg-deb
来显示软件包信息,包括依赖项:
dpkg-deb -I package.deb
这有些草率,可能不很全面,您可以进行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(',')
])
"
libc6\nadduser\n Installed-Size\n
。也就是说,它似乎比Depends行更匹配。