I installed FreeBSD 9.1-RELEASE, after binary upgrading to 9.2-RELEASE using freebsd-update, all files I checked are correctly in 9.2-RELEASE-p4. For example:
-
the kernel contains the new version:
# strings /boot/kernel/kernel | grep RELEASE|grep 9 @(#)FreeBSD 9.2-RELEASE-p4 #0: Tue Apr 8 18:08:22 UTC 2014 FreeBSD 9.2-RELEASE-p4 #0: Tue Apr 8 18:08:22 UTC 2014 9.2-RELEASE-p4
-
the first line of /etc/hosts shows it is upgraded to 9.2:
# $FreeBSD: release/9.2.0/etc/hosts 109997 2003-01-28 21:29:23Z dbaker $
I asked on another forum and have verified that:
-
I never compiled kernel, and do not have /usr/src and /usr/obj folders.
-
the default /etc/profile is unchanged, in particular I never defined UNAME_* vars .
-
I also tried "unsetenv UNAME_r"
However, uname somehow shows the wrong version 9.1:
# uname -a
FreeBSD localhost.localdomain 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
So where does uname get the version number from? Which file(s) might not have been upgraded? Thank you!
Best Answer
FreeBSD
uname
is usingsysctl
values to fill-in its output, so there is no file to update except for the kernel.Here are the corresponding
sysctl
key touname
options (from usr.bin/uname/uname.c):-i
: kern.ident-m
: hw.machine-n
: kern.hostname-p
: hw.machine_arch-r
: kern.osrelease-s
or-o
: kern.ostype-v
: kern.versionIt seems your actual kernel is not the one you think. You can check the kernel file in use with: