Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2029538
  • 博文数量: 593
  • 博客积分: 20034
  • 博客等级: 上将
  • 技术积分: 6779
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 14:07
文章分类

全部博文(593)

文章存档

2016年(1)

2011年(101)

2010年(80)

2009年(10)

2008年(102)

2007年(16)

2006年(283)

我的朋友

分类: LINUX

2008-11-17 19:13:30

FREEBSD CVSUP:

想必经常cvsup –g –L 2 xxxxx-supfile之后大家都需要等不少时间罢。一是网络连接速度慢,二是先cvsup完ports-supfile后还需要cvsup stable-supfile两把下来怎么样也需要近半小时的时间。假如你的网内有几台或是几十台机器时,网络流量和使用的更新时间想必不小了。说了这么 多,这最好的解决之道就是:自己架一个CVSup服务器!本文会带着你一步步的架设自己的CVSup服务器,让你可以享受一把飞速cvsup的乐趣。

  假如你安装时发现有什么问题可以到中的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跟踪数据库。对于更新来讲,这个不重要,还是让他们慢慢去自己查罢。建议选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站了。






Gentoo Portage树服务器(SYNC服务器)的搭建
Gentoo的一大特色就是它的Emerge,为了保证使用最新的软 件,我们必须及时的更新Portage树。通常的方法就是与官方的服务器进行同步,但是对于同一网内有多台Gentoo Linux时,如果每台机子都通过Internet与官方服务器同步Portage树的话,宝贵的带宽资源就被这重复的劳动给浪费了。同时更新的速度也是 很慢的。

为了解决这个问题,我们可以在局域网内部设定一个Portage树服务器(也就是SYNC服务器),让服务器每天跟官方服务器同步Portage树,网内 其他计算机则与这台服务器同步。SYNC服务器对的要求任跟一般的计算机没有什么区别,你可以把他任何一台计算机作为SYNC服务器。

首先你需要给这台服务器分配一个静态的IP地址,或者在DNS服务器上建立一个固定的域名。

服务器端的配置
修改位于etc下的rsyncd.conf文件,下面是一个例子

# Simple example for enabling your own local rsync server
pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes
max connections = 5
uid = nobody
gid = nobody

[gentoo-portage]
path = /usr/portage
comment = Gentoo Portage tree
exclude = /distfiles /packages


各种参数可以参考rsync.conf的手册

#man rsyncd.conf


运行rsync服务

# /etc/init.d/rsyncd start

设定rsync服务为自动启动

# rc-update add rsyncd
default

客户端的配置
对于网内的其他Gentoo计算机,仅仅只需要修改make.conf 文件里面的SYNC标签,将原有的同步服务器的地址删除,并修改成局域网内部服务器的IP地址(或者域名)。然后就可以通过“emerge --sync”来同步Portage树了。

#SYNC="rsync://your_server_ip/gentoo-portage"
#SYNC="rsync://your_server_name/gentoo-portage"
SYNC="rsync://192.168.0.141/gentoo-portage"


修改完毕后你就可以用emerge --sync 来使客户端与服务器的Portage树进行同步了。





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