常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

[分享]如何使用多线程下载工具proz代替fetch用于ports的安装?
前往页面 1, 2  下一页
 
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全
阅读上一个主题 :: 阅读下一个主题  
作者 留言
newsim
道士


注册时间: 2003-01-16
文章: 606

文章发表于: Wed 2004-04-21 19:32:21    发表主题: [分享]如何使用多线程下载工具proz代替fetch用于ports的安装? 引用并回复

在安装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}


4、OK结束了。
返回页首
阅览会员资料 发送站内信件 发送电子邮件
gzbsd
道童


注册时间: 2004-02-29
文章: 282
来自: 中山大学

文章发表于: Wed 2004-04-21 20:18:06    发表主题: 引用并回复

不错,不过多线程下载会不会被封ip的?
_________________
鄙视那些只索取不付出的人!
返回页首
阅览会员资料 发送站内信件
韬光晦影
道童


注册时间: 2004-03-05
文章: 447
来自: sn

文章发表于: Wed 2004-04-21 20:20:53    发表主题: 引用并回复

+j
_________________
��⊙⊙─┐
 /. │韬光晦影 http://www.d2cn.com ┌
└──┴┴───────────────┘
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页 AIM MSN Messenger
quakelee
道童


注册时间: 2002-09-16
文章: 273

文章发表于: Wed 2004-04-21 23:52:51    发表主题: Re: [分享]如何使用多线程下载工具proz代替fetch用于ports的安装? 引用并回复

newsim 写到:
在安装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}


4、OK结束了。

你这个方法也有个大问题,你cvsup ports的时候怎么办?
你要知道直接修改bsd.port.mk的话,cvsup比较出来跟原始版本不同会重新checkout的,而且最近ports的结构经常改变,你如果不更新bsd.port.mk的话也是会有问题的
返回页首
阅览会员资料 发送站内信件 MSN Messenger
朝九晚五
半仙


注册时间: 2004-05-05
文章: 2

文章发表于: Wed 2004-05-05 03:01:23    发表主题: 引用并回复

不错,回家试试,FB下还没玩过多线程下载 Embarassed
返回页首
阅览会员资料 发送站内信件
ruf
老妖


注册时间: 2004-02-13
文章: 2577
来自: 南京

文章发表于: Sun 2004-05-16 15:38:39    发表主题: 引用并回复

自己制做一个脚本,比如/usr/local/bin/mydownload.pl,里面用proz下载,支持-o参数不就可以了么。修改非定制化的文件不是一个很好的想法。
_________________
来如流水兮逝如风,不知何处来兮何所终!
一人飘飘入世,实如江河流水,不知来自何处;飘飘出世,又如清风之不知吹向何方!
返回页首
阅览会员资料 发送站内信件 MSN Messenger
rhinofly
道童


注册时间: 2004-05-07
文章: 233

文章发表于: Tue 2004-06-01 10:39:16    发表主题: 引用并回复

用shell写一个warpper ...
_________________
-
蜗牛的蜗,蜗牛的牛.
-
Keep It Simple, Stupid.
-
msn&email:rhinofly@oss4e.net
-
旧时澳洲林中土,幻作中原飞天牛
-
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
梦幻者言R
道士


注册时间: 2004-03-30
文章: 622
来自: 康乐园(广东)

文章发表于: Sat 2004-06-26 16:55:16    发表主题: 引用并回复

我想问一下如何。用wget去代替默认的fetch?

不知道是fetch的问题,还是别的。
我的网络,fetch的时候,有些软件包下不了。no route to host
可是用wget下载同样的连接却可以。。ft~

_________________
www.lywen.cn
www.lywedu.cn
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
park
道童


注册时间: 2004-01-28
文章: 257

文章发表于: Tue 2004-08-10 00:16:33    发表主题: 引用并回复

ruf 写到:
自己制做一个脚本,比如/usr/local/bin/mydownload.pl,里面用proz下载,支持-o参数不就可以了么。修改非定制化的文件不是一个很好的想法。



具体怎么做?
返回页首
阅览会员资料 发送站内信件
park
道童


注册时间: 2004-01-28
文章: 257

文章发表于: Tue 2004-08-10 09:14:55    发表主题: Re: [分享]如何使用多线程下载工具proz代替fetch用于ports的安装? 引用并回复

newsim 写到:
在安装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}


4、OK结束了。



