FreeBSD升级系统
通过CD-Rom或Internet能够很方便的获得FreeBSD的新版本,由于每一次版本升级都修正了原有版本中存在的问题,并增加了一些新特性。因此保持系统与最新版本相一致是十分有益的事情。升级内核的最直接想法是直接编译新内核,可以将新版本的内核展开到系统中的目录中,然后按照前面的步骤编译安装新内核。这个方法在同一版本分支中作子版本的升级十分方便,例如从FreeBSD 2.2.7release升级到 2.2.8release。如果要从2.2.x版本升级到3.x版本,由于升级了主版本号,基本系统有了较大改动,因此不仅要升级内核,还需要升级系统中的应用程序。此时一般应使用sysinstall中的Upgrade选项进行升级。
- 使用源码升级系统
除了使用sysinstall直接升级之外,另一种升级方法是从系统的源代码中升级系统。这要安装要升级版本的全部源码,从而能重新编译整个系统,包括系统内核和各个应用程序。可以通过下面的办法手工安装系统源码。
# cd /cdrom/src# ./install.sh
重新编译整个系统是一个漫长的时间,根据使用的系统硬件不同,将需要几个小时的时间或更长时间来完成这个任务。这个编译命令被称为 “make world” ,表示重新编译构建整个FreeBSD系统。
# cd /usr/src# make world
如果是从2.2版本或3.0-release升级到3.1-stable,那么直接这样make world会遇到问题。主要原因是3.0-stable之后,系统的执行文件格式从原有的a.out转向了ELF(3.0-release的执行文件虽然是 ELF格式的,但其内核还保持a.out格式)。make world就提示用户使用make upgrade进行升级,因此使用者就应该按照make world的提示进行操作:
# make upgrade
其他的make目标有:
buildworld:编译所有的源代码;
installworld:安易做图uildworld编译产生的结果;
world:执行buildworld和installworld,重新编译安装整个系统;
aout-to-elf-build:编译从aout到elf升级系统所需的源代码;
aout-to-elf-install:在aout-to-elf-build的基础上升级系统;
aout-to-elf:依赖于aout-to-elf-build和aout-to-elf-install,进行a.out系统到elf系统的升级转换;
update:进行系统升级,对于3.1-stable来讲即包括aout-to-elf;
reinstall:在以前已经编译好的基础上,不重新编译而再次安装编译产生的结果;
当使用源代码的方式重新编译系统时,由于需要使用编译工具和这些工具的缺省设置,这些工具就需要预先更新。编译工具一般不需要升级,但编译工具的设置常常需要更新。当更新所有的源代码时,就不存在这个问题,但如果只是更新部分源代码,就会出现这个问题。如果不打算更新所有的源代码,可以通过预安装的一个很小的系统升级软件包来解决编译工具设置更新问题。例如需要更新Ports Collectin,但不打算更新全部源代码(从3.1-release升级到 3.1-stable),就需要安装31Upgrade.tgz。