Subject: Re: Updating an existing system?
To: Paul Mather <paul@gromit.dlib.vt.edu>
From: Luke Mewburn <lukem@netbsd.org>
List: port-alpha
Date: 12/15/2002 23:11:01
On Thu, Dec 12, 2002 at 01:01:15PM -0500, Paul Mather wrote:
| On Thu, Dec 12, 2002 at 10:45:25AM +1100, Luke Mewburn wrote:
|
| => | or is the recommended way to update an existing -current to
| => | "build.sh" to some DESTDIR and then pax the contents of that DESTDIR
| => | over your existing / after it's finished successfully?
| =>
| => Currently, the easiest method for that situation is to build into
| => $DESTDIR, and then run
| => cd /usr/src/distrib/sets
| => nbmake-$MACHINE maketars
| => and then extract the tar files in $RELEASEDIR/binary/sets into /
| => (except etc.tgz, unless you want to overwrite your local config :)
|
| Thanks for the info! As someone who recently hosed his native compiler
| during a recent "build.sh" upgrade (only to be rescued by re-installing
| the "comp" set from a recent snapshot), I much appreciate anything that
| will mitigate catastrophic build failure/complications. :-)
|
| Just one quick question, though: is the above sequence of commands you
| give equivalent to "build.sh -R /some/destdir"? Or, is building a
| release something different? (I got the impression that building a
| release involved building a distribution ["build.sh -d"] and then
| converting that into installable tarballs.)
Building a release is a different operation.
A "make release" in usr/src effectively does:
make build
(cd etc ; make release)
The latter can be broken into components:
make distribution # populates $DESTDIR/etc
make snap_kern # builds all the kernels
(cd ../distrib ; make && make release)
# build install media, kernels, (etc)
(cd ../distrib/sets ; make sets
# build the sets
What I described effectively just does the "make build" and then the
"make sets". For that to succeed, you probably have to do
"cd /usr/src/etc && make install-etc-files" first.
Note that I have added a new feature which removes the need to build
the tar files and extract them; if you do
cd /usr/src/distrib/sets ; make INSTALLDIR=/ installsets
after the "make build", it will copy the files in $DESTDIR to
$INSTALLDIR (`/' in this case) that would have been updated if you
extracted the sets "base comp games man misc text" (but NOT "etc").
Luke.