第 1 节 换源
第 1 节 换源
由于 FreeBSD 官方的镜像源都设在大陆之外,使用官方源的网速可能会很慢。因此我们可能要手动使用一些非官方源。但这些非官方源可能常常出现一些问题,所以如果不是网速真的很慢,尽量使用官方源。如果使用镜像源出现了什么问题,也可以切换官方源重新尝试一下。
pkg 换源
可以先参考 pkg。
创建并编辑用户级 pkg 配置文件:
root@freebsd:~ # mkdir -p /usr/local/etc/pkg/repos
root@freebsd:~ # ee /usr/local/etc/pkg/repos/mirrors.conf选择一项写入:
网易镜像站
163: {
url: "https://mirrors.163.com/freebsd-pkg/${ABI}/quarterly",
}
FreeBSD: { enabled: no }USTC 镜像站
USTC: {
url: "https://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/quarterly",
}
FreeBSD: { enabled: no }换源完成后使用 pkg update 更新。
注意
pkg 源分为 quarterly 源和 latest 源。一般情况下,RELEASE 系统使用 quarterly 源,STABLE 和 CURRENT 系统使用 latest 源。可以先查看 /etc/pkg/FreeBSD.conf 文件确认自己默认使用的是什么源。
quarterly 和 latest 源的区别是:quarterly 源更新较慢,一般较稳定;latest 源则是最新的。
需要注意 CURRENT 系统只有 latest 源,STABLE 和 RELEASE 则两个源都有。不过一般不建议切换,可能有一定的兼容问题。
ports 换源
可以先参考 ports。
ports 换源分为两部分,这部分的获取 ports 树的源,和下一部分的 distfiles 源。
获取 ports 树,使用 gitup 可能更简单。同时请参考 gitup 换源
通过 git 获取
首先安装 git:
root@freebsd:~ # pkg install git然后选择一个源获取 ports 树:
使用 USTC git 源
root@freebsd:~ # git clone --depth 1 https://mirrors.ustc.edu.cn/freebsd-ports/ports.git /usr/ports使用 NJU git 源
root@freebsd:~ # git clone --depth 1 https://mirrors.nju.edu.cn/freebsd-ports/ports.git /usr/ports通过压缩包获取
选择一个镜像源,下载压缩包:
使用 USTC 源
root@freebsd:~ # fetch https://mirrors.ustc.edu.cn/freebsd-ports/ports.tar.gz使用 NJU 源
root@freebsd:~ # fetch https://mirrors.nju.edu.cn/freebsd-ports/ports.tar.gz然后解压:
root@freebsd:~ # tar -xvf ports.tar.gz -C /usr/ports
root@freebsd:~ # rm ports.tar.gz # 可选,删除解压完成的压缩包gitup 换源
以 14.1-RELEASE 为例:
首先要安装 gitup:
root@freebsd:~ # pkg install gitup复制一份配置文件示例并编辑:
root@freebsd:~ # cp /usr/local/etc/gitup.conf.sample /usr/local/etc/gitup.conf
root@freebsd:~ # ee /usr/local/etc/gitup.conf需要改动以下四处内容:
# $FreeBSD$
#
# Default configuration options for gitup.conf.
{
"defaults" : {
"host" : "git.freebsd.org",
"port" : 443,
# "proxy_host" : "",
# "proxy_port" : 0,
# "proxy_username" : "",
# "proxy_password" : "",
# "source_address" : "",
"low_memory" : false,
"display_depth" : 0,
"verbosity" : 1,
"work_directory" : "/var/db/gitup",
},
"ports" : {
"host" : "mirrors.ustc.edu.cn", # 1 增加此行,也可以用 mirrors.nju.edu.cn
"repository_path" : "/freebsd-ports/ports.git", # 2 更改此行
"branch" : "main",
"target_directory" : "/usr/ports",
"ignores" : [],
},
"quarterly" : {
"host" : "mirrors.ustc.edu.cn", # 3 增加此行,也可以用 mirrors.nju.edu.cn
"repository_path" : "/freebsd-ports/ports.git", # 4 更改此行
"branch" : "quarterly",
"target_directory" : "/usr/ports",
"ignores" : [],
},
"release" : {
"repository_path" : "/src.git",
"branch" : "releng/13.2",
"target_directory" : "/usr/src",
"ignores" : [
"sys/[^\/]+/conf",
],
},
"stable" : {
"repository_path" : "/src.git",
"branch" : "stable/14",
"target_directory" : "/usr/src",
"ignores" : [
"sys/[^\/]+/conf",
],
},
"current" : {
"repository_path" : "/src.git",
"branch" : "main",
"target_directory" : "/usr/src",
"ignores" : [
"sys/[^\/]+/conf",
],
}
}之后可以以 root 身份执行 gitup ports 获取最新 ports,或 gitup quarterly 获取季度 ports。
另外,由于 FreeBSD src 暂时没有源,所以 gitup 配置中保留了官方源。
警告
截止到本文写成时间 2024/07/18,USTC 源存在问题,请使用 NJU 源。如果问题解决会更新本文。
distfiles 换源
distfiles 指的是实际使用 ports 时需要下载的内容。相当于 ports 是你的购物清单,distfiles 是你要买的商品。
需要选择一个镜像源并写入 /etc/make.conf:
root@freebsd:~ # ee /etc/make.conf使用 USTC distfiles 源
另起一行写入:
MASTER_SITE_OVERRIDE?=http://mirrors.ustc.edu.cn/freebsd-ports/distfiles/${DIST_SUBDIR}/使用 NJU distfiles 源
另起一行写入:
MASTER_SITE_OVERRIDE?=http://mirrors.nju.edu.cn/freebsd-ports/distfiles/${DIST_SUBDIR}/