[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 应用专题 > 其它 > 正文
 

多线程proz代替fetch用于ports的安装

来源:不详 (2006-07-12 17:19:24)

在安装ports时需要下载需要安装的文件,默认的下载程序是/usr/bin/fetch,这是一个单线程的下载工具,并不能满足大批量下载的要求,因此需要使用多线程下载工具proz来代替fetch。
  
  ports下载使用哪个程序是由/usr/ports/Mk/bsd.port.mk中FETCH_CMD这个变量决定的。因为所有的ports中的Makefile都会包含这个文件,所以只需要更改这个文件就可以。
  
  设置FETCH_CMD有好几种方法,其中一种是在/etc/make.conf中设定FETCH_CMD=/usr/local/bin/proz。但是这方法会存在一些问题,因为有些ports在安装下载的时候会在/usr/ports/distfiles中创建一个目录,比如:vim,下载的文件是应该穵+旁诏usr/ports/distfiles/vim中的,在bsd.port.mk文件中会传递一个参数给fetch,让它把下载来的文件放在对应的地方,在使用fetch的时候这个参数是-o,但是在使用proz时应该是-P,所以用这种方法在下载文件是放在一个目录内时就会出错。所以应该采用以下的方法:
  
  1、备份文件
  # cp /usr/ports/Mk/bsd.port.mk /usr/ports/Mk/bsd.port.mk
  
  2、更改FETCH_CMD的设置
  # vi /usr/ports/Mk/bsd.port.mk
  把1626行的
  FETCH_CMD?= /usr/bin/fetch
  更改为:
  FETCH_CMD?= /usr/local/bin/proz
  
  把1628行的
  FETCH_CMD?= /usr/bin/fetch -Afr
  更改为:
  FETCH_CMD?= /usr/local/bin/proz -r
  
  把1636行的
  FETCH_CMD?= /usr/bin/ftp
  更改为:
  FETCH_CMD?= /usr/local/bin/proz
  
  把1633行注释掉:
  #FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE}
  
  3、更改传递目录的参数:
  把2865行的
  args=-o ${file} $${site}$${file}
  更改为:
  args=-P ${_DISTDIR} $${site}$${file}
  
  把2913行的
  args=-o ${file} $${site}$${file}
  更改为:
  args=-P ${_DISTDIR} $${site}$${file}

(http://www.fanqiang.com)



 
 相关文章
FreeBSD Packages和Ports使用技巧 2006-05-19 16:08:19
Freebsd6.0下ports安装apache2.2.0+mysql5.1.7+php5.1.2 2006-06-22 11:23:10
 

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com