Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to build a port which depends on apache-ant.

I thought I could run make build-depends-list to see all dependencies required by this port:

# make build-depends-list

But after installing everything, the port had a dependency list which was a mile long:

apache-ant-1.8.1 desktop-file-utils-0.15_2 gamin-0.1.10_4 gettext- gio-fam-backend-2.26.1 glib-2.26.1_1 gmp-5.0.1 inputproto-2.0 javavmwrapper-2.3.5 kbproto-1.0.4 libX11-1.3.3_1,1 libXau-1.0.5 libXdmcp-1.0.3 libXext-1.1.1,1 libXi-1.3,1 libXtst-1.1.0 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.7 pcre-8.12 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6 recordproto-1.14 unzip-6.0 xextproto-7.1.1 xproto

This dependency list is a rude surprise, and I would like to know about it before I commit to installing a port.

How can I see all dependencies, and all subdependencies for a port?

share|improve this question
up vote 13 down vote accepted

You are very close. Try this instead:

make all-depends-list

That will recurse through all dependencies and print them for you. To test different build scenarios and how they affect the dependency list, try things like:

make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list

make WITHOUT_X11=yes all-depends-list

Here is the full set of dependency print targets:


Cheers, Greg

share|improve this answer
Hi Greg, do you know where the dependency print targets are documented? Is there a specific man file? I don't have a question ... It's just for a deeper understanding. Thanks. – Tom Dworzanski Sep 21 '14 at 7:19
Nevermind. They are documented in man ports. – Tom Dworzanski Sep 25 '14 at 8:40

You would have to recursively get all subdependencies as well. There probably are some tools for that in the ports-mgmt category...

I use portmaster(8) for port management. It always gathers (sub)dependencies before compiling and installing a port:

~> portmaster --show-work devel/apache-ant
===>>> Port directory: /usr/ports/devel/apache-ant
===>>> Starting check for all dependencies
===>>> Gathering dependency list for devel/apache-ant from ports

===>>> Installed converters/libiconv
===>>> Installed devel/gettext
===>>> NOT INSTALLED            devel/gmake
===>>> Installed devel/libcheck
share|improve this answer

Most dependency lists are hard to parse at a glance. I prefer using this wrapper script by, because it displays a nice, nested list with both upward and downward dependencies:

$ ruby18-bdb-0.6.5_1
Package ruby18-bdb-0.6.5_1 depends on:
Package ruby18-bdb-0.6.5_1 is required by:

Running it without arguments can produce a very long list, because it shows all dependency chains for all files, so I usually only recommend running it for a particular port.

share|improve this answer

To list ports on which depends:

pkg_info -rx "port-name"

To list ports which require :

pkg_info -Rx "port-name"

-- Answer from this website: (thanks to Ross)

share|improve this answer
Thanks for the response. However, I need to point out that the pkg_* tools were deprecated and replaced with pkgng – Stefan Lasiewski Dec 9 '14 at 19:29
The command works; in pkgng you only have to remove the underscore: pkg info -Rx 'port-name' – Eric Jan 20 at 19:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.