FreeBSD安装ports时间过长解决方法

作者:技术拾光

时间:2026-07-30

浏览:216

FreeBSD在安装ports时缩短下载时间 在FreeBSD上编译安装ports时,最让人抓狂的往往不是编译本身,而是下载源码包的过程。网络慢、连接不稳定、甚至被墙,几分钟就能把耐心磨光。好在这几个小技巧,能帮你把下载时间压到最低。下面直接上干货。 方法A: 使用袋里 最简单直接的办法:给fetc

文章目录

FreeBSD在安装ports时缩短下载时间

在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整个目录打包,拷贝到你本机的对应位置。这样本地编译时就不用再下载了——相当于离线缓存。

方法c: 使用wget/axel加速下载

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下载慢的问题基本就解决了。选一个最适合你网络环境的,编译前先调好配置,后面就能省下大把时间。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章