Closed
Description
为了更好的帮助和服务 FreeBSD 中文社区,我们将在这里持续讨论 FreeBSD 的换源实现情况
- 换源代码在这里: https://github.com/RubyMetric/chsrc/blob/main/chsrc.c#L1255
- 镜像在这里: https://github.com/RubyMetric/chsrc/blob/main/sources.h#L550
上述地址可能随代码的更新而代码行变动,我尽量更新
Metadata
Metadata
Assignees
Labels
os_dishos_dishos_dish
Activity
ccmywish commentedon Sep 24, 2023
2023-09-24
今天重新实现了
freebsd-pkg换源代码freebsd-ports换源代码有几个问题:
freebsd-pkg源 有没有 http 和 https 的问题?freebsd-ports的方式,这种并没有在你们的文档中记载,这种可行吗?选用哪一种最合适?freebsd-update源目前的状况如何?@ykla
ykla commentedon Sep 25, 2023
security/ca_root_nss这个包然后才能把软件源里的http改为https;MASTER_SITE_OVERRIDE?=https://mirrors.cernet.edu.cn/FreeBSD-ports/distfiles/${DIST_SUBDIR}/写入/etc/make.conf。设置了这个源后就会在指定镜像站下载源代码包而无需再去 Port 指定的作者提供的最初始的链接地址去拉取源码包。在 FreeBSD 上要使用 Ports 安装 xorg,需要:①先拉取 Ports,② 进入 Ports 路径cd /usr/ports/X11/xorg③执行make install clean自动下载源码包打补丁进行编译等。freebsd-update源,该源价值也不大,因为目前的升级文件是由几千个到上万个不等的小文件组成的,在有境内源的时候我测试过升级一个同一个系统所需要的时间相差不大,几乎一样。ykla commentedon Sep 25, 2023
需要注意的是
nju 的源并不能使用 git 拉取 Ports。他没有设置 git。
更换境内 pkg 源时,需要设置
url: "http://mirrors.163.com/freebsd-pkg/${ABI}/quarterly",时,必须删掉自带的pkg+。quarterly和latest是两个源。前者是一个季度更新一次,后者是滚动更新的。(除了 release 其他版本都只有latest)FreeBSD 基本系统并不自带 gmake,基本系统只自带 clang + llvm.
ccmywish commentedon Sep 27, 2023
@ykla
chsrc只使用了/freebsd-pkg/${ABI}/latest你看可以吗make命令吗?make是alias到bmake上了吗?FreeBSD自带的那个make(非gmake)可以运行我们的Makefile吗?还是说,FreeBSD 根本没有任何make?其他问题
/usr/ports和/usr/local/etc这些路径都是用户级别(bsdcn.org文档中写的)的吗?也就是说不需要root权限是吗?这样的话,是否可以完全不需要sudo,即可完成换源?ykla commentedon Sep 27, 2023
ccmywish commentedon Sep 29, 2023
其他问题
假设当前目录中
abc.txt文件不存在,ee abc.txt这个命令是创建并打开一个文件,还是只创建一个文件?请参考 https://gitee.com/RubyMetric/chsrc#bsd 使用
chsrc,看看能否编译运行。若能运行,则接着使用chsrc set freebsd和其他你想要换源的,看看能不能工作 😶🌫️ykla commentedon Oct 2, 2023
编译没有错误。使用命令应为
./chsrc set freebsdee abc.txt是创建并打开一个文件。写法不正确。正确的见 https://book.bsdcn.org/di-3-zhang-ruan-jian-yuan-ji-bao-guan-li-qi/di-3.2-jie-freebsd-huan-yuan-fang-shi.html
部分源没有 latest 或不再更新,另请见附图:http://pkg.freebsd.org/
ykla commentedon Oct 2, 2023
另外您的提示都是中文,在 tty 会乱码,FreeBSD 默认没有中文字体。FreeBSD 默认安装是没有任何 GUI 的。也不会预装 XORG。如图:
Remove unnecessary pkg conf for FreeBSD
Update copy command
willemsestan commentedon Jul 19, 2024
还有支持centos换源的计划么?
Add basic translations
ccmywish commentedon Aug 19, 2024
@willemsestan
你好,请参考 CentOS (Stream) Recipe Challenge! #48
happy-game commentedon Apr 2, 2025
鉴于目前大部分换源操作都是使用 sed 命令实现的,但是 BSD 上的 sed 命令与 Linux 上的有点差别。比如
sed -i 's/foo/bar/' filesed -i '' 's/foo/bar/' file以上内容来自
deepseek和 https://www.baeldung-cn.com/linux/gnu-bsd-stream-editor因此需要评估一下现有的换源实现, 确保其在 BSD 上也是正常运行的。
ccmywish commentedon Jul 12, 2025
@happy-game
macOS 上的
sed也是BSD sed吗?ccmywish commentedon Jul 12, 2025
@ykla
嗨,请问
FreeBSD的自动换源在贵社区中得到解决了吗?现在我们引入了 chsrc-bootstrap,允许直接用纯粹的脚本语言来进行换源。
如果有现成脚本,我们可指向该现成脚本
如果还没有现成脚本,我们欢迎新的贡献
ykla commentedon Jul 12, 2025
没有。并且上游引入了更多的源,比如内核模块源。同时计划移除 freebsd-update 源。
参见 https://book.bsdcn.org/di-4-zhang-ruan-jian-guan-li-he-xi-tong-sheng-ji/di-4.1-jie-freebsd-jing-xiang-zhan-xian-zhuang
https://book.bsdcn.org/di-4-zhang-ruan-jian-guan-li-he-xi-tong-sheng-ji/di-4.2-jie-freebsd-huan-yuan-fang-shi
happy-game commentedon Jul 20, 2025
是的
ykla commentedon Jul 20, 2025
建议开个 discussion,把这个 issue 转换成一个讨论。本页面网页版右侧可以实现。