免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4802 | 回复: 8
打印 上一主题 下一主题

[FreeBSD] 吐血推荐!console下通过代理服务器更新FreeBSD port及package! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-04 18:05 |只看该作者 |倒序浏览
经过数天吐血的努力,终于搞定了console下通过代理服务器更新FreeBSD port及package,推荐给大家,同时感谢前面所发两个求助帖子中曾经帮助我的朋友。

代理环境:通过一台装有ccproxy的windows机器(10.84.21.76)上网,ccproxy开通http、ftp服务。
我的系统:FreeBSD5.4-Release

问题:想更新机子上的port及已经安装的packages,但是cvsup不起作用,因为cvsup使用的不是http协议。


网上常用解决方案

在~/.cshrc中设置HTTP_PROXY和FTP_PROXY (sh或者bash用户用export)
setenv HTTP_PROXY 10.84.21.76:27015
setenv FTP_PROXY  10.84.21.76:27015

在/etc/make.conf中添加两行:
FETCH_ENV= FTP_PROXY=10.84.21.76:27015
FETCH_ENV= HTTP_PROXY=10.84.21.76:27015
(注意:=号后面的空格不可少)

一般这样设置以后就可以了,但是我这里怎么设置都不行。通过不断摸索,终于找到了最终的解决方案。

我的解决方案

1、更新port tree
   虽然不能使用cvsup,但是这里推荐给大家一个更好用的软件:portsnap(sysutils\portsnap),portsnap使用使用http协议(因为它使用fetch来获取包,因此要安装portsnap,我必须先在.cshrc中设定HTTP_PROXY和FTP_PROXY,这里只设置make.conf好像不行),速度更快更安全,占的带宽大概只有cvsup的十分之一。portsnap的作者就是FreeBSD Security Officer Team现任Officer:Colin Percival。

#cd /usr/ports/sysutils/portsnap
#make install clean
   
   安装好后,设置好配置文件(具体参见portsnap中的pkg-message)。  
   
   使用portsanp更新port tree的命令顺序为:
#portsnap fetch    #首次使用时会下载一个35M左右的port tree压缩snapshot,以后使用就会不断更新它
#portsnap extract  #只在第一次使用portsnap时使用,作用是把下载的压缩snapshot释放到/usr/ports
#portsnap update   #更新/usr/ports

这样port tree就更新好了,更多portsanp信息参见manpage和作者portsnap的主页。

2、更新已安装的package

   这让我很是费了不少脑筋,我是用portupgrade更新已安装的port和package,portupgrade使用fetch程序从网上down各种包,但是由于有代理设置,所以必须要设置一下。我在网上查阅了很多资料,都是讲怎么设置HTTP_PROXY、FTP_PROXY以及/etc/make.conf来使用fetch获取包,但是不管我怎么设置,portupgrade在遇到ftp站点时都不能下载。只有另辟蹊径,这里我推荐使用wget:

安装wget:
#cd /usr/ports/ftp/wget
#make install clean

修改wget的全局配置文件/usr/local/etc/wgetrc或者个人配置文件~/.wgetrc,添加代理设置:
http_proxy = 10.84.21.76:27015
ftp_proxy = 10.84.21.76:27015
这两行将将覆盖环境变量中设置的http_proxy和ftp_proxy。

接着在/etc/make.conf中添加两行:
FETCH_CMD= wget    #这样写wget必须在$PATH中,或者写绝对路径名:/usr/local/bin/wget
DISABLE_SIZE= YES  

注意:DISABLE_SIZE这条一定不能少,大家都注意到每个port的目录下都有一个distinfo文件,里面有SIZE一行,这会导致每次都传递给FETCH_CMD一个“-S bytes”参数,但wget不支持这一参数,如果不加这条,使用portupgrade时会提示:

     wget: invalid option --
     用法: wget [选项]... [URL]...

     请尝试使用“wget --help”查看更多的选项。

加上这行后,就一切搞定了,wget就会正常工作,里面还有一个双向箭头来回移动,比较有趣。可参看附件中我的屏幕截图。wget还有很多的参数可以使用,参见man wget。如果有参数需要添加,可以直接添加在FETCH_CMD上或者在/etc/make.conf中添加FETCH_BEFORE_ARGS和FETCH_AFTER_ARGS。

     
     我总结的就这么多,日后还会进行修订补充。欢迎大家批评指正,更期待大家提出更好的办法!
     
     最后如要转载本文,请注明出处和作者。谢谢!

[ 本帖最后由 Lippman 于 2005-11-4 18:07 编辑 ]

Screenshot.png (62.26 KB, 下载次数: 213)

wget使用1

wget使用1

Screenshot-1.png (62.97 KB, 下载次数: 211)

wget使用2

wget使用2

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
2 [报告]
发表于 2005-11-04 18:34 |只看该作者
不错不错,收藏了,多谢楼主共享

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
3 [报告]
发表于 2005-11-04 18:41 |只看该作者
楼主如果能把各个配置文件也贴出来最好,呵呵

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
4 [报告]
发表于 2005-11-04 18:42 |只看该作者
已加入精华,希望楼主多多共享!

论坛徽章:
0
5 [报告]
发表于 2005-11-04 18:42 |只看该作者
多谢版主加精!

论坛徽章:
0
6 [报告]
发表于 2005-11-04 18:45 |只看该作者
原帖由 剑心通明 于 2005-11-4 18:41 发表
楼主如果能把各个配置文件也贴出来最好,呵呵


我的配置文件基本上就是按照文中说的进行一些改动,大部分都是默认设置,所以就没有贴出来。

论坛徽章:
0
7 [报告]
发表于 2005-11-04 18:45 |只看该作者
呵呵,赞,对我有用

论坛徽章:
0
8 [报告]
发表于 2005-11-04 19:16 |只看该作者
楼主的桌面真漂亮啊 字体很不错啊  能否教教我怎么弄的

论坛徽章:
0
9 [报告]
发表于 2005-11-04 21:04 |只看该作者
收藏,对我等使用代理的太有用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP