通过CVSup及时更新Ports Tree

更新Ports Tree的方法有很多,例如匿名CVS、CVSup和CTM。


CVSup 是采用pull的方式来更新源码的。以CVSup为例,当用户(或cron)运行CVSup程序时,它会和远程的CVSupd服务器取得联系,然后更新文件。用户取回的更新文件是最新的,而且随时可以拿到这些文件。用户还可以限制更新动作,只更新自己感兴趣的某个文件或目录。更新动作由服务端根据用户的设定完成。


CTM有一个脚本文件专门用来辨别修改过的文件。这个脚本文件是由主CTM服务器来执行,每天比较几次,并把两次执行时间内修改过的文件加以压缩、编号,然后加以编码 (以可打印的ASCⅡ字符为主),最后以E-mail的方式寄出。当用户收到的时候,这些“CTM deltas”由ctm.rmail程序来处理。它可以自动解码和进行确认,并在用户的源代码上使用这些修改。如果用户不小心把部分程序清除掉了, CVSup会扫描出来,并自动为用户把不足的部分补齐。


更新Ports Tree

Ports Tree基本上是每天都在更新的,而且各种软件每天都有新的版本会推出,所以要及时更新Ports Tree。另外,一些Ports Tree有问题的地方也需要通过CVSup取得新的版本文件来修正。下面给出更新Ports Tree的方法。


如果用户系统中并没有安装Ports,那么请把光盘放入光驱中,用“/stand/sysinstall”命令,进入“Configure”中的“Distributions”,选择Ports来安装。具体更新操作如下:


一.)这种方式使用 sysinstall 手动安装Ports Collection。

   1.以 root 用户身份, 运行 sysinstall (对于 FreeBSD 5.2 之前的版本, 应该是 /stand/sysinstall),如下所示:
      # sysinstall
   2. 选择 Configure, 按 Enter。
   3. 选择 Distributions, 按 Enter。
   4. 选择 ports, 按 Space。
   5. 选择 Exit, 按 Enter。
   6. 选择您的安装介质,就像CDROM,FTP,等等
   7. 选择 Exit 并按 Enter。
   8. 按 X 键退出 sysinstall。
二.)先安装 CVSup,输入下面的命令。
先在#后输入cd /usr/ports/net/cvsup-without-gui/
再在#后输入make install clean


三.)通过下面的命令在/etc中新增一个make.conf (其实有一个sample在/etc/default中,但现在不用它)文件。


% touch /etc/make.conf


3.参照下面的内容编辑make.conf。
SUPHOST=ftp.freebsdchina.org


SUPFILE=        /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=   /root/ports-supfile
DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile


MASTER_SITE_BACKUP?=\
ftp://ftp.freebsd.org.cn/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}/\
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/


4.接着从/usr/share/examples/cvsup中复制一份ports-supfile到/usr中。这是为了日后使用方便,且维持原有范例不变。

% cp /usr/share/examples/cvsup/ports-supfile /usr

5.编辑ports-supfile。

6.把*default host=CHANGE_THIS.FreeBSD.org改为*default host=freebsd.org。

7.把ports-all注释掉。

8.把下面需要的Ports组件打开(把#号去掉)。

ports-base 基本的工具。

ports-archivers 关于文件压缩及解压缩的程序。

ports-astro 与天文学相关的程序。

......

ports-X11-servers X-Window系统服务器。

ports-X11-toolkits 以X-Window系统为基础的开发工具。

ports-X11-wm X-Window系统的管理工具。

9.因为刚安装好cvsup-without-gui-16.1g.tgz,所以必须先输入下面的命令,重新载入环境配置文件,才能让程序路径生效。不然在运行时会提示找不到文件。
% source ~/.cshrc

10.最后用下面的命令更新Ports-Tree。


% cvsup -g -L 2 /usr/ports-supfile

 

但是又出现新问题了 
我配置好了ports-supfile之后 
运行 
cvsup -g -L 2 /usr/cvsup/ports-supfile 
得到提示 
www# cvsup -g -L 2 /usr/cvsup/ports-supfile 
cvsup: Command not found. 

(解决办法#rehash)


只要看到如下的结果,就表示Ports Tree更新成功了。


……
Shutting down connection to server
Finished successfully

结论

其实,并不是每个系统非得一定要对Ports Tree进行更新。但是为了使系统更加稳定地运行,减少系统自身的安全性带来的危害,建议还是更新FreeBSD系统的Ports Tree。
posted @ 2010-10-15 23:35  CalvinChu  阅读(281)  评论(0编辑  收藏  举报