mirror-switcher(镜像切换工具 / Mirror Switcher)
为什么需要它 / Why开发者在不同网络环境下经常需要在「官方源」与「国内镜像源」之间反复切换nrm 解决了 npm 的痛点但 pip、brew、docker、maven、go、cargo、yum、apt…… 每一个都要查一遍文档、改一遍配置文件。本套件把这些操作统一起来命令完全一致switch-xxx ls # 列出全部预设源 / list all preset sourcesswitch-xxx use tsinghua # 切到清华源 / switch to Tsinghua mirrorswitch-xxx test # 给所有源测速排序 / latency-test rank all sources二、工具清单共 20 个/ Tool list (20 in total)命令 / Command 用途 / Purpose 对标 / Mirrorsswitch-npm npm / pnpm / yarn 包源 / package registry nrmswitch-node Node.js 多版本管理 / version manager nvm自动识别 fnm / volta / nvmswitch-brew macOS Homebrew 镜像 / Homebrew mirror 需求① ibrewswitch-pip Python pipPyPI跨平台源 / cross-platform pip 需求②switch-conda Anaconda / Miniconda 通道 / conda channels 需求③switch-docker Docker registry 镜像加速器 / registry mirror 需求④switch-git Git 克隆加速GitHub 代理/ clone acceleration 需求⑤switch-yum CentOS / Rocky / Alma YUM 源 / YUM source 需求⑥switch-apt Ubuntu / Debian APT 源 / APT source Linux Debian 系switch-pacman Arch / Manjaro Pacman 源 / pacman mirrorlist Arch 系switch-dnf Fedora DNF 源 / DNF source Fedoraswitch-zypper openSUSE Zypper 源 / Zypper source SUSE 系switch-maven Maven 仓库镜像 / Maven repository Java 后端switch-gradle Gradle 依赖源 / Gradle source Gradle 项目switch-go Go GOPROXY 代理 / Go modules proxy Golangswitch-cargo Rust Cargo crates 源 / Cargo crates Rustswitch-composer PHP Composer 镜像 / Composer mirror PHPswitch-nuget .NET NuGet 程序包源 / NuGet feed C# / .NETswitch-pub Flutter / Dart Pub 镜像 / Pub mirror Flutterswitch-helm Kubernetes Helm Chart 仓库 / Helm repo 运维 K8s三、全局通用指令所有 switch-* 工具通用/ Shared commandsls 列出所有预设与自定义源* 标记当前生效源list all preset custom sources (* current)current 查看当前正在使用的源 / show current sourceuse 切换至指定命名源 / switch to a named sourceadd [home] 手动添加自定义私有源 / add a custom sourcedel 删除一条自定义源 / delete a custom sourcetest [name] 批量测速所有源并按延迟排序或测单个latency-test all sources (or a single one)home 在浏览器打开对应镜像源主页 / open a source’s homepagebackup 备份当前原有配置文件 / back up the original configrestore [stamp] 从最新或指定时间戳备份还原配置restore from latest (or given timestamp) backuphelp 查看帮助 / show help-v / --version 查看版本 / show versionswitch-node 命令语义按版本管理映射ls列版本、use 切换、add 安装、del 卸载、test验证每个已装版本可运行。switch-node maps commands to version management: lslist, useswitch, addinstall, deluninstall, testverify.保留的预设名不可 add/del/ Reserved preset names (cannot be added/deleted)official、tsinghua、aliyun、ustc部分系统源另有 163。各工具会按该生态实际可用的镜像补齐详见各工具 ls 输出。四、快速开始 / Quick start方式 A远程一键安装推荐/ Option A: Remote one-line installer (recommended)无需 git clone一行命令拉取并安装所有 20 个工具自动写入 PATH 并提示如何让当前 shell 立即生效Linux / macOSbash / zsh国内推荐Gitee 源速度快/ recommended in China (Gitee)bash (curl -fsSL https://gitee.com/eword/mirror-switcher/raw/main/bootstrap.sh)或管道模式无 TTY/ or: piped mode (no TTY)curl -fsSL https://gitee.com/eword/mirror-switcher/raw/main/bootstrap.sh | bash只安装指定工具逗号分隔/ install only specific toolsbash (curl -fsSL …/bootstrap.sh) --toolsnpm,pip,yum卸载 / uninstallbash (curl -fsSL …/bootstrap.sh) --uninstallWindowsPowerShell国内推荐 / recommended in Chinaiwr -useb https://gitee.com/eword/mirror-switcher/raw/main/bootstrap.ps1 | iex仅安装指定工具 / specific tools only ([scriptblock]::Create((iwr -useb https://gitee.com/eword/mirror-switcher/raw/main/bootstrap.ps1))) --toolsnpm,pip卸载 / uninstall ([scriptblock]::Create((iwr -useb https://gitee.com/eword/mirror-switcher/raw/main/bootstrap.ps1))) --uninstall远程安装策略 / Strategy优先 git clone可增量更新失败则下载 tarball / zip。国内环境自动选择 Gitee 源海外用 GitHub可设置环境变量 MS_SOURCEgitee|github|auto 强制选择。Prefers git clone (incremental), falls back to tarball/zip. Auto-picks Gitee in CN, GitHub abroad; override with MS_SOURCE.安装后让当前 shell 立即生效 / Make it effective in current shellsource ~/.zshrc # zshsource ~/.bashrc # bashsource ~/.config/fish/config.fish # fish或重开一个终端 / or open a new terminal方式 B从源码安装 / Option B: From sourcegit clone https://gitee.com/eword/mirror-switcher.gitcd mirror-switcher一键安装全部 20 个工具 自动 PATH / install all auto PATH./install.sh只装部分工具 / install only some./install.sh --toolsnpm,pip,yum卸载 / uninstall./install.sh --uninstall单个工具安装传统方式/ single tool (classic)cd switch-pip ./install-link.sh方式 C直接用 Python 运行 / Option C: Run with Python directly不想注册全局命令也行 / No global install neededpython3 switch-pip/switch-pip.py lspython3 switch-brew/switch-brew.py use tsinghuapython3 switch-npm/switch-npm.py testpython3 main.py # 交互式菜单 / interactive menupython3 main.py switch-go use goproxy.cn # 直接调度 / dispatch directly典型用法示例 / Examplesbrew 源操作语法和 nrm 一模一样/ brew (same syntax as nrm)switch-brew lsswitch-brew currentswitch-brew use tsinghuaswitch-brew use officialswitch-brew add mybrew https://my.internal/brewswitch-brew testpip 跨平台源 / cross-platform pipswitch-pip lsswitch-pip use aliyunswitch-pip backup # 备份 ~/.config/pip/pip.conf / back up pip.confswitch-pip restore # 还原 / restore多语言 / multi-language ecosystemsswitch-go use goproxy.cnswitch-cargo use rsproxyswitch-maven use aliyunswitch-docker use daocloudLinux 系统源需 root见下方安全说明/ Linux system sources (need root)switch-yum use aliyunswitch-apt use tsinghua五、架构设计 / Architecturemirror-switcher/├── main.py # 聚合入口交互菜单 直接调度├── common/ # 公共库一套契约所有工具共享│ ├── sources.py # Source 数据类│ ├── registry.py # SourceRegistryls/current/use/add/del/test/home/backup/restore│ ├── cli.py # 命令行解析与分发1:1 复刻 nrm│ ├── config.py # 用户自定义源持久化~/.mirror-switcher/│ ├── speedtest.py # 多线程并发测速│ ├── backup.py # 配置文件备份 / 还原│ ├── system.py # 跨平台系统识别、which│ ├── runner.py # 子进程执行、文件读写│ ├── browser.py # 打开主页│ └── logger.py # 彩色输出 双语辅助 bi()└── switch-/ # 每个工具一个目录薄实现预设 apply 逻辑├── switch-.py├── install-link.sh # macOS/Linux 一键软链└── install-link.ps1 # Windows PowerShell 注册设计要点把 nrm 的全部交互逻辑命令解析、测速、备份、自定义源存储、彩色输出下沉到 common/每个 switch-xxx 只需声明 预设源 如何读取/写入该工具的真实配置get_current / apply_source / config_files。这让新增一个工具通常只需要一个 ~80–150 行的文件。六、每个工具的内置镜像速查/ Built-in mirrors (cheat-sheet)镜像地址为编写时的常用值若上游调整可用 add 自行覆盖。所有工具均内置 official一键恢复官方源。URLs are common values at time of writing; override with add if upstream changes. Every tool ships official to restore the upstream registry in one step.switch-npm: official / npmmirror(淘宝) / ustc / huawei / tencentswitch-pip: official(PyPI) / tsinghua / aliyun / ustc / huawei / tencentswitch-conda: official / tsinghua / ustc / aliyun重写 ~/.condarcswitch-docker: official / daocloud / dockerproxy / ustc / 163 / baiduLinux 改 /etc/docker/daemon.jsonmacOS/Windows 改 Docker Desktop settings.jsonswitch-brew: official / tsinghua / ustc / aliyun写 HOMEBREW_* 环境变量并由 shell profile 加载switch-git: official / ghproxy / ghfast / kkgithub / gitclonegit config url..insteadOfswitch-yum: official / aliyun / tsinghua / ustc / 163按 centos/rocky/almalinux 自动选路径switch-apt: official / tsinghua / aliyun / ustc / 163自动区分 ubuntu / debian 家族switch-pacman: official / tsinghua / ustc / aliyun / 163置顶 Server 行switch-dnf: official / tsinghua / ustc / aliyun / 163switch-zypper: official / tsinghua / ustc / aliyun / sjtuswitch-maven: official / aliyun / huawei / tencent重写 ~/.m2/settings.xml 的 switch-gradle: official / aliyun / huawei / tencent写 ~/.gradle/init.gradleswitch-go: official / goproxy.cn / aliyun / goproxy.io / tencentgo env -w GOPROXY/GOSUMDBswitch-cargo: official / rsproxy / tsinghua / ustc / sjtug / aliyun写 ~/.cargo/config.tomlswitch-composer: official / aliyun / tencent / huaweicomposer config -g 或改 ~/.composer/config.jsonswitch-nuget: official / tsinghua / aliyun / huawei写 NuGet.Configswitch-pub: official / flutter-io.cn / tsinghua / ustcPUB_HOSTED_URL FLUTTER_STORAGE_BASE_URLswitch-helm: official / bitnami / aliyun / gitlab管理名为 switch-helm 的 repo七、跨平台与权限说明 / Cross-platform permissions零三方依赖仅使用 Python 3.7 标准库Windows / macOS / Linux 均可运行。Linux 系统源yum / apt / pacman / dnf / zypper与 Docker daemon.json 需要 root。工具会先尝试直接写入遇权限不足时自动写临时文件并通过 sudo cp 应用失败则打印精确命令由你手动执行。备份优先改动系统级配置前强烈建议先 switch-xxx backup。备份存放在 ~/.mirror-switcher/backups//时间戳/可用 switch-xxx restore 还原。macOS Homebrew / Flutter通过在 shell profile 中插入带标记的 source 行加载 mirror.sh多次 use 幂等不会污染 profile。七.5、全局 PATH 自动注入 / Auto PATH injectioninstall.sh / install-link.sh / bootstrap.sh以及 Windows 的 install-link.ps1 / bootstrap.ps1会自动把 ~/.local/binLinux/macOS或 %USERPROFILE%\binWindows幂等写入 rc 文件 / 注册表用 # mirror-switcher PATH / # mirror-switcher PATH 标记块包裹重复运行不会污染 rc 文件在结束时打印 source 命令让当前 shell 立即生效。支持的 rc 文件 / Supported rc filesLinux/macOS.zshrc、.bashrc、.bash_profile、.profile、.kshrc、.tcshrc、.cshrc、.config/fish/config.fish若以 root 运行额外写入 /etc/profile.d/mirror-switcher.sh系统级所有用户生效

