科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道console下通过代理服务器更新FreeBSD port及package

console下通过代理服务器更新FreeBSD port及package

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了console下通过代理服务器更新FreeBSD port及package的方法。

2005年11月5日

关键字: FreeBSD 代理服务器

  • 评论
  • 分享微博
  • 分享邮件
    ZDNetChina服务器站 x86服务器技巧

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

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

    解决方案

    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。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章