winget install --id=RubyMetric.chsrc -e
chsrc 全平台通用换源工具与框架. Change Source everywhere for every software
chsrc is a cross-platform tool designed to manage and switch software sources efficiently across various operating systems, including Linux, Windows (MSYS2, Cygwin), macOS, BSD, and more. It supports multiple CPU architectures such as x86, ARM, RISC-V, and others.
Key Features:
Audience & Benefit: Ideal for developers, system administrators, and anyone who needs reliable software updates across multiple platforms. chsrc streamlines the process of switching sources, enabling users to quickly access faster or more suitable mirrors for their specific needs. It can be installed via winget, making it easy to integrate into your workflow.
This professional tool ensures efficiency, flexibility, and simplicity in managing software sources, while maintaining cross-platform compatibility and performance optimization.
全平台通用换源工具与框架 chsrc
,目标支持 Linux, Windows (native, MSYS2, Cygwin), macOS, BSD, Android 等尽可能多的操作系统环境,龙芯、飞腾、RISC-V 等尽可能多的 CPU。
我们使用 C11 来完成上述目标。我们并不使用 Python 或 JS 等解释语言,因为一个简单的换源工具,不应该强行塞给用户一个庞大的解释器和数十、数百 MB 其他文件。
本软件为自由软件,SDPX 软件许可证为 GPL-3.0-or-later and MIT
<a href="https://trendshift.io/repositories/10744"><img src="https://trendshift.io/api/badge/repositories/10744" width="250" height="55" /></a>
<a href="https://hellogithub.com/repository/7666ba91e01e4a59be5809b02d9e8ff6"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=7666ba91e01e4a59be5809b02d9e8ff6&claim_uid=H6YVMUy7ulev8R4&theme=dark" width="250" height="54" /></a>
> [!TIP]
> chsrc
不仅是一个命令行工具,同时也是一个体现了 Ruby on Rails 思想的 MVC 换源框架,它甚至使你能够在不了解C语言的情况下编写出新的换源方法 (recipe)。 配合使用 rawstr4c, 这将比写 shell 脚本更加轻松。 Write A Recipe Even If You Don't Know C
> [!IMPORTANT]
> chsrc
可换源 65+ 目标。每个人仅仅贡献和维护自己熟悉的部分,回报是得到其他所有领域专家的帮助。 欢迎成为 recipe 维护者
可参与的任务与挑战:
已由贡献者完成的挑战
镜像站可用性
打包
想通过 dnf
, flatpak
, snap
等系统包管理工具来安装和更新chsrc
?若可提供维护,请访问 issue#16 on GitHub
Homebrew
Scoop
WinGet
AUR
Flatpak
snap
桌面端:
安卓:
> [!IMPORTANT]
> 若通过下述手动方式安装,则会下载到当前目录,可直接通过 ./chsrc
运行
Windows
scoop install chsrc
WinGet
安装,感谢 @YU-7winget install RubyMetric.chsrc
可通过 PowerShell
脚本一键下载最新版二进制文件,感谢 @wickdynex
若下方链接无法访问,可使用 https://gitee.com/RubyMetric/chsrc/raw/main/tool/installer.ps1
替代
# 使用 -Version 指定版本 (不指定时默认为 pre)
# 1. 安装 pre 版本; 这比从包管理器安装的总是更新一些
# 2. 安装旧版本; 有时新版本可能引入某些 Bug,临时使用旧版本解决燃眉之急
"& { $(iwr -useb https://chsrc.run/windows) } -Version pre" | iex
scoop
提供的更新,适用于修复 Bug、添加新功能后及时使用,以及未安装 scoop
时# x64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-windows.exe -o chsrc.exe
# x86
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x86-windows.exe -o chsrc.exe
Linux
apt
/dpkg
安装,感谢 @sanchuanhehe# x64
$ curl -LO https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc_latest-1_amd64.deb
# 也可以使用 Wget
wget https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc_latest-1_amd64.deb
$ sudo apt install ./chsrc_latest-1_amd64.deb
# 或
$ sudo sudo dpkg -i chsrc_latest-1_amd64.deb
AUR
,可通过 yay
安装,感谢 @Jerry-Terrasse# AUR
$ yay -S chsrc-bin # Binary from GitHub Release
$ yay -S chsrc-git # Build from the latest main branch (stable)
$ yay -S chsrc # Build from GitHub Release
可通过 shell
脚本一键安装最新版,感谢 @Efterklang 与 @wickdynex
若下方链接无法访问,可使用 https://gitee.com/RubyMetric/chsrc/raw/main/tool/installer.sh
替代
# 非root用户默认安装至 ~/.local/bin
$ curl https://chsrc.run/posix | bash
# 也可以使用 Wget
$ wget -O - https://chsrc.run/posix | bash
# root用户默认安装至 /usr/local/bin
$ curl https://chsrc.run/posix | sudo bash
# 使用 -d 指定目录安装
$ curl https://chsrc.run/posix | bash -s -- -d ./
# 使用 -v 指定版本 (不指定时默认为 pre)
# 1. 安装 pre 版本; 这比从包管理器安装的总是更新一些
# 2. 安装旧版本; 有时新版本可能引入某些 Bug,临时使用旧版本解决燃眉之急
$ curl https://chsrc.run/posix | bash -s -- -v 0.2.1
# 使用 -l en 输出英文
$ curl https://chsrc.run/posix | bash -s -- -l en
# x64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-linux -o chsrc; chmod +x ./chsrc
# aarch64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-aarch64-linux -o chsrc; chmod +x ./chsrc
# riscv64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-riscv64-linux -o chsrc; chmod +x ./chsrc
# armv7
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-armv7-linux -o chsrc; chmod +x ./chsrc
如果你所在的处理器架构没有预编译版本,可以使用 chsrc-bootstrap
macOS
homebrew
安装,感谢 @Aaron-212 与 @chenrui333brew install chsrc
可通过 shell
脚本安装最新版,感谢 @Efterklang 与 @wickdynex
若下方链接无法访问,可使用 https://gitee.com/RubyMetric/chsrc/raw/main/tool/installer.sh
替代
# 非root用户默认安装至 ~/.local/bin
$ curl https://chsrc.run/posix | bash
# root用户默认安装至 /usr/local/bin
$ curl https://chsrc.run/posix | sudo bash
# 使用 -d 指定目录安装
$ curl https://chsrc.run/posix | bash -s -- -d ./
# 使用 -v 指定版本 (不指定时默认为 pre)
# 1. 安装 pre 版本; 这比从包管理器安装的总是更新一些
# 2. 安装旧版本; 有时新版本可能引入某些 Bug,临时使用旧版本解决燃眉之急
$ curl https://chsrc.run/posix | bash -s -- -v 0.2.1
# 使用 -l en 输出英文
$ curl https://chsrc.run/posix | bash -s -- -l en
homebrew
提供的更新,适用于修复 Bug、添加新功能后及时使用# arm64/aarch64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-aarch64-macos -o chsrc; chmod +x ./chsrc
# x64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-x64-macos -o chsrc; chmod +x ./chsrc
BSD
如果已安装好了编译 chsrc
所需要的依赖,可直接运行:
git clone https://gitee.com/RubyMetric/chsrc.git; cd chsrc
clang -Iinclude -Ilib src/chsrc-main.c -o chsrc
如果还不存在这些依赖,你将会被死锁住: 我还没有换源,我该如何安装这些依赖呢?
这就是 chsrc-bootstrap 起作用的时刻,你可使用BSD系统的原生脚本语言编写 bootstrapper
,并向我们提交
注: chsrc
实现的 FreeBSD recipe
长期存在问题,因此一个新的 bootstrapper
是相当必要的,请帮助你自己和大家!
Android/Termux
Termux 中默认无 Wget
,我们都用 cURL
来下载安装
# arm64/aarch64
curl -L https://gitee.com/RubyMetric/chsrc/releases/download/pre/chsrc-arm64-android -o chsrc; chmod +x ./chsrc
如果你所在的处理器架构没有预编译版本,可以使用 chsrc-bootstrap:
curl -L https://gitee.com/RubyMetric/chsrc/raw/main/bootstrap/Termux.bash | bash
其他平台
若你所在的平台不存在预编译好的 chsrc
,你需要手动编译。如果已安装好了编译 chsrc
所需要的依赖,可直接运行:
git clone https://gitee.com/RubyMetric/chsrc.git; cd chsrc; make
如果还不存在这些依赖,你将会被死锁住: 我还没有换源,我该如何安装这些依赖呢?
这就是 chsrc-bootstrap 起作用的时刻,你可使用该平台原生脚本语言编写 bootstrapper
,并向我们提交
名称:
chsrc - Change Source - (GPLv3+)
使用:
chsrc [options] [target] [mirror]
命令:
help, h 打印此帮助,或 -h, --help
issue, i 查看相关issue
list, ls, l 列出可用镜像站和可换源目标
list mirror|target 列出支持的: 镜像站/换源目标
list os|lang|ware 列出支持的: 操作系统/编程语言/软件
list 查看该目标可用源与支持功能
measure, m, cesu 对该目标所有源测速
get, g 查看该目标当前源的使用情况
set, s 换源,自动测速后挑选最快源
set first 换源,使用维护团队测速第一的源
set 换源,指定使用某镜像站 (通过list 查看)
set 换源,用户自定义源URL
reset 重置,使用上游默认使用的源
选项:
-dry Dry Run,模拟换源过程,命令仅打印并不运行
-local 仅对本项目而非全局换源 (通过ls 查看支持情况)
-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
chsrc set ruby|rb|gem|bundler|rubygems
chsrc set python | py | pypi # 同时换 pip, poetry, pdm, uv 这4个包管理器,也可以4个独立换源
chsrc set pip
chsrc set poetry
chsrc set pdm
chsrc set uv
chsrc set rye
chsrc set node | nodejs # 同时换 npm, yarn 和 pnpm 这3个包管理器,也可以3个独立换源
chsrc set npm
chsrc set yarn
chsrc set pnpm
chsrc set nvm
chsrc set bun
chsrc set perl | cpan
chsrc set php | composer
chsrc set lua | luarocks
chsrc set rust | cargo | crate
chsrc set rustup
chsrc set go
chsrc set java | maven | mvn | gradle
chsrc set clojure | clojars
chsrc set dart | pub
chsrc set flutter
chsrc set haskell | hackage | cabal | stack
chsrc set ocaml | opam
# 同时会为 bioconductor 换源
chsrc set r | cran
chsrc set julia
sudo chsrc set ubuntu
sudo chsrc set zorinos
sudo chsrc set linuxmint
sudo chsrc set debian
sudo chsrc set fedora
# 同时支持 Leap 和 Tumbleweed
sudo chsrc set opensuse
sudo chsrc set kali
sudo chsrc set arch
sudo chsrc set archlinuxcn
sudo chsrc set manjaro
sudo chsrc set gentoo
sudo chsrc set rocky | rockylinux
sudo chsrc set alma | almalinux
sudo chsrc set alpine
sudo chsrc set voidlinux
sudo chsrc set solus
sudo chsrc set ros | ros2
sudo chsrc set trisquel
sudo chsrc set linuxlite
sudo chsrc set raspi | raspberrypi
sudo chsrc set armbian
sudo chsrc set openwrt
sudo chsrc set openeuler
sudo chsrc set openanolis | anolis
sudo chsrc set openkylin
sudo chsrc set deepin
chsrc set msys2 | msys
# Android
chsrc set termux
# BSD
sudo chsrc set freebsd
sudo chsrc set openbsd
sudo chsrc set netbsd
chsrc set winget
chsrc set brew | homebrew
chsrc set cocoapods | cocoa | pod
chsrc set dockerhub | docker
chsrc set flathub | flatpak
chsrc set nix
chsrc set guix
chsrc set emacs | elpa
chsrc set tex | ctan | latex | texlive | miktex
chsrc set conda | anaconda
chsrc
主程序采用 GPL-3.0-or-later
许可证,保证该软件的永久自由xy.h
使用 MIT
许可证,保证该库可以在尽可能多的情况下复用感谢各个镜像站提供的优质免费镜像服务
另外特别感谢以下组织或项目:
你是否因为 chsrc
而受到启发、节省了时间精力 or whatever?
爱发电主页: