Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

功能需求: 从配置文件中读取源信息而不是写死到.h文件里 #33

Closed
myuanz opened this issue Jun 9, 2024 · 3 comments
Closed
Assignees

Comments

@myuanz
Copy link

myuanz commented Jun 9, 2024

写在代码里的源要想更新只能从头更新二进制程序, 如果源已经更新而程序用了旧的, 可能会让用户非常困惑.

配置文件可以放到 github 或者 gitee 的 release 里, 没有什么代价. 也最好支持在命令行指定源配置文件, 这样有一些自定义源需求也可以不需要改代码来实现.

谢谢这个仓库

@ccmywish
Copy link
Contributor

ccmywish commented Jun 9, 2024

Hi @myuanz ,感谢你的反馈和建议。

指定源

  1. 现有的实现可以使用 chsrc set ubuntu <mirror code> 直接选择,因为备选方案还是很多的,一个源不行,还可以选另一个
  2. 我打算后面增加 chsrc set ubuntu https://xxxx 这种形式来支持用户自己指定镜像

源的更新

  1. 源出现暂停服务(最近的dockerhub)和迁移(比如 npmmirror),这些都是一两年才会碰到一次的事情,大多数时候,源都可以稳定工作

  2. 你可以看到,我在 .h 中放的源信息都是存在结构里。 如果把源信息都放一个.txt文件里,就涉及到我如何定义这个文件,以及我如何用C语言去解析。为了极度的跨平台,我已经把依赖降到了最低,因此不可能引入 json yaml 或者其他格式。

  3. 因为不可能一天到晚工作在这个仓库上。所以如果出现了源的更新,其实刚好有机会让我顺势去处理仓库中可能存在的其他问题。这样我就能发一个新的版本,批处理解决掉这些问题。

  4. 你可以看到,我们正在试图给多个包管理器打包,现在已经支持 homebrew, scoop, AUR,有了这些包管理器,我们的整体更新是十分容易的


配置文件

我感觉你说的配置文件其实有两个意思:

  1. 源信息放在上游仓库里,这是一个配置文件
  2. 用户可以自己定义一个配置文件,用来替代上游的这个

很抱歉我们暂时不会去实现此功能,因为这不符合 chsrc 的设计理念


chsrc 的设计理念

  1. No UFO

    什么是UFO

    一个简单直接的命令行工具,我不想让它有任何的配置文件,任何的额外下载信息,起着一个不知所以的.chsrc-sources.txt等名字,存放在用户的某个犄角旮旯目录里,让用户设置一个 CHSRC_CONFIG 环境变量,如此种种。

  2. Convention over Configuration

    这是 Ruby 社区的传统,我们不喜欢有任何多余的配置文件。而且从现实角度来说,绝大多数用户都不会自己再去寻找并不停维护镜像源——软件已经做了。

    如果你一定需要自定义,你完全可以利用上述提到的 指定源 中所属的两种方式,来实现自己的一个脚本,来决定对某个软件换特定某个源。


结论

所以抱歉我暂时不会考虑实现这两个功能(从上游某个文件下载源信息,和用户自定义配置),希望你能理解。

如果人们对这两项功能需求数量庞大,我将重新考虑。

@ccmywish ccmywish closed this as completed Jun 9, 2024
ccmywish added a commit that referenced this issue Jun 13, 2024
ccmywish added a commit that referenced this issue Jun 13, 2024
ccmywish added a commit that referenced this issue Jun 13, 2024
@ccmywish ccmywish self-assigned this Jun 13, 2024
@ccmywish
Copy link
Contributor

Hi @myuanz

已经可以支持自定义源,如:chsrc set ruby https://gems.ruby-china.com/

但是有些换源的URL和换源方法有关联,不能确保所有源都成功。若测试有问题,可以重新开一个issue.

@myuanz
Copy link
Author

myuanz commented Jun 14, 2024

谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants