# Version of FreeBSD



## cpyi (Nov 3, 2012)

I want to ask a few questions about version of FreeBSD. I list the questions, and help someone can help me.
1. Which file does the '*uname -r*' command read? Does it read kernel directly?
2. What operations will change the result of 'uname -r' command?
3. Does port tree have something to do with version of FreeBSD? (If using cvsup, I can specify the version; while using portsnap, I didn't find related options.)
4. Someone says port tree has nothing to do with version of FreeBSD, but I found my version being changed to 9.1 pre-release(from 9.0 release) after a port update.
5. If I update the port tree, can I use current packages to install the softwares. (I used to do so, it works, but I remain skeptical about whether the current package is necessarily consistent with the newest port)
6. Does '*portupgrade*' command update software in reference of the port tree?
7. I recently found there is a '*freebsd-update*' command, it was used to update the kernel and world (some basic softwares). Does this decide the version of FreeBSD?
8. We often express version of FreeBSD using CURRENT, RELEASE and STABLE. Is it use in kernel (and basic software) only, or both kernel(and basic software) and common software?

I have checked the handbook, but still not being able to find a clear answer, so hope someone can help me.
Thanks.


----------



## jb_fvwm2 (Nov 3, 2012)

3... No. The ports tree is version-independent; however does not support older versions. And soon cvsup/csup for it may go away.
5... Just use the STABLE for your major number (8, 9, 10...) if it exists.
8... Current (head); Stable (snapshots of which are RELEASE); is kernel/buildworld. Anything installed by a port is independent, except PACKAGES which may apply to a number
(8, 9, 10,...) and some ports which require source code (/usr/src to build if packages are not available...


----------



## AlexJ (Nov 3, 2012)

1. 
[cmd=""]# sysctl kern.osrelease | awk '{print $2}'[/cmd]
is the same as 
[cmd=""]uname -r[/cmd]

2. Recompile/update kernel only. 
kern.osrelease is read only

3. Already answered

4.Clarify please, - what exactly have been changed (my version being changed to 9.1 pre-release(from 9.0 release))? Version of WHAT?

Port systems by itself is nothing else as meta data, direction for compilation, pointers to source code. Period.
If you compile port on amd64 FreeBSD-7.4 then you version of this port will be depended on FreeBSD-7.4
Check Freebsd FTP site with precompiled packages, they all compiled for particular FreeBSD version and type of hardware.
Most ports depended on a system libraries that can be changed from version to version and on a moment of compilation compiler embedded dependency to executables.
You can check how you executable depended by running 
[CMD=""] # ldd /path/to/your/program[/CMD]

5. As already mentioned, use STABLE because RELEASE packages all always freezes.

Place in environment FTP path to STABLE packages 
[cmd=""]export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/[/cmd]
(!!!) adjust only *i386* or *amd64* and *packages-9-stable* or *packages-8-stable* for you configuration before running pkg_add(1)

6. It depend what option(s) you give to portupgrade(1)
Chech options -R and -r


7. What does mean "decide" in your sentence?

freebsd-update(8) Is a script that update FreeBSD operation system only. It doesn't have anything common with port.
FYI, don't use it on a computers with low RAM and limited HDD space. freebsd-update(8) has a lot of serious bugs and maintained pretty slow.
http://forums.freebsd.org/showpost.php?p=195139&postcount=4

8. FreeBSD can't know about all software in the world. It is Operation system such Microsoft Windows or Mac OS. 
Packages/port are external programs that can run uder FreeBSD, so they may(may not) use some tagging of their software in their favorite Version control system or doesn't use it at all and just providing "CHANGELOG" file.


----------

