Removing stale dependencies (Was: Re: Concern about using pkg_delete -r)

Doug Barton dougb at
Fri Jan 9 20:05:02 PST 2009

Josh Rickmar wrote:
> I'm hoping that this list covers port tools as well as the usual
> discussions about the actual ports.  If not, please CC this to the proper
> list.
> I want to use pkg_delete to remove an installed port, but also want to
> remove its orphaned dependencies along with it.  After looking at the
> pkg_delete(1) man page, the -r flag seems to be the option to use for this
> job.  My concern, though, is about the wording:
>> In addition to specified packages, delete all
>> packages that depend on those packages as well.
> Does this mean that if I pkg_delete -r pkgA, than pkgB (a dependency) will
> be removed with it, even though it is dependency of pkgC?  Or is
> pkg_delete (or pkg_deinstall) smart enough to understand this dependency
> and keep pkgB installed?
> If in this scenario pkgB would be deleted, should an extra warning be
> added to the man page so that users know that using this flag could
> potentially break their other ports?

ports-mgmt/portmaster has options to do what you want. The -s option
will detect any port that was installed as a dependency of another
port (or ports) but is no longer needed; and will give you an option
to delete it. (It's an option because things can sometimes move from
being a leaf port to being a dependency.)

The -e option allows you to "expunge" a leaf port that you no longer
want and then runs portmaster again with -s to detect any newly
orphaned dependencies.

Both options are compatible with the -[dD] options to delete or not
delete the relevant distfiles and the -b option to create backup
packages of the installed bits before deleting them.

I suggest running -s first, then 'portmaster -l' to get a list of what
you have installed. Anything listed as a "root" or "leaf" port can be
fed to the -e option.




    This .signature sanitized for your protection

More information about the freebsd-ports mailing list