相关新闻

ISTA3A/3B/3E 三大标准区别!一文分清包装测试怎么选

ISTA3A/3B/3E 三大标准区别!一文分清包装测试怎么选

做包装设计、物流检测的小伙伴常会头疼:同样是 ISTA 3 系列运输模拟测试,3A、3B、3E 长得很像,每次送检都分不清,选错标准不仅白做实验、浪费成本,测试结果还不具备参考价值。其实三者的适用货物、运输场景、整套测试流…

2026/10/10 14:50:53 阅读更多 →
华海健康|AI 智能健康分析仪,专业科技赋能精准健康筛查

华海健康|AI 智能健康分析仪,专业科技赋能精准健康筛查

全民健康需求逐步转向亚健康前置预防,传统人工望诊依靠医师经验判断,主观偏差大、数据无法留存、专业门槛高,难以满足线下门店标准化运营需求。华海健康自研 AI 智能健康分析仪,融合专业中医理论与人工智能技术,依托完…

2026/10/10 13:28:12 阅读更多 →
MacBook Neo评测:入门级苹果笔记本的性能与体验

MacBook Neo评测:入门级苹果笔记本的性能与体验

1. MacBook Neo产品定位解析 作为苹果2026年推出的全新入门级产品线,MacBook Neo精准填补了4500-6000元价格区间的市场空白。这款搭载A18 Pro芯片的13.3英寸笔记本,通过精简非核心配置实现了惊人的4599元起售价,比同尺寸MacBook Air便宜近40%…

