Gih's Blog

只言片语

获取FreeBSD源代码的方式(svn and csup)

2011-06-02 by gihnius, tagged as freebsd

默认FreeBSD系统使用cvsup更新源代码. 运行cvsup需要一个supfile配置文件.

使用时一般只需修改supfile里的

*default host=cvsup.freebsd.org
*default release=cvs tag=RELENG_8
其中 tag=RELENG_8 指定源代码的版本.如果是 stable版本,一般写为 tag=RELENG_X(X即为版本号).如果是 release版本,一般是 tag=RELENG_X_R (如7.4release: RELENG_7_4)如果是 currnt版本, tag=. (.表示当前最新版本号)设置好后执行以下命令进行更新:
cvsup -g -L 2 /usr/share/example/cvsup/stable-supfile
另外:使用cvsup需要安装额外的 cvsup-without-gui包,如不安装也可使用系统自带的 csup命令. csup是 cvsup的C语言版本.以上可以满足大多数人的需求.接着介绍用 subversion 操作的方法和过程.为什么推荐用 subversion ? 个人认为, 保留一个 svn repo到本地,更方便代码更新,修改,打补丁,进而发现和报告bug.FreeBSD的开发已经采用 subversion管理代码,你还可以看到代码的具体版本和修改记录及注释.FreeBSD svn Web服务地址: http://svn.freebsd.org查看源代码列表:
svn list svn://svn.freebsd.org/base
svn list svn://svn.freebsd.org/base/head
svn list svn://svn.freebsd.org/base/stable
以上命令分别查看 base tree, current tree, stable tree的源代码根目录文件列表.下载更新源代码:
## 下载 current版本源代码到 /usr/current
svn checkout svn://svn.freebsd.org/base/head /usr/current
## 下载 stable版本
svn checkout svn://svn.freebsd.org/base/stable/8 /usr/src
## 下载 release版本
svn checkout svn://svn.freebsd.org/base/release/8.2.0 /usr/release
## 还有一个 releng 版本
这个用得不多,它只是release发行前的准备版本.

## 下载你想要的任意一部分(比如 ath 驱动)
svn checkout svn://svn.freebsd.org/base/stable/8/sys/dev/ath  ~/test/8-stable-ath
## 更新
cd /usr/src; svn up
不过, 使用svn方式要比cvsup的多占用空间.