使用 C 编写的跨平台的换源工具 chsrc

太多软件需要换源,以前一直用 shell 搞的,在 Windows 上得用 powershell,维护起来非常麻烦。

清华 Tuna 有一个用 Python 写的脚本,叫做 oh-my-tuna,但是不一定所有用户都会装 Python。JavaScript 同理。另外,它只能换到清华源。所以我想,能不能写一个比较通用一点的,大家都有机会使用。

  1. 目标是能够换各种编程语言,换操作系统,换各种软件(比如 brew, emacs, tex 等)
  2. 另外,我想要的是一个极其简单的 exe 文件。尤其是刚装机的时候,可能系统上还没有 python,还没有 js,所以更不能依赖于脚本语言
  3. 跨平台。所以这就不能使用 bash, sh, powershell 等

无论是自己的机器,还是服务器,还是 CI,我觉得这个工具,都可以起到一定作用。有没有感兴趣的小伙伴试试看? :crazy_face:

但是很抱歉,我身边没有人使用 SUSE,尽管实现了对 suse 的换源,但是可能并不凑效,如果有觉得这个软件好用的同学,欢迎参与开发和维护~

3赞

刚刚下载了 GitHub 上最新的 Linux 程序,试在 SUSE 15.5 上运行,结果

./chsrc-x64-linux: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./chsrc-x64-linux)

看了下我系统的 glibc 是 2.31

所以编译时是否该降一下所用的版本?

@howdoudo

我现在直接静态链接了该文件,你试试看,还有没有问题。

另外,请教下您,有没有办法按你说的,编译时指定 glibc 版本?目前我没有找到可行的方案。 :disappointed_relieved:

现在可以运行了

编译我也不是很懂的,似乎是应该选用一个旧的发行版,比如最旧的但仍在 LTS 周期中的 ubuntu。我看你的 GitHub action 里写的是 ubuntu-latest 就太新了

开个脑洞:测速换源只是第一步,搞个本地 http 作源,实质是个代理,能够自动多线程 + 多源同时下载
我是不是异想天开了

anyway 贴个我这里跑的测速:

openSUSE

chsrc: 测速 https://developer.aliyun.com/mirror/ ... 10.99 MByte/s
chsrc: 测速 https://mirrors.bfsu.edu.cn/ ... 1.17 MByte/s
chsrc: 测速 https://mirrors.ustc.edu.cn/ ... 490.72 KByte/s
chsrc: 测速 https://mirrors.tuna.tsinghua.edu.cn/ ... 9.96 MByte/s
chsrc: 测速 https://mirrors.tencent.com/ ... 1.17 MByte/s
chsrc: 测速 https://mirrors.163.com/ ... 6.79 MByte/s
chsrc: 测速 https://mirrors.sohu.com/ ... 125.97 KByte/s

flathub

chsrc: 测速 https://mirrors.sjtug.sjtu.edu.cn/ ... 10.50 MByte/s

brew

chsrc: 测速 https://mirrors.tuna.tsinghua.edu.cn/ ... 5.52 MByte/s
chsrc: 测速 https://mirrors.bfsu.edu.cn/ ... 10.23 MByte/s
chsrc: 测速 https://mirrors.zju.edu.cn/ ... 5.52 MByte/s
chsrc: 测速 https://mirrors.sustech.edu.cn/ ... 9.37 MByte/s

有机会我试试在旧一点的系统上编译看。

你的想法很有意思。但是我觉得可能实现不了,因为最终换的源是给各个软件换,下载是靠那些软件自己的逻辑完成的,比如 apt, npm, 等等,它们的下载逻辑我们应该无法干涉。

另外,您如果使用 openSUSE 和 flathub 以及 linuxbrew 的话,欢迎一起开发维护~

这几个都没有测试过,只是按照镜像站的文档编写的换源代码,所以很有可能无法工作。现在目前只有几个主流编程语言和主流 OS 是测试过的。