查找依赖于另一个端口的 FreeBSD 端口

查找依赖于另一个端口的 FreeBSD 端口

我有一个无头 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

相关内容