On 11/03/2006 08:42, Andy Greenwood wrote:
couldn't you do something like this?

1) install all your "big" ports (leafs with lots of dependancies)
2) run this to get a list of depedancy ports which should already be
there, just not in /var/db/pkg

# pkg_info -ar | awk '/Dependency:/ {print $2}'|sort|uniq

3) "install" these ports so that they get added to /var/db/pkg.

Seems like this should work, am I missing something?

I think the above would work just as well. The only difference I see is that `pkgdb -F` is automating step 3 for me. It's determining what dependencies are not present, and asking if I would like to install them. This way, for example, I do not have to determine where vte-0.14.1_1 resides and cd in there, and make it... then on to the next.. etc.


On 11/2/06, Eric Schuele <[EMAIL PROTECTED]> wrote:
On 11/02/2006 10:21, [EMAIL PROTECTED] wrote:
> On 11/2/06, Eric Schuele <[EMAIL PROTECTED]> wrote:
>> On 11/01/2006 11:05, Karol Kwiatkowski wrote:
>> > On 01/11/2006 17:40, Eric Schuele wrote:
>> >> Hello,
>> >>
>> >> [Running 6.2-PRERELEASE as of Oct 30th]
>> >>
>> >> My /var filesystem on my laptop died this morning.
> . . .
>> >> 2) If I have destroyed it what can I do at this point? I have no full >> >> backup of /var. I had nothing of any real importance on there. Some >> >> MySQL data... but I've got that. My package database comes to mind. >> >> but nothing of any personal value... just stuff to keep the OS on its
>> >> feet.  So... if its gone... is there anyway to create a functional
>> /var
>> >> filesystem that will allow me to "get back to work as usual"?  Or
>> is my
>> >> only option a complete reinstall of everything?
> . . .
>> > The downside of this (option 2) is you'll loose some important
>> > information about your system, /var/db/pkg comes first to my mind.
>> With respect to the package database...
>> I've seen plenty of threads from folks having lost theirs in some form
>> or fashion, and the solution always seems to be "reinstall everything". >> Well, ok... sounds like a PITA, but how hard can it really be. I only >> had 30-40 "apps" installed anyway. With their deps it weighs in around
>> 350 ports total.  So I started to do just that.  Figured I'd reinstall
>> in the order I originally installed in the first place.  Starting with
>> Xorg.  I go to the port dir and `make install`, thinking it would
>> reinstall it and all its deps. No go. It does in fact reinstall Xorg, >> but none of its deps because it finds them present. Reinstalling 30-40
>> apps is one things, having to manually go in and do 350... now thats a
>> PITA!
> You might be able to force mount the dirty filesystem via
> mount -f
> You can also try
> dd if=/dev/ad0s1d of=some_dang_file_name*
> And then using mdconfig to play with the resulting file.
> mdconfig -t vnode -f some_dang_file_name -u 0 && \
> mount -f /dev/md0c /mnt (maybe?)
> If you can get the /var/db/pkg dir off nicely, good luck.

Thanks.  Good ideas.  I'll play with this when I have time.  But after
using mtree to recreate the structure in /var (off the / filesystem),
things came back online pretty well.  I'll most likely get things put
back together and then just recreate the /var filesystem and copy
everything back into it.

> *(Note that this could take a long time on a 1 or 2G /var
> as it reads all of the empty blocks as well, you might want
> to hand it a bs= and a count= if you know about how much
> of /var was full at the time, man dd for more details. Also
> note that I have had faster results using sdd from ports)
> I had a similar problem a while back and both methods
> were able to read some of the data from the former /var,
> however the /var/db/pkg directory was trashed and I ended
> up having to fall back on the "reinstall everything" method.
> My method ended up consisting of:
> 1) reinstalling portupgrade
> 2) reinstalling several high level programs (opera, mplayer,
> gnumeric, any window managers, & so on)
> 3) pkgdb -F which one at a time reinstalls everything depended
> on.  Make sure you have backups of any important files in
> /usr/local/etc as they may get overwritten.

I'm presently doing this now.  I have reinstalled most, if not all, top
level ports and will be running through `pkgdb -F` tomorrow.  I suspect
that will take a fair amount of time.

freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to