我安装了FreeBSD 9.1-RELEASE,使用freebsd-update升级到9.2-RELEASE之后,我检查的所有文件在9.2-RELEASE-p4中都正确。 例如:
内核包含新版本:
# 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
/ etc / hosts的第一行显示它升级到9.2:
# $FreeBSD: release/9.2.0/etc/hosts 109997 2003-01-28 21:29:23Z dbaker $
我问另一个论坛,并已经validation:
我从来没有编译过内核,也没有/ usr / src和/ usr / obj文件夹。
默认的/ etc / profile是不变的,特别是我从来没有定义过UNAME_ * vars。
我也试过“unsetenv UNAME_r”
但是,uname以某种方式显示错误的版本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
那么uname从哪里得到版本号呢? 哪些文件可能没有升级? 谢谢!
FreeBSD uname正在使用sysctl值来填充它的输出,所以除了内核外没有文件需要更新。
下面是相应的sysctl键来取消select(来自usr.bin / uname / uname.c ):
-i : kern.ident -m : hw.machine -n : kern.hostname -p : hw.machine_arch -r : kern.osrelease -s或-o : kern.ostype -v : kern.version 看来你的实际内核不是你所想的那个。 你可以用下面的方法检查内核文件:
# sysctl kern.bootfile