removing non-existent ports from /var/db/pkg ?

Anton Shterenlikht mexas at
Tue Oct 2 21:28:26 UTC 2012

	From: Matthew Seaman <m.seaman at>

	On 02/10/2012 12:38, Jamie Paul Griffin wrote:
	> [ Matthew Seaman wrote on Tue  2.Oct'12 at 12:13:05 +0100 ]
	> =20
	>> At the moment, the only way to clear up is to manually remove the
	>> outdated subdirectories from /var/db/ports.  You can work out what is
	>> out of date by comparing the list of sub-dirs to the list of installed=

	>> ports obtained by
	>>     pkg info -aq
	>> Should only take a few minutes to write a small script to do that.
	>> Be careful not to trash local.sqlite, repo.sqlite or auditfile -- in
	>> fact, anything in /var/db/pkg which is not a directory should be prese=
	>> Note: even if you do delete subdirs that are actually still in use, th=
	>> shouldn't be a huge disaster.  The only data still in those directorie=
	>> will be portmaster's cache of distfile info (which it can cope without=
	>> it uses it to efficiently identify old distfiles that can themselves b=
	>> tidied up) and flag files like +IGNOREME which you will want to
	>> regenerate before you next do a ports update.
	> Ok, thanks for clarifying that for us. Very much appreciated.=20

	I just committed this:

	Which makes the patch compatible with portmaster-3.14 and also now makes
	portmaster remove superfluous subdirectories of $PKG_DBDIR when removing
	any packages.  This should keep $PKG_DBDIR reasonably tidy going
	forwards, but it won't clean up all of the existing problem subdirs.
	For that you'll need a one-off job to clean up as described above.

Thanks, the patch applied fine.
Will see what happens with $PKG_DBDIR
next time I update something.


More information about the freebsd-ports mailing list