作者:雨烦 2024/11/8
序言:今天作为传统工作日的最后一天,上完无聊不想学数学的我便在网络上冲浪划水摸鱼。无意间发现了一个有趣的网站: 这个网站是一个中文版的GitHub,对于我这种英语不好的人极度友好。也是在这里,我发现了本章的主角–chsrc
chsrc的适用对象
两条命令快速更换Docker源,极大的减少上课换源所消耗的时间。
chsrc的下载
-
环境配置: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 -
安装: 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的运用
-
一般在学云计算方向的话,最常用到换源的课程是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
-
-
如果要查看有什么编程/系统/软件是可以换源的可以输入
./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
-
一些语法指南
使用: 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
没有回复内容