RubyMetric / chsrc

chsrc 全平台通用换源工具与框架. Change Source everywhere for every software
https://chsrc.run/
GNU General Public License v3.0
4k stars 162 forks source link

rocky linux 8 替换命令中的大小写不对 #49

Closed JAM2199562 closed 2 months ago

JAM2199562 commented 2 months ago

[root@rocky ~]# chsrc set rocky [chsrc 检查] ✓ 命令 curl 存在 测速 https://developer.aliyun.com/mirror/ ... 4.03 MByte/s 测速 https://developer.volcengine.com/mirror/ ... 1.18 MByte/s 测速 https://mirrors.sjtug.sjtu.edu.cn/ ... 0.00 Byte/s | HTTP码 000 测速 https://mirrors.sustech.edu.cn/ ... 51.19 MByte/s 测速 https://mirrors.zju.edu.cn/ ... 21.09 MByte/s 测速 https://mirror.lzu.edu.cn/ ... 37.03 MByte/s 测速 https://mirrors.sohu.com/ ... 5.25 KByte/s 测速 https://mirrors.163.com/ ... 0.00 Byte/s | HTTP码 000 最快镜像站: 南方科技大学开源软件镜像站 选中镜像站: SUSTech (sustech)

[chsrc 运行] sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sustech.edu.cn/rocky-linux|g' -i.bak /etc/yum.repos.d/rocky-extras.repo /etc/yum.repos.d/rocky.repo sed: can't read /etc/yum.repos.d/rocky-extras.repo: No such file or directory sed: can't read /etc/yum.repos.d/rocky.repo: No such file or directory [chsrc 运行] x 命令执行失败,返回码 512 chsrc: 关键错误,强制结束 [root@rocky ~]# sed -e 's|^mirrorlist=|#mirrorlist=|g' \

-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/Rocky-AppStream.repo \
/etc/yum.repos.d/Rocky-BaseOS.repo \
/etc/yum.repos.d/Rocky-Extras.repo \
/etc/yum.repos.d/Rocky-PowerTools.repo

[root@rocky ~]# dnf makecache Rocky Linux 8 - AppStream 33 MB/s | 12 MB 00:00 Rocky Linux 8 - BaseOS 16 MB/s | 6.0 MB 00:00 Rocky Linux 8 - Extras 99 kB/s | 14 kB 00:00 Metadata cache created. cat /etc/os-release NAME="Rocky Linux" VERSION="8.10 (Green Obsidian)" ID="rocky" ID_LIKE="rhel centos fedora" VERSION_ID="8.10" PLATFORM_ID="platform:el8" PRETTY_NAME="Rocky Linux 8.10 (Green Obsidian)" ANSI_COLOR="0;32" LOGO="fedora-logo-icon" CPE_NAME="cpe:/o:rocky:rocky:8:GA" HOME_URL="https://rockylinux.org/" BUG_REPORT_URL="https://bugs.rockylinux.org/" SUPPORT_END="2029-05-31" ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8" ROCKY_SUPPORT_PRODUCT_VERSION="8.10" REDHAT_SUPPORT_PRODUCT="Rocky Linux" REDHAT_SUPPORT_PRODUCT_VERSION="8.10"

ccmywish commented 2 months ago

@JAM2199562

感谢你的反馈!尤其是对/etc/os-release的提供,这帮助了我准确指定版本。

之前仅实现了对Rocky Linux 9的支持,这次在新发布的 v0.1.8 中新添加了对Rocky Linux 8的支持,可以下载使用最新版,若试用无问题,可关闭此issue

JAM2199562 commented 2 months ago

@ccmywish 验证有效,chsrc是个很好的项目,感谢您的付出! 同时我有个天马行空的想法,就是能否有个类似于chsrc set all的命令,然后程序自动查找本机上所有存在的可执行命令直接批量换源,希望考虑一下

ccmywish commented 2 months ago

@JAM2199562 你好,感谢你的再次验证和反馈。

关于 chsrc set all 之前也有人提过,确实对于 setup 一台新机器很有用,但是可能面临以下问题

  1. 不能判断用户哪些源想换,哪些源不想换

    比如 archlinux 的时候,其实用户更倾向于通过系统自己的方法换源,而非通过 chsrc.

  2. 有些源其实有问题

    比如 ruby 的源,虽然有三个,但是真正稳定可用的只有 rubychina 一家,其它镜像站实现的都有问题,使用的时候,可能每5次就会碰到这么1次问题

  3. 一些换源方法(recipe)并没有经过测试

    这是一个开源项目,一些 chsrc 所支持换源的平台,软件,我们其实自己并不使用。所以对于这些 target,我们实现的只是一个简单的、临时的方案,甚至很有可能是失败的(就比如 Rocky Linux 8 的换源)。如果换源前可以正常使用,换源后反而无法正常使用,则给用户带来了更多的麻烦。

    该项目依然处于曝光不足的状态,理论上每一个recipe都应该有专人负责维护,如果有可能请多参与报告bug,以及对代码做出贡献。


所以我理解你的需求,但是 chsrc 可能无法很好的实现这种功能,请谅解。

实际上,你可以通过自己编写 shell 脚本很容易地实现你想要达成的批量换源的目的。

CberYellowstone commented 2 months ago

根据测试,rocky系列中的R大小写不是绝对的,建议改为通配R和r

ccmywish commented 2 months ago

@CberYellowstone

你好,感谢你的使用和建议。

目前 8 是 大写 Rocky-,8 以后是小写 rocky。你提到的大小写不绝对,是还出现了其它情况吗?

https://github.com/RubyMetric/chsrc/blob/main/src/recipe/os/YUM/Rocky-Linux.c#L51-L64

一般我们还是尽量想精确匹配,因为怕别的软件也会给这个目录添加了 rocky 作为前缀的文件(虽然概率很小)。

CberYellowstone commented 2 months ago

@CberYellowstone

你好,感谢你的使用和建议。

目前 8 是 大写 Rocky-,8 以后是小写 rocky。你提到的大小写不绝对,是还出现了其它情况吗?

https://github.com/RubyMetric/chsrc/blob/main/src/recipe/os/YUM/Rocky-Linux.c#L51-L64

一般我们还是尽量想精确匹配,因为怕别的软件也会给这个目录添加了 rocky 作为前缀的文件(虽然概率很小)。

部分由8升级到9的rocky的大小写会跟着不变,我本地是这种情况。不过问题不大

不过既然是担心别的软件干扰的话,其他软件添加的源也有可能符合‘’精准匹配”,这个我觉得是无法避免的,除非不使用通配符,而是改成文件列表

ccmywish commented 2 months ago

@CberYellowstone

8 升级到 9 是这样的情况吗?:

  1. 原来的 Rocky-*.repo 这些文件保持不变,
  2. 新增了 rocky.reporocky-extras.repo

如果是这样,我还是直接针对 rocky*Rocky* 全部都换吧

CberYellowstone commented 2 months ago

@CberYellowstone

8 升级到 9 是这样的情况吗?:

  1. 原来的 Rocky-*.repo 这些文件保持不变,
  2. 新增了 rocky.reporocky-extras.repo

如果是这样,我还是直接针对 rocky*Rocky* 全部都换吧

我这边已无从考究,因为那天报错时我全部手动重命名了,抱歉