Building FreeBSD to install or update in two DESTDIRs

Polytropon freebsd at edvax.de
Wed May 16 22:57:24 UTC 2012


On Wed, 16 May 2012 18:46:28 -0400, Thomas Mueller wrote:
> > > The idea was to "make buildkernel" once and "make buildworld" once
> > > and install to two different DESTDIRs.
> 
> > I'm not sure I understand: The two install* targets ("make installkernel"
> > and "make installworld") are only able to install to _one_ location,
> > which is the _default_ location *or* the location pointed to by
> > DESTDIR. It is not possible to perform _one_ install step which
> > will cause results in _two_ locations (without any means of
> > "hidden duplication", e. g. by using a mirroring technique).
> 
> The idea was to "make buildkernel" once and "make buildworld" once,
> but "make installkernel" and "make installworld" would each have
> to be done once for each DESTDIR, meaning twice each.  Building
> takes much more computer resources than installing, so I try to
> avoid building the same thing twice.

Yes, _that_ is the correct approach.

In case you need to do more than one additional installation,
you should consider creating a tar archive of the fully installed
system and then use tar --unlink to the mounted target. If you
need to create many bootable systems from scratch, a script
performing the disklabel, newfs, mount and tar steps should
be easy to write.



> > I'm refering to the instructions presented in /usr/src/Makefile:
> 
> > # For individuals wanting to upgrade their sources (even if only a
> > # delta of a few days):
> > #
> > #  1.  `cd /usr/src'       (or to the directory containing your source tree).
> > #  2.  `make buildworld'
> > #  3.  `make buildkernel KERNCONF=YOUR_KERNEL_HERE'     (default is GENERIC).
> > #  4.  `make installkernel KERNCONF=YOUR_KERNEL_HERE'   (default is GENERIC).
> > #       [steps 3. & 4. can be combined by using the "kernel" target]
> > #  5.  `reboot'        (in single user mode: boot -s from the loader prompt).
> > #  6.  `mergemaster -p'
> > #  7.  `make installworld'
> > #  8.  `make delete-old'
> > #  9.  `mergemaster'            (you may wish to use -i, along with -U or -F).
> > # 10.  `reboot'
> > # 11.  `make delete-old-libs' (in case no 3rd party program uses them anymore)
> 
> I checked /usr/src/UPDATING, and the sequence was
> 
> ...
> <reboot in single user mode>
> mergemaster -p 
> make installworld
> mergemaster -i  (one may wish also -U)
> make delete-old
> <reboot>
> 
> I checked /usr/src/Makefile , and found you quoted correctly,
> see 'make delete-old' and the second 'mergemaster' are transposed
> relative to what I saw in /usr/src/UPDATING 
> 
> Sort of confusing; make either way works?

It should not be much difference if you consider what the
"steps in permutation" do: mergemaster modifies files,
make delete-old removes stuff that isn't needed anymore.
Both steps don't seem to affect each other. a + b = b + a. :-)



> Subsequently I would also want to build for i386, but this
> would be after the amd64 build and installation/update.

In case you're creating different TARGET= architectures,
the fun doubles. :-)



> It would be nice if bsdinstall had an option for update as
> well as fresh install.

This step can easily be performed manually using freebsd-update
right after installation.

If you understand update == overwrite, just don't format the
partitions that are already present on the target media.



> For i386, I would follow advice on http://wiki.freebsd.org/Wine
> but would want a full installation capable of running
> independently of amd64, would need the kernel, would install
> on 16 GB USB stick which could be mounted on /compat/i386. 
> I would want to use hard-drive PORTSDIR, would need to so
> adjust /etc/make.conf .  I don't really want to think of
> building big ports on a USB stick, especially on the older
> computer with 256 MB RAM and USB 1.1 on motherboard.

Also note that USB sticks are "not real R/W media", they
suffer more from using than hard disks do, and they're
slower of course. :-)





-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list