Port dependency tool (if that's what you'd call it)

Mark Evenson mark.evenson at gmx.at
Mon Apr 30 07:41:00 UTC 2007

Modulok wrote:
> I'm not quite sure how to put into word what I want, so bear with me. Is
> there a tool in the base system which does something along these lines:
> 1. Look at the makefile of a given port as far as its RUN_DEPENDS and
> 2. Subtracting what I have already installed, provide me with information
> about what would be fetched (and possibly installed) in an easy-to-digest
> format, recursively (for all dependents of dependents ... and so on).
> If not part of the base system, is there a port which offers this
> functionality?

The standard ports for this kind of functionality are


'portupgrade' is the older utility; 'portmaster' has recently come on 
the "scene", with slightly different aims.  I use 'portupgrade' as I 
haven't really spent the time to learn about 'portmaster'.

Once 'portupgrade' is installed, and you have built its database with 
'pkgdb', you should be able to answer your second question via

	freebsd$ portupgrade --noexecute --upward-recursive PORTNAME

where PORTNAME is the name of the port (qv. 'ports_glob' for how this is 
specified) to give you information on what needs to be updated.  You 
might need to trim the output a bit to get the succinct list of 
dependencies that need updating, but the output of 'portupgrade' is 
quite regular so a little regexp'in in your preferred scripting language 
  should bring you to the result you want.

There may be other more direct routes to the information you seek, but 
this way will definitely work.

<Mark.Evenson at gmx.at>

"[T]his is not a disentanglement from, but a progressive knotting into."

More information about the freebsd-questions mailing list