快速换源软件--chsrc

快速换源软件–chsrc

作者:  LSCQY                                                                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后会弹出以下中文提示

    [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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值