# /usr/bin/install: Undefined symbol "gid_from_group"



## dougs (Dec 27, 2013)

About three weeks ago while trying to `freebsd-update -r 9.2-RELEASE upgrade` on a 9.1-RELEASE p-3 amd64 machine, I found that it refused to upgrade to that version. _It g_ave me an error message that I cannot remember. I did a `freebsd-update -r 9.1-RELEASE upgrade` and am still at 9.1-RELEASE-p3 version. However when attempting to run `freebsd-update fetch` and `freebsd-update install` on to bring in the security updates thereafter, I keep getting this:


```
root@dorado:/usr/src# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 5 mirrors found.
Fetching metadata signature for 9.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

The following files are affected by updates, but no changes have
been downloaded because the files have been modified locally:
/var/db/mergemaster.mtree

The following files will be updated as part of updating to 9.1-RELEASE-p9:
/lib/libcrypto.so.6
/rescue/[
/rescue/atacontrol
/rescue/atmconfig
/rescue/badsect
/rescue/bsdlabel
/rescue/bunzip2
/rescue/bzcat
/rescue/bzip2
/rescue/camcontrol
/rescue/cat
/rescue/ccdconfig
/rescue/chflags
/rescue/chgrp
[ ... ]
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-revoke
/usr/sbin/dnssec-settime
/usr/sbin/dnssec-signzone
/usr/sbin/freebsd-update
/usr/sbin/hostapd
/usr/sbin/ktutil
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint
/usr/sbin/newsyslog
/usr/sbin/ntp-keygen
/usr/sbin/ntpd
/usr/sbin/ntpdc
/usr/sbin/rndc-confgen
/usr/sbin/sshd
/usr/sbin/wpa_supplicant
root@dorado:/usr/src#
```


```
root@dorado:/usr/src# freebsd-update install
Installing updates.../usr/bin/install: Undefined symbol "gid_from_group"
/usr/bin/install: Undefined symbol "gid_from_group"
/usr/bin/install: Undefined symbol "gid_from_group"
/usr/bin/install: Undefined symbol "gid_from_group"
[ ... ]
/usr/bin/install: Undefined symbol "gid_from_group"
/usr/bin/install: Undefined symbol "gid_from_group"
/usr/bin/install: Undefined symbol "gid_from_group"
 done.
root@dorado:/usr/src#
```

Googling around indicates that the binaries are borked- possibly mixing 9.2 files with 9.1 ones. I tried the `strings` command:


```
root@dorado:/# strings /boot/kernel/kernel | grep RELEASE
RELEASE(6)
RELEASE ELEMENT(6)
RELEASE(10)
RELEASE ELEMENT(10)
AE_RELEASE_DEADLOCK
RELEASE_LOCK: Releasing lock!
twa_ioctl: RELEASE_LOCK: Lock not held!
synaptics: button RELEASE: %d
@(#)FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:27:25 UTC 2013
FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:27:25 UTC 2013
9.1-RELEASE-p3
```

and


