freebsd-versionコマンドはどこからバージョン番号を持ってくるのか?
ソースコードを見て調べてみることにします。
# file `which freebsd-version`
/bin/freebsd-version: POSIX shell script, UTF-8 Unicode text executable
freebsd-versionコマンドはシェルスクリプトのようなので簡単に調べることができました
freebsd-versionコマンドには-k
、-r
、-u
の3つのオプションがあります。
-k
はインストールされているカーネルのバージョン
-r
は現在実行中のカーネルのバージョン(OS更新中などに-kと違う結果になる?)
-u
ユーザランドのバージョン
ちなみに何もオプションを指定しないと-u
と同じになります
オプションごとに取得方法が異なるのでオプションごとに調べた結果
-k
はデフォルトでwhat -qs /boot/kernel/kernel
の結果
-r
はsysctl -n kern.osrelease
の結果
-u
はfreebsd-versionに埋め込まれた変数USERLAND_VERSION
でした。おしまい。