I performed an rm -r on /var/lib/pkg

RW fbsd06 at mlists.homeunix.com
Fri Oct 12 17:42:34 PDT 2007


On Fri, 12 Oct 2007 23:13:58 +0200
Mel <fbsd.questions at rachie.is-a-geek.net> wrote:

> On Friday 12 October 2007 22:19:41 RW wrote:
> > On Thu, 11 Oct 2007 14:26:19 -0600
> >
> > James <jamesh at lanl.gov> wrote:
> > > Call it a moment of sheer stupidity, call it a misremembering,
> > > call it whatever you want (and I imagine I'll hear a few
> > > different ones), but I just did an rm -r /var/lib/pkg.
> > >
> > > Before I type anything to damage things further, does anyone have
> > > any suggestions as to how to recover from this? I have other
> > > FreeBSD boxes available to me, none with the same pkg list,
> > > though. I'll be reading man pkgdb in the meantime..
> >
> > This came up recently in another thread, and what seemed to be the
> > best solution to me, was this:
> >
> > 1. work out which leaf-ports you actually need - don't worry about
> > the dependencies.
> >
> > 2. at your leisure build new packages under a chroot environment,
> > or on another machine.
> >
> > 3. back-up /usr/local/etc (or the whole of /usr/local)
> >
> > 4. rm -rf  /usr/local/*
> >
> > 5. Restore  /usr/local/etc and install packages.
> 
> Why would you go through 3-5 when you can just 
> mv /chroot/build/directory/var/db/pkg /var/db/pkg ?

For the reasons that that you snipped off the bottom of my post.

> >                  ... avoids leaving any orphaned files,and most
> > importantly makes sure that all of the installed package have an
> > entry in /var/db/pkg. If you miss any of these entries, it may
> > cause a lot of trouble down the line.

/chroot/build/directory/var/db/pkg is only a rough guess as to
what was actually installed under /usr/local/.  Maybe some forgotten
dependency doesn't get included in the new build.  A year from now you
may find odd build problems, or new port installs may use orphaned
files with critical vulnerabilities that portaudit can't detect. 



More information about the freebsd-questions mailing list