
Permalink for comment 198225
RE: upgrade with one command?
by Doc Pain on Wed 3rd Jan 2007 13:55 UTC in reply to "upgrade with one command?"
Doc Pain
Member since:

"Why you have to upgrade with one command? You can break your system and make it unusable."

As vegai said, that's irrelevant.

"Base system stays untouched, that mean if your upgrade process goes awry, you can use your system for other tasks and fix it later (you can reboot your server box from 1000 miles away without worrying about if it's dead... again- sry Linux guys, I know what you feel then...)."

I think it's a good idea that there's no "simple command" which can damage your system due to a defective file...

"Upgrading base system is another story and I don't remember any (I mean I got zero problem in five years) broken systems after whole userland+kernel upgrade with FreeBSD."

Upgrading the base system is a more complicated process. Let me explain:

First, a functioning base system (let's say, 6.1) is assumed. In addition, cvsup should be installed to do the update of the source files.

# cd /usr/src
# make update

Now the source files are of the new version (let's say, 6.2), depending on what branch (-RELEASE, -CURRENT, -STABLE) you want to upgrade to.

The system compiles the new kernel and the world (the system).

# make buildworld buildkernel

If you want another than the default kernel, you can set the KERNCONF variable in order to tell make

# make buildworld buildkernel KERNCONF=MYKERNEL

After that, the kernel has to be installed. The previous kernel is saved so it can be loaded instead of the new kernel if this one is defectiv in any way.

# make installkernel KERNCONF=MYKERNEL

Now, the system has to be rebootet so it uses the new kernel. Then the system is set in single user mode for maintenance operations. Partitions are checked, and if everything is okay the new world (the system) is installed. NB the use of "mergemaster": It handles changes in files (such as configuration files or system scripts).

> boot -s
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
# cd /usr/src
# mergemaster -p
# make installworld
# mergemaster
# reboot

After the reboot, the new kernel and new world are ready for use. The base system is upgraded. No installed application is changed.

Yes, I know, you can read it much better in the FreeBSD handbook. :-)

I won't reply to vegai's postings directly in detail because I think everything regarding the discussed problematic has been said. Furthermore, vegai seems to think the differences between the base OS (the system itself) and the applications installed upon it is irrelevant. But as you can see, updating the operating system itself is far different from updating application packages. Therefore you have this division between the OS and the applications.

Maybe, the "upgrade with one command" works fine in Linux, at least in one distribution, but it's not general for all and surely not designed for Joe Q. Sixpack. Tell me if that's wrong.

Reply Parent Score: 2