Date: Sat, 10 Jan 2009 07:22:21 -0800 From: "Garrett Cooper" <yanefbsd@gmail.com> To: "Doug Barton" <dougb@freebsd.org> Cc: Josh Rickmar <joshua_rickmar@eumx.net>, freebsd-ports@freebsd.org Subject: Re: Removing stale dependencies (Was: Re: Concern about using pkg_delete -r) Message-ID: <7d6fde3d0901100722g67c5200ex5552b2e19d1ae7d4@mail.gmail.com> In-Reply-To: <49681E6C.9060703@FreeBSD.org> References: <53980.67.177.142.45.1224810884.squirrel@ssl.eumx.net> <49681E6C.9060703@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 9, 2009 at 8:05 PM, Doug Barton <dougb@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7d6fde3d0901100722g67c5200ex5552b2e19d1ae7d4>