FreeBSD CVSup服务器建设指南
版本 2.0
作者 黄冬(hdcola@bj1860.net)
1. 前言 1
2. 安装CVSup Mirror服务器 1
3. 停止与启动cvsupd 3
1. 前言
不知正在看这个文章的你是不是一个FreeBSD fan或是xxBSD fan,呵呵,写这个文章的我是一个的FreeBSD fan。我正在使用的FreeBSD是5.0版本,从使用的第一个FreeBSD到现在,让我喜爱的功能莫过于FreeBSD提供的CVSup服务了。这个服务能让我们快速的更新操作系统、更新操作系统中的软件、更新出现的漏洞和补丁。想来用了FreeBSD这么久了,没有几张光盘(我装的4.x都是由一个很早的4.3光盘装的,而5.x都是由一个朋友送的5.0 DP1 cvsup上来的),这其实都是cvsup带来的好处呀。
想必经常cvsup –g –L 2 xxxxx-supfile之后大家都需要等不少时间罢。一是网络连接速度慢,二是先cvsup完ports-supfile后还需要cvsup stable-supfile两把下来怎么样也需要近半小时的时间。如果你的网内有几台或是几十台机器时,网络流量和使用的更新时间想必不小了。说了这么多,这好的解决之道是:自己架一个CVSup服务器!本文会带着你一步步的架设自己的CVSup服务器,让你可以享受一把飞速cvsup的乐趣。
如果你安装时发现有什么问题可以到http://www.huangdong.com/bbs中的BSD版来一起讨论。如果你的服务器足够好,哪么也可以发布到这里为大家服务,希望国内能多几个稳定并能更新及时的cvsup服务器。
2. 安装CVSup Mirror服务器
先是安装CVSup Mirror服务器软件:
cd /usr/ports/net/cvsup-mirror
make
在执行make时它会问你许多问题,我们一个个的来回答它:
Master site for your updates [cvsup-master.freebsd.org]?cvsup.huangdong.com
输入你的cvsup mirror的来源,也是外部网的cvsup服务器,在国内我一般会推荐cvsup.freebsd.org、cvsup2.freebsd.org、cn.freebsd.org。由于它是一个中转站,所以速度是否快不是很重要了。我内网的服务器也会使用我外网的镜像服务器的地址如cvsup.huangdong.com。
How many hours between updates of your files [1]?
多久上外部的cvsup服务器更新一次。默认的一小时其实已经足够了。
Do you wish to mirror the main source repository [y]?
是否镜像源代码。呵呵,src是该镜像的部分了,当然要y了。
Where would you like to put it [/home/ncvs]? /home/cvsupmirror/ncvs
源代码存到哪里。我一般会放到/home/cvsupmirror/ncvs中。
Do you wish to mirror the installed World Wide Web data [y]?
是否镜像FreeBSD的Web站点。哈哈,内网的兄弟们正为到国外慢而发愁呢,这好,让这一台机器发愁好了。
Where would you like to put it [/usr/local/www]? /home/cvsupmirror/www
web站点存到哪里。我一般会放到/home/cvsupmirror/www中,因为/usr/local/www是我正式网站的数据哟。
Do you wish to mirror the GNATS bug tracking database [y]?n
是否镜像GNATS的bug跟踪数据库。对于更新来讲,这个不重要,还是让他们慢慢去www.freebsd.org自己查罢。建议选n,因为实在不常用。
Do you wish to mirror the mailing list archive [y]?n
是否镜像mail list的文章。以前镜像过,后来知道错了,这里的文章好多多呀,更新的内容每天也几千封mail呢。建议选n。
Unique unprivileged user ID for running the client [cvsupin]?
客户端连接使用的用户ID。用默认的cvsupin很好了。
Unique unprivileged group ID for running the client [cvsupin]?
客户端连接使用的组ID。用默认的cvsupin很好了。
Unique unprivileged user ID for running the server [cvsup]?
服务器使用的用户ID。用默认的cvsup好了。
Unique unprivileged group ID for running the server [cvsup]?
服务器使用的组ID。用默认的cvsup好了。
Syslog facility for the server log [daemon]?
将服务器日志记入Syslog的设施。使用默认的daemon。
Maximum simultaneous client connections [8]?20
大的客户连接数。这个看你的内存和CPU以 及硬盘了。我通常设置为20,是我内部网更新机器的可能大并发。
所有的问题回答完后输入:
make install
make clean
将cvsup mirror装入系统中,同时它会加入新的用户帐户和用户组,同时为crontab中加入新的每小时的同步设置。
3. 停止与启动cvsupd
可以通过/usr/local/etc/rc.d中的cvsupd.sh来启动或停止cvsup服务器。可以通过编辑/etc/crontab中的/usr/local/etc/cvsup/update.sh命令执行时间设置来改变更新频率。
/usr/local/etc/rc.d/cvsupd.sh start
来启动cvsup服务器。
/usr/local/etc/rc.d/cvsupd.sh stop
来停止cvsup服务器。
可以通过执行
/usr/local/etc/cvsup/update.sh
来即时更新所有的cvsup服务器的内容。更新时的新日志会记入/var/log/cvsup.log中。
4. 说明事项
有一些小的FAQ列在这里:
第一次进行update时需要很久的时间,会从服务器上更新下来很多东西,需要的时间会很久,要有些心理准备呀。
如果你在ncvs/distrib/cvsup/sup中没有看到所有的ports-xxx(你会更新的ports的条目)、src-xxx(你会更新的src的条目)、www目录时,你的客户端连接上来时都会报错的。解决办法很简单,接着update,到全部全了为止。
下来的www有什么用呀?很简单的,我是将我的内部网的服务器设置成了FreeBSD的镜像站,方法也很简单。通过ports中的apache13或是apache2安装Apache服务器,删除/usr/local/www/data,再使用root执行:ln –s /usr/local/www/data /home/cvsupmirror/www可以了。这样每天能看到新的FreeBSD站了。