```
root@dorado:/# truss install -d -g wheel ~/testdirectory
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366156800 (0x80061f000)
issetugid(0x80081fa60,0x7fffffffefcf,0x40,0x0,0xffff800800820a91,0x0) = 0 (0x0)
lstat("/etc",{ mode=drwxr-xr-x ,inode=47362,size=2560,blksize=32768 }) = 0 (0x0)
lstat("/etc/libmap.conf",{ mode=-rw-r--r-- ,inode=47425,size=111,blksize=32768 }) = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,040375040)      = 3 (0x3)
fstat(3,{ mode=-rw-r--r-- ,inode=47425,size=111,blksize=32768 }) = 0 (0x0)
mmap(0x0,111,PROT_READ,MAP_PRIVATE,3,0x0)        = 34366189568 (0x800627000)
close(3)                                         = 0 (0x0)
lstat("/usr",{ mode=drwxr-xr-x ,inode=2,size=1024,blksize=32768 }) = 0 (0x0)
lstat("/usr/local",{ mode=drwxr-xr-x ,inode=3836160,size=512,blksize=32768 }) = 0 (0x0)
lstat("/usr/local/etc",{ mode=drwxr-xr-x ,inode=3849422,size=1024,blksize=32768 }) = 0 (0x0)
lstat("/usr/local/etc/libmap.d",0x7fffffffb860)  ERR#2 'No such file or directory'
munmap(0x800627000,111)                          = 0 (0x0)
open("/var/run/ld-elf.so.hints",O_RDONLY,057)    = 3 (0x3)
read(3,"Ehnt\^A\0\0\0\M^@\0\0\0-\0\0\0\0"...,128) = 128 (0x80)
lseek(3,0x80,SEEK_SET)                           = 128 (0x80)
read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,45) = 45 (0x2d)
close(3)                                         = 0 (0x0)
access("/lib/libmd.so.5",0)                      = 0 (0x0)
open("/lib/libmd.so.5",O_RDONLY,040402740)       = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=94749,size=69072,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|0x40000,3,0x0) = 34366189568 (0x800627000)
mmap(0x0,2162688,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34368262144 (0x800821000)
mmap(0x800821000,65536,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|0x40000,3,0x0) = 34368262144 (0x800821000)
mmap(0x800a30000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|0x40000,3,0xf000) = 34370420736 (0x800a30000)
munmap(0x800627000,4096)                         = 0 (0x0)
close(3)                                         = 0 (0x0)
access("/lib/libc.so.7",0)                       = 0 (0x0)
open("/lib/libc.so.7",O_RDONLY,040402740)        = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=94729,size=1369840,blksize=32768 }) = 0 (0x0)
mmap(0x0,4096,PROT_READ,MAP_PRIVATE|0x40000,3,0x0) = 34366189568 (0x800627000)
mmap(0x0,3485696,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34370424832 (0x800a31000)
mmap(0x800a31000,1236992,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|0x40000,3,0x0) = 34370424832 (0x800a31000)
mmap(0x800d5e000,45056,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|0x40000,3,0x12d000) = 34373754880 (0x800d5e000)
mmap(0x800d69000,110592,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34373799936 (0x800d69000)
munmap(0x800627000,4096)                         = 0 (0x0)
close(3)                                         = 0 (0x0)
munmap(0x800626000,4096)                         = 0 (0x0)
mmap(0x0,102400,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366185472 (0x800626000)
sysarch(0x81,0x7fffffffd250,0x800624148,0x0,0xffffffffff8c3230,0x8080808080808080) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
/usr/bin/install: Undefined symbol "gid_from_group"write(2,"/usr/bin/install: Undefined symb"...,51) = 51 (0x33)

write(2,"\n",1)                                  = 1 (0x1)
process exit, rval = 1
root@dorado:/usr/src#
```

When I attempt to run `portmaster`, it also fails.

At this point I would like to fix this so either 1) I can perform a clean binary update or 2) do a complete source build using `make install` and `make kernel`. Currently there sre no sources in /usr/src. I'm using the default freebsd-update.conf so the sources should be been drawn in during fetch but apparently isn't. I do have both FreeBSD-9.1-RELEASE-amd64-memstick.img and FreeBSD-9.2-RELEASE-amd64-memstick.img handy. What would be the best way to bring the machine back to a working condition?

Oh, the system has a GPT OS disk and a ZFS disk array consisting of three disks.


```
root@dorado:/# df
Filesystem   1K-blocks      Used      Avail Capacity  Mounted on
/dev/ada0p3    3086108    387548    2451672    14%    /
devfs                1         1          0   100%    /dev
/dev/ada0p4    3086108    954164    1885056    34%    /var
/dev/ada0p5    2063900     16448    1882340     1%    /tmp
/dev/ada0p6   63987868   1961812   56907028     3%    /usr
zdata       1913720779 322281370 1591439408    17%    /data
```


```
root@dorado:/# zfs list
NAME    USED  AVAIL  REFER  MOUNTPOINT
zdata   308G  1.48T   307G  /data
```

Any advice would be greatly appreciated!

~Doug

P.S. I do have four or five other FreeBSD servers- both x86 and amd64 machines- that I have had no trouble upgrading to 9.2-RELEASE using freebsd-update. Hm?


----------



## SirDice (Dec 30, 2013)

I'd try mounting the 9.1 image and just copy the install from it. Then try a `freebsd-update fetch install`. You might want to clean out /var/db/freebsd-update/ to get rid of the failed update files first though.

If the 'update' for 9.1 succeeded you should be safe to try to upgrade to 9.2 again.


----------



## dougs (Jan 3, 2014)

Sorry but where are the install files/directory? I've looked in the FreeBSD-9.1-RELEASE-i386-memstick.img image and am unable to locate it.


----------



## dougs (Jan 3, 2014)

I renamed /var/db/freebsd-update to /var/db/freebsd-update_OLD and did a `freebsd-update fetch install`. It still gave me the same error message 
	
	



```
/usr/bin/install: undefined symbol "gid_from_group"
```
 as described previously.

Did you mean to say to copy /usr/bin/install from the memstick image to the system and try again?


----------



## dougs (Jan 3, 2014)

Alright. Acting on your suggestion I copied /usr/bin/install from the memstick image to the system and tried again. This time it worked.

I will retry upgrading to 9.2-RELEASE after I've updated all outdated ports. Thanks for the help.


----------

