您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > cvs
用cvsup同步源代码并更新系统
作者:网络转载 发布时间:[ 2012/12/28 14:05:51 ] 推荐标签:

#应用程序编译选项

WANT_HUGE_STACK_SIZE=yes
## 为Python代码的应用程序提供巨大的Stack。

WITH_GDM=yes
## 为某些窗口管理器提供GDM链接。

WITHOUT_MAILNEWS=yes
## 取消Mozilla的邮件新闻功能,加快编译时间。

WITHOUT_COMPOSER=yes
## 取消Mozilla的网页编辑功能,加快编译时间。

WITHOUT_LDAP=yes
## 取消Mozilla的LDAP功能,加快编译时间。

WITHOUT_CHATZILLA=yes
## 取消Mozilla的IRC聊天功能,加快编译时间。

WITHOUT_XMLTERM=yes
## 取消Mozilla的XML终端功能,加快编译时间。

#WITH_RTC=yes
## 为某些应用程序提供实时时钟支持,但可能会造成某些多媒体程序不稳定。

WITH_GLX=yes
## 为某些应用程序提供GLX加速绘图支持。

WITH_TTF_BYTECODE_ENABLED=yes
## 为某些应用程序提供双字节支持。

WITH_OPTIMIZED_CFLAGS=yes
WITH_OPTIMIZED_CXXFLAGS=yes
WITH_OPTIMIZE=yes
## 尽量使用更高级编译优化

 

4.3 更新 /etc 里边的文件
  某些“make installworld”的安装需要特定的用户名或用户组存在。在升级时,有可能这些用户或组不存在,会在升级过程中出错。解决办法是检查 /usr/src/etc/group 并把它的组列表与您的进行比较。如果在新文件里有而您的文件里没有的,把它们复制过来。同样地,您把 /etc/group 里的任何这样的组进行更名---与 /usr/src/etc/group 中有相同 GID,但不同名的那些。

4.3.1备份 /etc里的文件
  将该目录备份到其他目录如/home/root,以便升级遇到问题时恢复系统配置。

4.3.2 用mergemaster 比较、合并、编辑配置文件
  mergemaster是升级你的配置文件用的,它帮助你把新系统的配置文件与你原来的(旧的)配置文件合并,或替换,或不改变原配置文件。升级完系统后应该用mergemaster升级配置文件的,要不然可能会引发问题。当然你可以不用mergemaster,自己手工搞定这些配子文件。 在第一次使用时,如果早期的 mergemaster 版本不支持 -p 的话,使用源码树中的新版本:
# cd /usr/src/usr.sbin/mergemaster
# ./mergemaster.sh -p

mergemaster的用法:
#mergemaster -p
#make installworld
#mergemaster -i

  -i是安装新文件而不询问。是说如果旧系统中没有该文件话的,直接安装而不询问。跨RELEASE升级的时候非常有用。
-p检测 /etc 和 /usr/src/etc 源码树里边的配置文件的不同点。通过 -p 选项以预建 (pre-buildworld) 模式运行 mergemaster(Cool。 这样只是比较那些对于成功执行 buildworld 或installworld 起关键作用的文件。
  ?----是全部更新。
  merge是文件合并,将为您打开一个文本编辑器,里边是两个文件的内容。您现在可以一边合并它们,一边在屏幕里查看,同时从两者中选取部分生成终文件。当两个文件一起比较时,l 键会选择左边的内容, r 会选择右边的。终的输出是由两个部分组成的一个文件,用它可以安装了。这个选项通常用于用户修改了设置的文件。merge之后需要选左、右的内容 (l, r),后按i安装,当然如果搞错了可以按r重来,但如果i错了后果比较悲惨了。

  操作实例:
  原来存在文件1,现在升级后有一个新版本是文件2,问你如何操作?有三个选择:安装(i),删除(d),合并(m)。
文件1的内容:
第1 行
第2 行
第3 行
文件2的内容:
第2 行
第3 行
第4 行
按i键即安装,是不要文件1了,用新文件2覆盖文件1;
按d键即删除,是说删除新的文件2,保留旧的文件1;
按m键即合并,合并是自己整合两个文件,得到文件3。
文件3的内容:
第1 行(直接取文件一)
第2 行(由用户选取文件一或文件二中对应的行)
第3 行(由用户选取文件一或文件二中对应的行)
第4 行(直接取文件二)


4.4 在单用户模式下编译安装系统
  在单用户模式下能处理的更快,并保证编译重要的系统文件时不出错。从运行的系统里,以超级用户方式执行:
# shutdown now
这样会转换到单用户模式。
  另外也可以,重启系统,在启动提示符处,输入 -s 标识。系统会启动单用户。再在 shell 提示符处执行:
# fsck -p
# mount -u /
# mount -a -t ufs
# swapon -a
  这会检查文件系统,重新装载 / 为读/写,参考 /etc/fstab 装载其它所有的 UFS 文件系统,然后打开交换 (swapping) 开关。
  Note: 如果您的 CMOS 时钟是设置为本地时间,而不是 GMT (如果 date(1) 命令输出不能显示正确的时间和地区也有确有其事), 您可能也需要执行下边的命令:
# adjkerntz -i
  这样可以确定您正确的本地时区设置--不这样做,您以后可能会碰到一些问题。

4.5 删除先前 build 留下的残余(如果以前build过系统)
# chflags -R noschg /usr/obj/usr
# rm -rf /usr/obj/usr
  删除/usr/obj这个目录,可以加快“make buildworld”的过程,并且省下与依赖关系有关的许多头痛的事情。/usr/obj 下的有些文件可能设置了不可改 (immutable) 属性(查看 chflags(1) 了解更多), 您必须用这个命令: # chflags -R noschg /usr/obj/usr 把这些标志去掉。
# cd /usr/src
# make cleandir
# make cleandir
不错,make cleandir 要执行两次。

4.6 保存编译输出
  把执行 make(1) 后得到的输出存成一个文件。如果什么地方出了错,您会有个错误信息的备份。简单的办法是使用 script(1) 命令,同是带上参数指定存放输出的文件名。您应在重建系统之前立即这样做,然后在过程完成时输入 exit。
# script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
# make TARGET
... compile, compile, compile ...
# exit
Script done, ...

4.7 编译基本系统
  在/usr/src目录里边
# cd /usr/src
# make -j4 buildworld

注:
-j4:有至多4个进程在同一时刻执行,加快编译速度。多CPU机器可用6到10之间的值。
buildworld:编译源码,在 /usr/obj 下边建立了一个全新的树。

4.8 编译和安装新内核
  如果您想建立一个定制内核,而且已经有了配置文件,只需象这样使用 KERNCONF=MYKERNEL:
# cd /usr/src
# make -j4 buildkernel KERNCONF=MYKERNEL
# make -j4 installkernel KERNCONF=MYKERNEL

4.9 重启动系统
#shutdown -r now

4.10 安装新系统
# make -j4 installworld


4.11 编译安装系统流程:(建议在单用户模式下进行)
# make -j4 buildworld
# make -j4 buildkernel
# make -j4 installkernel
#mergemaster -p
#make -j4 installworld
#mergemaster -i
# reboot

  启动到单用户模式可用# shutdown now命令或重新启动系统,在提示符处使用 boot -s,进入单用户模式。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd