我有一个无头 FreeBSD 服务器,其中一些端口安装了大量与 X11 相关的软件包。我想知道这些端口是什么,这样我就可以摆脱不需要的 X 相关包。有办法解决这个问题吗?
答案1
当前接受的答案已过时。 FreeBSD 已将其遗留的打包工具替换为包装袋。
这是查询包的反向依赖关系的新方法:
pkg info -r <pkg name>
例子:
root@server:/usr/ports # pkg info -r python27
python27-2.7.6_4:
python2-2_2
talloc-2.0.8
tevent-0.9.18
tdb-1.2.12,1
ldb-1.1.16
glib-2.36.3_2
xcb-proto-1.9
gobject-introspection-1.36.0_2
samba4-4.0.13
答案2
pkg_info
回答这样的问题。使用该-R
选项,它需要已安装端口的名称,并将显示依赖于该端口的所有端口:
pkg_info -R libXfont-1.4.3,1
您可以使用通配符来避免指定带有版本号的名称:
pkg_info -R libXfont-\*
请注意,这不会递归地工作,因此您需要pkg_info -R
对结果列表中的每个端口再次执行此操作,直到找到问题的根源。
请注意,在服务器上,将以下内容放入通常是一个好主意/etc/make.conf
:
WITHOUT_X11=yes
这将使大多数(所有?)端口跳过对任何 X11 相关内容的依赖。
答案3
虽然接受的答案是正确的,但有一个更强大且功能丰富的变体可以为您提供更大的灵活性:
# pkg query %ro python27
misc/mc
devel/talloc
lang/python2
lang/python
devel/git
devel/tevent
databases/tdb
devel/py-setuptools
dns/py-dnspython
devel/py-iso8601
net/samba48
这将为您提供本地安装的端口的反向依赖关系。在某些情况下,您可能想要列出该端口上的所有现有依赖项,在这种情况下pkg rquery
可以为您提供该信息:
# pkg rquery %ro python27|wc -l
3758
请查阅可能的查询标志的完整列表,这些标志也man pkg-query
应该适用。pkg-rquery