快速换源软件–chsrc - 🧩 软件分享极核论坛 - 知识星球 - 极核GetShell

快速换源软件–chsrc

作者:雨烦                                                                  2024/11/8

序言:今天作为传统工作日的最后一天,上完无聊不想学数学的我便在网络上冲浪划水摸鱼。无意间发现了一个有趣的网站: 首页 – HelloGitHub 这个网站是一个中文版的GitHub,对于我这种英语不好的人极度友好。也是在这里,我发现了本章的主角–chsrc

chsrc的适用对象

两条命令快速更换Docker源,极大的减少上课换源所消耗的时间。

chsrc的下载

  1. 环境配置:chsrc对于环境的要求极低,绝大部分的系统都能安装,还要能连接公网,我试过可以不用翻墙。在此演示的的系统是centos7.9-2009

    #以下是项目的部分简介
    全平台通用换源工具与框架 chsrc,目标支持 Linux, Windows (MSYS2, Cygwin), macOS, BSD 等尽可能多的操作系统环境,龙芯、飞腾、RISC-V 等尽可能多的 CPU。

    我们使用 C99 来完成上述目标。我们并不使用 Python 或 JS 等解释语言,因为一个简单的换源工具,不应该强行塞给用户一个庞大的解释器和数十、数百 MB 其他文件。

    本软件为自由软件,SDPX 软件许可证为 GPL-3.0-or-later and MIT
  2. 安装: Linux系统的安装有许多方法,这里选取采用最简单有效的方法,即手动下载二进制文件安装。至于为什么不是通过shell脚本一键安装最新版,绝对不是因为我一直下载失败懒得继续研究才放弃的😎。

    输入以下命令

    curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-linux -o chsrc; chmod +x ./chsrc

    出现以下情况则下载成功

    [root@localhost ~]# curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-linux -o chsrc; chmod +x ./chsrc

    % Total   % Received % Xferd Average Speed   Time   Time     Time Current
                                    Dload Upload   Total   Spent   Left Speed
    100   146   0   146   0     0   308     0 --:--:-- --:--:-- --:--:--   309
    0     0   0   227   0     0   369     0 --:--:-- --:--:-- --:--:--   369
    100 1133k 100 1133k   0     0   375k     0 0:00:03 0:00:03 --:--:-- 476k

    下载成功后用ls看一眼

    [root@localhost ~]# ls
    anaconda-ks.cfg Desktop   Downloads original-ks.cfg Public     Videos
    chsrc           Documents Music     Pictures         Templates
    [chsrc]  这就是我们今天的主角

    由于我们是手动方式安装,会下载到当前目录,可直接通过 ./chsrc 运行,如果是其他方式安装,则通过chsrc运行。输入./chsrc后会弹出以下中文提示

    [root@localhost ~]# ./chsrc

    chsrc: Change Source (GPLv3+) v0.1.9.3-2024/11/04 by RubyMetric

    使用: chsrc <command> [options] [target] [mirror]
    help                     打印此帮助,或 h, -h, --help
    issue                     查看相关issue

    list (或 ls, 或 l)       列出可用镜像源,和可换源目标
    list mirror/target       列出可用镜像源,或可换源目标
    list os/lang/ware         列出可换源的操作系统/编程语言/软件

    measure <target>         对该目标所有源测速
    cesu   <target>          

    list <target>             查看该目标可用源与支持功能
    get <target>             查看该目标当前源的使用情况

    set <target>             换源,自动测速后挑选最快源
    set <target> first     换源,使用维护团队测速第一的源
    set <target> <mirror>   换源,指定使用某镜像站 (通过list <target>查看)
    set <target> https://url 换源,用户自定义源URL
    reset <target>           重置,使用上游默认使用的源

    选项:
    -dry                     Dry Run,模拟换源过程,命令仅打印并不运行
    -local                   仅对本项目而非全局换源 (通过ls <target>查看支持情况)
    -ipv6                     使用IPv6测速
    -en(glish)               使用英文输出
    -no-color                 无颜色输出

    镜像站状态: <https://github.com/RubyMetric/chsrc/wiki>
    维护: <https://github.com/RubyMetric/chsrc>

    到此证明彻底安装成功

 