2026/10/10 14:12:31 阅读更多 →

最新新闻

振动分析:预测性维护

振动分析:预测性维护

多年前在一家水泥厂的巡检通道上,老师傅掏出一根螺丝刀,把刀尖顶在风机轴承座外壳上,另一头贴着耳朵听。他说这个声音比上周"毛"了一点。三个月后那台风机换了轴承。这套判断很准,但只长在少数人身上——人一退休&#…

2026/10/10 14:50:55 阅读更多 →
原子技能建模:用Markdown+Git构建可验证的个人能力操作系统

原子技能建模:用Markdown+Git构建可验证的个人能力操作系统

1. 项目概述:当“skills”不再只是简历上的单词,而成为可验证、可组合、可进化的个人能力操作系统最近在多个技术社区、职业发展论坛和高校创新工坊里,“skills”这个词高频出现,但它的语义正在发生本质迁移——它早已不是求职简历…

2026/10/10 14:50:55 阅读更多 →
PyTorch实战:用CNN训练MNIST手写数字识别与模型保存

PyTorch实战:用CNN训练MNIST手写数字识别与模型保存

简介:MNIST手写数字识别是深度学习的经典入门场景。这一压缩包面向正在学习神经网络与TensorFlow的开发者,完整展示了如何用卷积神经网络(CNN)训练手写数字识别模型,涵盖数据预处理、模型搭建、训练评估与保存调用等环…

