追踪NetBSD-current
时间:2008-03-29
来源:互联网
追踪NetBSD-current
译者:祁人不开花
E-mail:[email protected]
为什么要追踪NetBSD当前版本?
基于若干原因,NetBSD的开发者已经把NetBSD当前版的源代码向公众提供。总的说来,提供NetBSD-current帮助我们创建稳定,可使用的系统。
它使得人们使用开发中的NetBSD变得容易。发布当前版的开发代码使得人们看到系统的发展趋势,并且能够联系到他们所实现的特性。
它也使得用户所做的更改更容易整合。如果用户对当前开发的源码做了修改,那么几乎不需要整合就可放到主源码树。
它也允许广泛的测试所开发的软件。(开发者)鼓励NetBSD-current的用户提交当前源码的bug报告(http://www.tw.netbsd.org/support/sen...
译者:祁人不开花
E-mail:[email protected]
为什么要追踪NetBSD当前版本?
基于若干原因,NetBSD的开发者已经把NetBSD当前版的源代码向公众提供。总的说来,提供NetBSD-current帮助我们创建稳定,可使用的系统。
它使得人们使用开发中的NetBSD变得容易。发布当前版的开发代码使得人们看到系统的发展趋势,并且能够联系到他们所实现的特性。
它也使得用户所做的更改更容易整合。如果用户对当前开发的源码做了修改,那么几乎不需要整合就可放到主源码树。
它也允许广泛的测试所开发的软件。(开发者)鼓励NetBSD-current的用户提交当前源码的bug报告(http://www.tw.netbsd.org/support/sen...
作者: 不开花 发布时间: 2008-03-29
使用anoncvs追踪NetBSD当前
开始
1.只获取内核源码
$ cd /usr
$ cvs checkout -P src/sys
这给你/usr/src/sys下的内核源码。这里有个如何编译内核的信息http://www.tw.netbsd.org/docs/kernel...build_a_kernel
2.获取整个源码树(包括内核)
$ cd /usr
$ cvs checkout -P src
到这里,在/usr/src下你得到了NetBSD的完整源码。
3.修改权限
# chown -R user /usr/src
升级源码
1.仅升级内核源码
$ cd /usr/src/sys
$ cvs update -dP
2.升级整个源码树
$ cd /usr/src
$ cvs update -dP
注意:运行cvs checkout -d dir src并没有作用。你会获得一个错误信息说"existing repository ... does not match ...; ignoring module _gnusrc-cmp" 等。
获取某个日期的源码
$ cvs checkout -D 20020501-UTC src
获取某个分支的源码
$ cvs checkout -rnetbsd-1-6 src
有用提示
不要使用cvs -z选项。数据流会同步混乱,导致客户端坏掉,或是导致客户端完全挂掉。额外的负载在服务器上艰难。
如果你想获取一个分支,你也许想希望不覆盖你已有的目录,而是创建新的目录:
$ cd /parent/dir/to/checkout/into
$ mkdir NewName-temp
$ cd NewName-temp
$ cvs checkout ... src
$ mv src ../NewName
$ cd ..
$ rmdir NewName-temp
你需要使用目标目录来使cvs升级正确工作。如果你得到如下的错误:
cvs [update aborted]: could not chdir to gnu/usr.bin/gdb/gdb: Not a directory
你需要做make cleandir并再试一次。确保在cvs升级运行make obj
你可以在你的主目录的.cvsrc文件加上特定的命令,这样将会自动使用它们,一个简单的例子是 .cvsrc
update -dP
checkout -P
diff -u
从源码编译NetBSD
假定在你的机器上有升级的NetBSD二进制快照,并且在/usr/src/有源码。进一步既定你的BSDOBJDIR是/usr/obj。
首先编译应用程序
# mkdir /usr/obj
# cd /usr/src
# ./build.sh -O /usr/obj -D /usr/NetBSD-new-build -T /usr/tools build
# ./build.sh -O /usr/obj -D /usr/NetBSD-new-build -T /usr/tools install=/
当你使用build.sh第一次编译你的系统,会产生一批编译所用的工具。任何编译请求会重用已经编译的工具,就减少了时间。
当然,不要./build.sh install=/ ,除非./build.sh之前已经成功完成否则很肯能最终产生一个不工作的系统。
在CVS升级之后升级应用程序
# cd /usr/src
# ./build.sh -D /usr/NetBSD-new-build -O /usr/obj -T /usr/tools -u build
# ./build.sh -D /usr/NetBSD-new-build -O /usr/obj -T /usr/tools -u install=/
这会在运行系统上安装新的程序-重启以确保它们有效。
如果你频繁的升级你的系统并想直接升级你的运行系统,你可以使用专家模式使用DESTDIR=/编译,例如
# ./build.sh -E -O /usr/obj -T /usr/tools -u build
注意这仅适于专家用户并且你很容易导致的系统不能编译任何东西。仅当你确信编译会成功完成时使用。
以下使用sup的部分没有翻译,跟前面的差不多,不必逐一翻译,可自行参见原文。
...............................................
开始
1.只获取内核源码
$ cd /usr
$ cvs checkout -P src/sys
这给你/usr/src/sys下的内核源码。这里有个如何编译内核的信息http://www.tw.netbsd.org/docs/kernel...build_a_kernel
2.获取整个源码树(包括内核)
$ cd /usr
$ cvs checkout -P src
到这里,在/usr/src下你得到了NetBSD的完整源码。
3.修改权限
# chown -R user /usr/src
升级源码
1.仅升级内核源码
$ cd /usr/src/sys
$ cvs update -dP
2.升级整个源码树
$ cd /usr/src
$ cvs update -dP
注意:运行cvs checkout -d dir src并没有作用。你会获得一个错误信息说"existing repository ... does not match ...; ignoring module _gnusrc-cmp" 等。
获取某个日期的源码
$ cvs checkout -D 20020501-UTC src
获取某个分支的源码
$ cvs checkout -rnetbsd-1-6 src
有用提示
不要使用cvs -z选项。数据流会同步混乱,导致客户端坏掉,或是导致客户端完全挂掉。额外的负载在服务器上艰难。
如果你想获取一个分支,你也许想希望不覆盖你已有的目录,而是创建新的目录:
$ cd /parent/dir/to/checkout/into
$ mkdir NewName-temp
$ cd NewName-temp
$ cvs checkout ... src
$ mv src ../NewName
$ cd ..
$ rmdir NewName-temp
你需要使用目标目录来使cvs升级正确工作。如果你得到如下的错误:
cvs [update aborted]: could not chdir to gnu/usr.bin/gdb/gdb: Not a directory
你需要做make cleandir并再试一次。确保在cvs升级运行make obj
你可以在你的主目录的.cvsrc文件加上特定的命令,这样将会自动使用它们,一个简单的例子是 .cvsrc
update -dP
checkout -P
diff -u
从源码编译NetBSD
假定在你的机器上有升级的NetBSD二进制快照,并且在/usr/src/有源码。进一步既定你的BSDOBJDIR是/usr/obj。
首先编译应用程序
# mkdir /usr/obj
# cd /usr/src
# ./build.sh -O /usr/obj -D /usr/NetBSD-new-build -T /usr/tools build
# ./build.sh -O /usr/obj -D /usr/NetBSD-new-build -T /usr/tools install=/
当你使用build.sh第一次编译你的系统,会产生一批编译所用的工具。任何编译请求会重用已经编译的工具,就减少了时间。
当然,不要./build.sh install=/ ,除非./build.sh之前已经成功完成否则很肯能最终产生一个不工作的系统。
在CVS升级之后升级应用程序
# cd /usr/src
# ./build.sh -D /usr/NetBSD-new-build -O /usr/obj -T /usr/tools -u build
# ./build.sh -D /usr/NetBSD-new-build -O /usr/obj -T /usr/tools -u install=/
这会在运行系统上安装新的程序-重启以确保它们有效。
如果你频繁的升级你的系统并想直接升级你的运行系统,你可以使用专家模式使用DESTDIR=/编译,例如
# ./build.sh -E -O /usr/obj -T /usr/tools -u build
注意这仅适于专家用户并且你很容易导致的系统不能编译任何东西。仅当你确信编译会成功完成时使用。
以下使用sup的部分没有翻译,跟前面的差不多,不必逐一翻译,可自行参见原文。
...............................................
作者: 不开花 发布时间: 2008-03-29
为什么会出错?
如果你尝试编译当前版,或是从快照或是早些的当前版,它们无法工作,别荒,试试下列步骤。
1.查阅你所编译版本的UPDATING文件
2.查阅当前用户文档http://mail-index.netbsd.org/current-users/
3.再次升级。有可能问题已经解决,而你的还处于旧的内容。
4.如果上面都失败了,给当前用户列表发封邮件。包括数据,时间,以及你获取当前版所用的方法,还有你所做的一些修改。放进包含出错信息的脚本。
使用etcupdate升级配置和初始文件
etcupdate是个帮助用户比较,升级和安装操作系统升级后新配置/dev,/etc和/root下初始文件的脚本。操作系统升级通过编译源码或是获取发行的二进制文件。
在源码里使用etcupdate
在/etc/src目录下
#etcupdate
如果你的NetBSD源码在别的目录,别担心,使用-s告诉你的源码树目录
# etcupdate -s /home/jdoe/netbsd/src
使用etcupdate升级二进制套件集合
有时候不可能获取源码但是你想升级配置和初始文件。解决办法是获取所需的发行文件并使用-b srcdir选择告诉etcupdate我们不需要源码而只需要官方发行套件。
# mkdir /tmp/temproot
# cd /tmp/temproot
# tar xpzf /some/where/etc.tgz
# etcupdate -s /tmp/temproot
特殊问题
升级到wscons后控制台死掉了
你需要从src/etc相应的etc.port目录复制当前的MAKEDEV到/dev,以单用户引导,然后键入:
# fsck -p
# mount -vt nonfs
# cd /dev
# ./MAKEDEV wscons
为什么build.sh总是重新首先重新编译nbmake?
即使在运行./build.sh tools和使用-u标识或是在etc/mk.conf里指定TOOLDIR,nbmake总是被重新编译。这是正常的。原因就在build.sh里面,在rebuildmake函数里:
# Note that we do NOT try to grovel "mk.conf" here to find out if
# TOOLDIR is set there, because it can contain make variable
# expansions and other stuff only parsable *after* we have a working
# ${toolprefix}make. So this logic can only work if the user has
# pre-set TOOLDIR in the environment or used the -T option to
# build.sh.
#
因此,如果你不想重新编译nbmake,你需要通过-T tooldir或是在环境里设置TOOLDIR变量
如果你尝试编译当前版,或是从快照或是早些的当前版,它们无法工作,别荒,试试下列步骤。
1.查阅你所编译版本的UPDATING文件
2.查阅当前用户文档http://mail-index.netbsd.org/current-users/
3.再次升级。有可能问题已经解决,而你的还处于旧的内容。
4.如果上面都失败了,给当前用户列表发封邮件。包括数据,时间,以及你获取当前版所用的方法,还有你所做的一些修改。放进包含出错信息的脚本。
使用etcupdate升级配置和初始文件
etcupdate是个帮助用户比较,升级和安装操作系统升级后新配置/dev,/etc和/root下初始文件的脚本。操作系统升级通过编译源码或是获取发行的二进制文件。
在源码里使用etcupdate
在/etc/src目录下
#etcupdate
如果你的NetBSD源码在别的目录,别担心,使用-s告诉你的源码树目录
# etcupdate -s /home/jdoe/netbsd/src
使用etcupdate升级二进制套件集合
有时候不可能获取源码但是你想升级配置和初始文件。解决办法是获取所需的发行文件并使用-b srcdir选择告诉etcupdate我们不需要源码而只需要官方发行套件。
# mkdir /tmp/temproot
# cd /tmp/temproot
# tar xpzf /some/where/etc.tgz
# etcupdate -s /tmp/temproot
特殊问题
升级到wscons后控制台死掉了
你需要从src/etc相应的etc.port目录复制当前的MAKEDEV到/dev,以单用户引导,然后键入:
# fsck -p
# mount -vt nonfs
# cd /dev
# ./MAKEDEV wscons
为什么build.sh总是重新首先重新编译nbmake?
即使在运行./build.sh tools和使用-u标识或是在etc/mk.conf里指定TOOLDIR,nbmake总是被重新编译。这是正常的。原因就在build.sh里面,在rebuildmake函数里:
# Note that we do NOT try to grovel "mk.conf" here to find out if
# TOOLDIR is set there, because it can contain make variable
# expansions and other stuff only parsable *after* we have a working
# ${toolprefix}make. So this logic can only work if the user has
# pre-set TOOLDIR in the environment or used the -T option to
# build.sh.
#
因此,如果你不想重新编译nbmake,你需要通过-T tooldir或是在环境里设置TOOLDIR变量
作者: 不开花 发布时间: 2008-03-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28