Closed myuanz closed 4 weeks ago
Hi @myuanz ,感谢你的反馈和建议。
chsrc set ubuntu <mirror code>
直接选择,因为备选方案还是很多的,一个源不行,还可以选另一个chsrc set ubuntu https://xxxx
这种形式来支持用户自己指定镜像源出现暂停服务(最近的dockerhub)和迁移(比如 npmmirror),这些都是一两年才会碰到一次的事情,大多数时候,源都可以稳定工作
你可以看到,我在 .h
中放的源信息都是存在结构里。 如果把源信息都放一个.txt
文件里,就涉及到我如何定义这个文件,以及我如何用C语言去解析。为了极度的跨平台,我已经把依赖降到了最低,因此不可能引入 json
yaml
或者其他格式。
因为不可能一天到晚工作在这个仓库上。所以如果出现了源的更新,其实刚好有机会让我顺势去处理仓库中可能存在的其他问题。这样我就能发一个新的版本,批处理解决掉这些问题。
你可以看到,我们正在试图给多个包管理器打包,现在已经支持 homebrew
,有了这些包管理器,我们的整体更新是十分容易的
我感觉你说的配置文件其实有两个意思:
很抱歉我们暂时不会去实现此功能,因为这不符合 chsrc
的设计理念
chsrc
的设计理念No UFO
或 Just One Single File
一个简单直接的命令行工具,我不想让它有任何的配置文件,任何的额外下载信息,起着一个不知所以的.chsrc-sources.txt
等名字,存放在用户的某个犄角旮旯目录里,让用户设置一个 CHSRC_CONFIG
环境变量,如此种种。
Convention over Configuration
这是 Ruby 社区和 Groovy 社区的传统,我是从 Ruby 社区成长的,我们不喜欢有任何多余的配置文件。而且从现实角度来说,绝大多数用户都不会自己再去寻找并不停维护镜像源——软件已经做了。
如果你一定需要自定义,你完全可以利用上述提到的 指定源 中所属的两种方式,来实现自己的一个脚本,来决定对某个软件换特定某个源。
所以抱歉我暂时不会考虑实现这两个功能(从上游某个文件下载源信息,和用户自定义配置),希望你能理解。
如果人们对这两项功能需求数量庞大,我将重新考虑。
Hi @myuanz
已经可以支持自定义源,如:chsrc set ruby https://gems.ruby-china.com/
但是有些换源的URL和换源方法有关联,不能确保所有源都成功。若测试有问题,可以重新开一个issue.
谢谢
写在代码里的源要想更新只能从头更新二进制程序, 如果源已经更新而程序用了旧的, 可能会让用户非常困惑.
配置文件可以放到 github 或者 gitee 的 release 里, 没有什么代价. 也最好支持在命令行指定源配置文件, 这样有一些自定义源需求也可以不需要改代码来实现.
谢谢这个仓库