2026/10/10 14:50:55 阅读更多 →
两节点系统潮流计算:Gauss-Seidel迭代法MATLAB实现详解

两节点系统潮流计算:Gauss-Seidel迭代法MATLAB实现详解

做电力系统题目绕不开潮流计算。前两天整理之前写的两节点系统Gauss-Seidel法MATLAB程序,发现这个例子虽然模型简单,但它把潮流计算里最关键的节点导纳矩阵、PQ节点电压迭代、复功率符号约定这些东西全串起来了——很适合作为入门的第一块拼图。这篇文章…

2026/10/10 14:50:55 阅读更多 →
深入解析 /proc/vmallocinfo:定位内核 vmalloc 内存泄漏与碎片

深入解析 /proc/vmallocinfo:定位内核 vmalloc 内存泄漏与碎片

1. 从一次内存异常排查说起:为什么我会盯上 /proc/vmallocinfo第一次真正把/proc/vmallocinfo当回事,是因为一台跑了半年多的服务器出现了诡异现象:free -m显示物理内存还剩不少,但内核模块加载开始随机失败,dmesg里偶…

2026/10/10 14:50:55 阅读更多 →
Claude Code实战案例:10个真实开发场景手把手教学(TaoToken统一Key接入版)

Claude Code实战案例:10个真实开发场景手把手教学(TaoToken统一Key接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 14:49:54 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →