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

Garrett Cooper yanefbsd at gmail.com
Sat Jan 10 07:22:24 PST 2009


On Fri, Jan 9, 2009 at 8:05 PM, Doug Barton <dougb at freebsd.org> wrote:
> 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

I just started using portmaster this past week, and it appears to go a
bit crazy removing dependencies -- there were a lot of libraries
broken after removing dependencies that shouldn't have been. This
could all be because of bad dependencies in the Makefiles though.

For instance, I kept azureus, but zapped libcroco and libgnome (I
thought they had gotten included in the wine-doors install I deleted
on my system), and it broke my upgrade from azureus to vuze (the
libraries for both are essentially the same, but vuze uses swt-devel
whereas azureus uses swt I think..).

My 2 cents,
-Garrett


More information about the freebsd-ports mailing list