Date: Fri, 09 Jan 2009 20:05:00 -0800 From: Doug Barton <dougb@FreeBSD.org> To: Josh Rickmar <joshua_rickmar@eumx.net> Cc: freebsd-ports@FreeBSD.org Subject: Removing stale dependencies (Was: Re: Concern about using pkg_delete -r) Message-ID: <49681E6C.9060703@FreeBSD.org> In-Reply-To: <53980.67.177.142.45.1224810884.squirrel@ssl.eumx.net> References: <53980.67.177.142.45.1224810884.squirrel@ssl.eumx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49681E6C.9060703>