chsrc的运用

  1. 一般在学云计算方向的话,最常用到换源的课程是Docker。这里便演示Docker。注意:本环境未下载Docker. 运行以下命令

    [root@localhost ~]# ./chsrc set docker

    [chsrc 测速] 测速中

    - 上海道客网络科技有限公司 ... 11.10 MByte/s
    chsrc: 开发者未提供 fit2cloud 镜像站测速链接,跳过该站点
    - 俄罗斯 Huecker.io ... 0.00 Byte/s | HTTP码 000

    最快镜像站: 上海道客网络科技有限公司
    选中镜像站: DaoCloud (daocloud)
    --------------------------------
    [chsrc 检查] ✓ 文件 /etc/docker/daemon.json 存在
    [chsrc 提示] 已找到Docker配置文件,将自动换源
    [chsrc 运行] cp /etc/docker/daemon.json /etc/docker/daemon.json.bak --backup='t'
    [chsrc 提示] 备份文件名为 /etc/docker/daemon.json.bak
    [chsrc 提示] 未找到 jq 命令, 将使用 sed 换源
    [chsrc 运行] sed -z -i 's|"registry-mirrors":[^]]*]|"registry-mirrors":["https://docker.m.daocloud.io"]|' /etc/docker/daemon.json
    [chsrc 运行] ✓ 命令执行成功

    [chsrc 提示] 请自行运行: sudo systemctl restart docker
    [chsrc 提示] 该命令会重启所有容器, 请在合适的时机执行
    --------------------------------
    chsrc: 因实现约束需按上述提示手工操作, 感谢镜像提供方: 上海道客网络科技有限公司
    chsrc: 若您有更好的换源方案,邀您帮助: chsrc issue

    注意!!!

    • 这里我提前试过一遍,因此有daemon.json文件,如果你没有安装Docker的话,它会帮你创建一个daemon.json文件。

    • 这里会自动选择一个网络最快的源进行更换。

    • 如果有VPN能连接外网的话,这里还有可能会换成俄罗斯 Huecker.io的源地址

    • 记得要重启Docker

      sudo systemctl restart docker

     

  2. 如果要查看有什么编程/系统/软件是可以换源的可以输入./chsrc list targets

    [root@localhost ~]# ./chsrc list targets
    支持对以下目标换源 (同一行表示这几个命令兼容)

    编程语言
    -------------------------
    gem ruby rb rubygem rubygems bundler
    python pypi py
    pip
    poetry
    pdm
    node nodejs
    bun
    npm
    pnpm
    yarn
    nvm
    perl cpan
    php composer
    lua luarocks
    rust cargo crate crates
    rustup
    go golang goproxy
    java maven mvn gradle
    clojure clojars cloj lein
    dart pub
    flutter
    ocaml opam
    cran r
    julia
    haskell cabal stack hackage

    操作系统
    -------------------------
    debian
    ubuntu
    linuxmint mint
    kali
    trisquel
    lite linuxlite
    raspi raspberrypi
    armbian
    openwrt opkg LEDE
    deepin
    openkylin
    ros ros2
    fedora
    rocky rockylinux
    alma almalinux
    openeuler
    openanolis anolis
    opensuse
    arch archlinux
    archlinuxcn archcn
    manjaro
    gentoo
    alpine
    void voidlinux
    solus
    msys2 msys
    freebsd
    netbsd
    openbsd

    软件
    -------------------------
    winget
    brew homebrew
    cocoa cocoapods pod cocoapod
    dockerhub docker
    flathub flatpak
    nix
    guix
    emacs elpa
    latex ctan tex texlive miktex tlmgr mpm
    conda anaconda
  3. 一些语法指南

    使用: chsrc <command> [options] [target] [mirror]

    help                     # 打印此帮助,或 h, -h, --help
    issue                     # 查看相关issue

    list (或 ls, 或 l)       # 列出可用镜像源,和可换源目标
    list mirror/target       # 列出可用镜像源,或可换源目标
    list os/lang/ware         # 列出可换源的操作系统/编程语言/软件

    measure <target>         # 对该目标所有源测速
    cesu   <target>

    list <target>             # 查看该目标可用源与支持功能
    get <target>             # 查看该目标当前源的使用情况

    set <target>             # 换源,自动测速后挑选最快源
    set <target> first     # 换源,使用维护团队测速第一的源
    set <target> <mirror>   # 换源,指定使用某镜像站 (通过list命令查看)
    set <target> https://url # 换源,用户自定义源URL
    reset <target>           # 重置,使用上游默认使用的源

    选项:
    -dry                     # Dry Run,模拟换源过程,命令仅打印并不运行
    -local                   # 仅对某项目而非全局换源 (仅部分软件如bundler,pdm支持)
    -ipv6                     # 使用IPv6测速
    -en(glish)               # 使用英文输出
    -no-color                 # 无颜色输出

    自动测速,寻找最快者,换源

      $ chsrc set ruby

    不想自动测速的时候,可使用维护团队测试的最快镜像站

      $ chsrc set ruby first

    先列出可用的镜像站,然后选择其一,如使用 RubyChina 作为镜像站

      $ chsrc ls ruby
      $ chsrc set ruby rubychina

    若您有自己的镜像地址,使用自定义URL

      $ chsrc set ruby https://gems.ruby-china.com/

    对支持 *项目级* 换源的目标,可以避免全局(*系统级* 或 *用户级*)换源

      $ chsrc set -local bundler
      $ chsrc set -local pdm

     

引用:

  1. RubyMetric/chsrc: 全平台通用的换源工具 – HelloGitHub

  2. RubyMetric/chsrc: chsrc 全平台通用换源工具与框架. Change Source everywhere for every software

请登录后发表评论

    没有回复内容