我安装了 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
Run Code Online (Sandbox Code Playgroud)/etc/hosts 的第一行显示它已升级到 9.2:
# $FreeBSD: release/9.2.0/etc/hosts 109997 2003-01-28 21:29:23Z dbaker $
Run Code Online (Sandbox Code Playgroud)我在另一个论坛上问过,并证实:
我从来没有编译过内核,也没有 /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
Run Code Online (Sandbox Code Playgroud)
那么 uname 是从哪里获取版本号的呢?哪些文件可能没有升级?谢谢!
FreeBSD uname
使用sysctl
值来填充其输出,因此除了内核之外没有要更新的文件。
以下是选项的相应sysctl
键uname
(来自usr.bin/uname/uname.c):
-i
: kern.ident-m
: hw.machine-n
:内核.主机名-p
: hw.machine_arch-r
:内核.osrelease-s
或-o
: kern.ostype-v
:内核版本看来你的实际内核不是你想的那样。您可以检查正在使用的内核文件:
# sysctl kern.bootfile
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6420 次 |
最近记录: |