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 > http://forums.freebsd.org/showthread.php?t=41779 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: libmd.so.5 => /lib/libmd.so.5 (0x800822000) libc.so.7 => /lib/libc.so.7 (0x800a33000) ... and libmd.so just contains code for computing various checksums, nothing to do with groups and GIDs. This suggests that your libc.so 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. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey JID: matt...@infracaninophile.co.uk
signature.asc
Description: OpenPGP digital signature