FreeBSD在安装ports时缩短下载时间 在FreeBSD上编译安装ports时,最让人抓狂的往往不是编译本身,而是下载源码包的过程。网络慢、连接不稳定、甚至被墙,几分钟就能把耐心磨光。好在这几个小技巧,能帮你把下载时间压到最低。下面直接上干货。 方法A: 使用袋里 最简单直接的办法:给fetc
在FreeBSD上编译安装ports时,最让人抓狂的往往不是编译本身,而是下载源码包的过程。网络慢、连接不稳定、甚至被墙,几分钟就能把耐心磨光。好在这几个小技巧,能帮你把下载时间压到最低。下面直接上干货。
方法A: 使用袋里最简单直接的办法:给fetch挂个袋里。在/etc/make.conf里加上这一行:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
FETCH_ENV= "HTTP_PROXY=IP[:端口]"
如果需要认证,在后面加空格,再加:
HTTP_PROXY_AUTH=basic:*:user:password
这样一来,所有通过fetch发起的下载都会走袋里,速度立竿见影。
方法B: 在其它机器上fetch如果你有一台网络条件更好的机器(比如VPS或者同事的电脑),可以先把distfiles拉下来,再传过去。
在目标机器上执行:
make fetch-recursive
等下载完成后,把/usr/ports/distfiles整个目录打包,拷贝到你本机的对应位置。这样本地编译时就不用再下载了——相当于离线缓存。
FreeBSD自带的fetch单线程且不支持断点续传的某些场景,但我们可以用更强大的下载工具来替换它。以下配置全部写在/etc/make.conf里。
对于wget
先安装wget:
cd /usr/ports/ftp/wget/ && make install clean
然后配置:
FETCH_CMD= wget
FETCH_BEFORE_ARGS= -c -t 1
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes # 这行是必要的,否则可能出问题
前面三行也可以简写成一行:
FETCH_CMD=wget -c -t 1
如果你需要wget穿透袋里服务器,加上:
FETCH_ENV=http_proxy=http://proxy2.zsu.edu.cn:3128
FETCH_ENV=ftp_proxy=http://proxy2.zsu.edu.cn:3128
当然也可以用proxychains或socks5(runsocks)来穿墙,这时FETCH_CMD用proxychains wget或runsocks wget就行。
对于axel
axel支持多线程下载,速度更猛。先安装:
cd /usr/ports/ftp/axel/ && make install clean
配置:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
或者直接一行:
FETCH_CMD=axel -a
axel穿透袋里的方式与wget完全一致,在FETCH_ENV里设置袋里地址即可。
掌握了这几个方法,ports下载慢的问题基本就解决了。选一个最适合你网络环境的,编译前先调好配置,后面就能省下大把时间。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述