Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1476386
  • 博文数量: 295
  • 博客积分: 10051
  • 博客等级: 上将
  • 技术积分: 3850
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-11 08:50
文章分类

全部博文(295)

文章存档

2011年(1)

2009年(4)

2008年(290)

我的朋友

分类: BSD

2008-04-15 15:32:12

注意:不能使用“make world”进行更新,在FreeBSD 6.0中已经不支持这个target了,如果使用的话,会报错!

更新FreeBSD 6.0到最新的Stable大致需要以下几个步骤


1、删除以往的系统更新树(如果以前未作更新可忽略),在/usr/obj目录下。


方法是:

#cd /usr/obj
#chflags -R noschg *
#rm -rf *

另外的清除任务:如果以前更新过系统,或者更新时出现中断,运行下面的命令:

#cd /usr/src
#make cleardir
#make cleardir


2、利用cvsup同步Stable源代码树:

在/usr/share/examples/cvsup目录下找到“stable-supfile”这个文件,推荐拷贝到用户目录下面,诸如:/root,修改里面的

*default host=CHANGE_THIS.FreeBSD.org

把“CHANGE_THIS.FreeBSD.org“改成“cvsup.freebsd.org"或者"cvsup.freebsdchina.org".

在"cvsup.freebsd.org"中,可以获得最新的stable源代码树!

运行下面的命令:

#cd /root ;转换到你修改过的stable-supfile所在的目录

#cvsup stable-supfile



3、记录更新的屏幕信息(可选)

为了了解整个的更新过程,有必要对更新时屏幕的信息进行记录,或许相关的信息,针对几个过程,推荐分别进行跟踪记录。

例如,记录buildworld的信息,可以采取下面的方式:

#script /root/mkbuildworld.out

这个命令行启动了脚本的运行记录,保存到/root/mkbuildworld.out文件中,接下来,我们只要输入命令即可!

当所有的命令运行完成后,输入:

#exit

退出脚本跟踪程序!



4、建立新的stable树:

#make buildworld ;在/usr/obj目录下建立一个全新的stable树



5、建立新的系统内核:

#make buildkernel ;建立新的stable缺省内核



6、安装新的系统内核:

#make installkernel :安装新的内核
#reboot ;重新启动系统



7,重新启动系统后,要进入单用户模式,对于FreeBSD 6 可以在启动文本菜单上选择“4”,进入单用户模式,然后输入下面的命令:

#fsck -p ;检查文件系统
#mount -u / ;装载根分区
#mount -a -t ufs ;装载所有的ufs分区
#swapon -a ;打开交换空间



8、安装新建的Stable树,保证内核和应用程序之间的同步:

(1)运行下面的命令:

#mergemaster -p

(2)安装新的Stable程序树

#make installworld

(3)进行/etc目录下配置文件的修改或更新

#mergemaster

9、关于"mergemaster -p"的说明

"mergemaster"是一个用于安装系统配置文件的脚本工具,"mergemaster -p"的作用是建立一个临时的根环境,把新的配置文件映射到这个环境当中,然后和系统的配置文件进行比较和处理,目的是保证系统配置文件的更新,这一点很重要!在执行"mergemaster -p"的过程中,主要是进行以下处理:

检测系统是否存在临时的根环境,如果存在,让用户选择是利用现有的还是删除它,然后新建!

*** The directory specified for the temporary root environment,
/var/tmp/temproot, exists. This can be a security risk if untrusted
users have access to the system.

Use 'd' to delete the old /var/tmp/temproot and continue ;按 "d" ,删除
Use 't' to select a new temporary root directory ;按 "t" ,选择新的目录
Use 'e' to exit mergemaster ;按 "e" ,退出

Default is to use /var/tmp/temproot as is

How should I deal with this? [Use the existing /var/tmp/temproot]


一般的处理是选 "d" ,删除原有的目录,系统开始重新建立这个临时的根环境。



10、关于"mergemaster"的说明

执行完"make installworld"之后,需要对系统的"/etc"目录下的文件进行更新,在运行过程中,需要用户和系统进行交互,以确定需要对系统的配置文件进行怎样的更新。

每个配置文件的更新操作都有4个选项:

Use 'd' to delete the temporary ;不更新相应的系统配置文件
Use 'i' to install the temporary ;用新的配置文件覆盖旧的系统配置文件
Use 'm' to merge the temporary and installed versions ;根据新的配置文件,对旧的配置文件进行合并处理
Use 'v' to view the diff results again ;察看新的配置文件和系统原有的配置文件的不同

更新操作时,要根据用户自己的想法进行相应的操作,如果是新安装的系统进行更新的话,或者不需要保留原有的配置的话,一般选择第二项操作。

阅读(318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~