Removing stale dependencies (Was: Re: Concern about using pkg_delete
-r)
Doug Barton
dougb at FreeBSD.org
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.
hth,
Doug
--
This .signature sanitized for your protection
More information about the freebsd-ports
mailing list