Rebuilding my ports area

David Wolfskill david at
Fri Jul 24 11:49:50 UTC 2015

On Fri, Jul 24, 2015 at 05:21:07PM +1000, Dave Horsfall wrote:
> FreeBSD 9.3-RELEASE-p20 (GENERIC) #0: Tue Jul 21 19:29:33 UTC 2015
> Having completely scragged my ports area following various changes to 
> pkg/pkgng/etc, and being unable to "sysinstall" it from CD (not found for 
> some reason) or via FTP (not found on server etc), I found a pristine copy 
> of ports.txz and unpacked it (sigh, yet another compression scheme), after 
> renaming the old directory.
> Anyway, what do I do now?  Assume that many ports have been installed, and 
> that the databases etc are probably a dog's breakfast, per the conflicts 
> that I have posted here earlier.  If it helps, I have a list of those 
> ports that were installed, and hopefully the dependencies will be taken 
> care of automagically.
> ....

Near the bottom of portmaster(8), there is a procedure entitled "Using
portmaster to do a complete reinstallation of all your ports".  I have
used that procedure (with some variations) over the years -- e.g.,
migrating from 8.x -> 9.x, then 9.x to  10.x; more recently, I extracted
bits of it to migrate from stable/10 i386 -> stable/10 amd64 [gory
details at

Based on my experiences doing those, I *think* that using that procedure
as a basis (and adapting in slightly) may serve you well.  (Note that as
of this writing, that procedure still refers to the old pkg_* tools.  So
instead of "pkg_delete -a" I used "pkg delete -fa".)

One of the first things, though, would be to determine if you'r going to
use pre-built packages (and if so, built by whom) or build the ports

The procedure I used in the above-cited article -- once I finished
bumping into issues caused by my ignorance (or other oddities) -- turned
out to work quite well -- but I was only able to accomplish it because I
had available hardware to perform the package-building (using poudriere)
for me.

portmaster itself is "merely" a shell script, so it has no dependencies
on (other) ports; installing it on a pristine system will bring in pkg,
but no others.

Note, too: after generating the list of 'installed ports" (which may
look incomplete: it doesn't actually list all of your inistalled ports,
but rather, a subset that is necessary to get all of them installed), I
finid it useful to trim the list further and re-order the list (so that
more critical, smaller port -- such as sudo and tmux -- are built before
more complicated ports cause problems).  One of the things I typically
do on non-development machines during this pass is remove ports from the
list that are "obviously" only build dependencies -- autoconf*;
automake*; nearly all devel/* ports -- as the installation of the ports
I really use directly will bring the others in if they are actually needed.

If at all possible, of course, make a good (tested!) backup before you
do the "pkg delete -af". :-}

David H. Wolfskill				david at
Those who murder in the name of God or prophet are blasphemous cowards.

See for my public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 949 bytes
Desc: not available
URL: <>

More information about the freebsd-ports mailing list