5.2的做法一样吗?
返回页首
阅览会员资料 发送站内信件
park
道童


注册时间: 2004-01-28
文章: 257

文章发表于: Tue 2004-08-10 09:27:01    发表主题: 引用并回复

5.2我改的怎么不行?
返回页首
阅览会员资料 发送站内信件
park
道童


注册时间: 2004-01-28
文章: 257

文章发表于: Tue 2004-08-10 09:29:08    发表主题: 引用并回复

这个

cp /usr/ports/Mk/bsd.port.mk /usr/ports/Mk/bsd.port.mk

自己cp自己呀?
返回页首
阅览会员资料 发送站内信件
newsim
道士


注册时间: 2003-01-16
文章: 606

文章发表于: Wed 2004-08-11 12:34:48    发表主题: Re: [分享]如何使用多线程下载工具proz代替fetch用于ports的安装? 引用并回复

newsim 写到:
在安装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 ~/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}


4、OK结束了。

_________________
越简单越接近本质!
返回页首
阅览会员资料 发送站内信件 发送电子邮件
park
道童


注册时间: 2004-01-28
文章: 257

文章发表于: Sun 2004-08-15 16:30:03    发表主题: 引用并回复

出现在服务器找不到文件时需要手动安一下键盘,这个比较麻烦,能自动跳过吗?
返回页首
阅览会员资料 发送站内信件
zagorot
半仙


注册时间: 2004-09-16
文章: 14

文章发表于: Sat 2004-09-18 21:07:28    发表主题: 引用并回复

park 写到:
这个

cp /usr/ports/Mk/bsd.port.mk /usr/ports/Mk/bsd.port.mk

自己cp自己呀?


他自己写错了而已。你自己改改名字不就行了吗?
返回页首
阅览会员资料 发送站内信件 MSN Messenger
zagorot
半仙


注册时间: 2004-09-16
文章: 14

文章发表于: Sat 2004-09-18 21:12:19    发表主题: 引用并回复

park 写到:
5.2我改的怎么不行?

5.2版本的bsd.port.mk文件内容有些增加,所以他说的行号与你的可能不对应,你自己先查找到他所需修改的相应内容,然后再按照他说的去修改就行啦。呵呵,我现在就正在下载新版mozilla...... Smile
返回页首
阅览会员资料 发送站内信件 MSN Messenger
LYOO
半仙


注册时间: 2003-04-05
文章: 7

文章发表于: Sat 2005-01-22 20:06:12    发表主题: 引用并回复

嗯,fetch的效率低,但更烦心的是下载源码时各个ports指的下载地址速度太慢,头一个就是默认的ftp.gnome.org镜像站,我最近刚从gnome2.6升级到gnome2.8,下载的过程真是痛苦,最后我只好遇到一个下不动的大包就停下gnomeupgrade.sh,然后手工用xdownload从就近的站将要下的源码包先下好放到distfiles下(Xorg、Mozilla、Gnome中的n个包),终于升级完成。

不知各位有什么好的方案没?
返回页首
阅览会员资料 发送站内信件
iheaing
道士


注册时间: 2005-01-20
文章: 773

文章发表于: Mon 2005-01-31 11:11:59    发表主题: 引用并回复

我的freebsd 4.11 在/usr/ports/ftp/下没有proz,只有prozilla。它们是同一个东西吗?
whereis proz
找不到。
返回页首
阅览会员资料 发送站内信件
Max
道士


注册时间: 2004-04-20
文章: 606
来自: Los Angeles

文章发表于: Mon 2005-01-31 12:40:16    发表主题: 引用并回复

iheaing 写到:
我的freebsd 4.11 在/usr/ports/ftp/下没有proz,只有prozilla。它们是同一个东西吗?
whereis proz
找不到。

就是prozilla它的执行文件是proz Rolling Eyes

_________________
Are humans all alone in the universe?
Search for......ET on your......PC......!! Join SETI@Home!!
This is My State.
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
hbaoy
半仙


注册时间: 2004-02-26
文章: 119

文章发表于: Sun 2005-02-20 07:18:24    发表主题: 引用并回复

用这个东西,你怎么解决非常小的文件的下载问题

非常小的文件用PROZ是绝对的浪费时间
返回页首
阅览会员资料 发送站内信件
从以前的文章开始显示:   
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全 论坛时间为 北京时间
前往页面 1, 2  下一页
1页/共2

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标