Problem completing a 9.1 release to 9.2 release upgrade

Matthew Seaman m.seaman at
Sun Oct 6 07:44:17 UTC 2013

On 06/10/2013 04:51, Eric Feldhusen wrote:
> I figured I'd walk through those steps from start to finish and just
> correct my main problem and any other little glitches I might have.
> I'm on step 6 and when I run mergemaster -p, I get the following error.
> *** Creating the temporary root environment in /var/tmp/temproot
>  *** /var/tmp/temproot ready for use
>  *** Creating and populating directory structure in /var/tmp/temproot
> /usr/bin/install: Undefined symbol "gid_from_group"
>   *** FATAL ERROR: Cannot copy files to the temproot environment
> I found this thread on the Freebsd forums
> with the same error and if
> I do the same diagnostic steps of
> truss install -d -g wheel ~/testdirectory
> I find an error of
> lstat("/usr/local/etc/libmap.d",0x7fffffffb990)     ERR#2 'No such file or
> directory'
> Any suggestions? Thank you for the help thus far.

The 'undefined symbol' error means you have a binary which is somehow
not dynamically linking against the shared libraries it was compiled to
use.  As install(1) has pretty simple dynamic library usage -- just
libmd and libc:

# ldd /usr/bin/install
/usr/bin/install: => /lib/ (0x800822000) => /lib/ (0x800a33000)

... and just contains code for computing various checksums,
nothing to do with groups and GIDs.  This suggests that your is
somehow incompatible with your /usr/bin/install.  Which really shouldn't
be the case given that you'ld previously used freebsd-update to upgrade
your userland to 9.2-RELEASE.

Things to double check:

   * you haven't been faffing about with /etc/libmap.conf -- that file
     or any file it includes should basically be empty except in quite
     unusual circumstances.  Remember folks: libmap is not your
     solution of choice.  It's what you turn to when there are no other
     viable alternatives.

   * Your freebsd-update really has been updating the source tree you
     attempted to upgrade from.  Check /etc/freebsd-update.conf.  By
     default it contains:

# Components of the base system which should be kept updated.
Components src world kernel

     If you don't have src in there your buildworld procedure will at
     best be trying to take you back down to 9.1-RELEASE-p???, and at
     worst trying to create some unholy mixture of 9.2 kernel with
     earlier bits of the system.

I think you should be able to recover to a system managed via
freebsd-update by something like:

   # vi /etc/freebsd-update.conf
   { Make sure you're getting 'src world kernel' components as shown
     above }
   # freebsd-update fetch
   # freebsd-update install

but I haven't tested that so ICBW.  In any case, this should get you
back to the state where you have a 9.2-RELEASE world but your modified
9.1-RELEASE kernel.  If you still need a custom kernel then you can
build and install it like so:

   # cd /usr/src
   # make KERNCONF=MYKERNEL buildkernel
   # make KERNCONF=MYKERNEL installkernel

and reboot.  Otherwise, I'm not sure exactly how you'ld revert from a
custom kernel to the standard generic kernel you'ld normally get via
freebsd-update.  What I'd try is moving aside my customized kernel and
re-running freebsd-update:

   # cd /boot
   # mv kernel kernel-MYKERNEL
   # freebsd-update install

If that creates a new /boot/kernel and populates with a new kernel and
many loadable modules then you're golden.  If not, move your saved
kernel back into place (mv kernel-MYKERNEL kernel) and ask here again.

The 'no such file or directory' error for /usr/local/etc/libmap.d thing
is a false problem: /usr/local/etc/libmap.d is an optional directory --
all you are seeing is install(1) trying to open it and discovering that
it doesn't exist.



Dr Matthew J Seaman MA, D.Phil.

JID: matthew at

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 398 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the freebsd-questions mailing list