# LinuxMirrors图形化工具 **Repository Path**: deepin20/LinuxMirrors ## Basic Information - **Project Name**: LinuxMirrors图形化工具 - **Description**: LinuxMirrors图形化工具:GNU/Linux 更换系统软件源脚本 · Docker 安装与换源脚本 · PyQt5 图形化换源工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-26 - **Last Updated**: 2026-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
*** ## 项目组成 | 组成 | 说明 | 运行方式 | |---|---|---| | **Shell 脚本**(上游核心) | `ChangeMirrors.sh` 系统换源、`DockerInstallation.sh` Docker 安装与换源 | 终端交互 | | **图形化工具**(本仓库新增) | `linux_mirrors_gui/` 包,纯 Python 实现的换源内核 + PyQt5 界面 | 桌面窗口 | | **文档站点** | `docs/` + mkdocs,官网 [linuxmirrors.cn](https://linuxmirrors.cn) | 静态站点 | ## 快速开始 ### Shell 脚本 ```bash # GNU/Linux 更换系统软件源 bash <(curl -sSL https://linuxmirrors.cn/main.sh) # Docker 安装与换源 bash <(curl -sSL https://linuxmirrors.cn/docker.sh) # Docker 更换镜像加速器 bash <(curl -sSL https://linuxmirrors.cn/docker.sh) --only-registry ``` > 更多使用方法详见官方网站 [**linuxmirrors.cn**](https://linuxmirrors.cn/use/),备用域名 [**edgeone.linuxmirrors.cn**](https://edgeone.linuxmirrors.cn) ### 图形化工具 **方式一:deb 包安装(Deepin / UOS / Debian 系推荐)** ```bash ./build-deb.sh # 构建 sudo apt install ./dist/linux-mirrors-gui_*_all.deb ``` **方式二:pip 安装** ```bash pip install . # 或 pip install linux-mirrors-gui(发布后) linux-mirrors-gui # 启动 ``` **方式三:源码直接运行** ```bash python3 linux-mirrors-gui.py # 或 python3 -m linux_mirrors_gui ``` 依赖:`python3 (>=3.8)`、`PyQt5 (>=5.15)`、`curl`;提权使用 `pkexec`(推荐)或 `sudo`。 ## 图形化工具功能 ### 换源能力 - **系统换源**:Debian / Ubuntu / Kali / Deepin / Mint / Raspbian / RedHat 系(RHEL、CentOS、Rocky、Alma、Fedora、Oracle) / openEuler / OpenCloudOS / Anolis / openKylin / Arch / Alpine / openSUSE - **DEB822 格式**自动识别与适配(Debian 13+ / Ubuntu 24+) - **Docker**:Docker CE 源 + Registry 镜像加速器,复用上游 shell 脚本 - 内置 **中国大陆默认源 / 教育网源** 两套镜像列表,支持 https/http 协议切换 ### 测速与智能推荐 - **512KB 下载测速**,一键选最快镜像 - **结果缓存 10 分钟**:重复测速不重复请求,缓存命中的结果直接展示 - **自定义测速地址**:每个镜像可单独指定测速 URL(表格内直接编辑,自动持久化) - **失败历史追踪**:连续失败 ≥3 次的镜像自动标记「不推荐」并跳过测速,可强制重测,成功后自动恢复 ### 备份与回滚 - 换源前**自动备份**(可关闭),手动备份随时可用 - **备份保留策略**:自动清理超过 N 天的过期备份(0 = 永久保留) - **回滚前差异预览**:unified diff 展示当前配置 → 备份内容,确认后才执行 - **异步回滚**:QProcess 后台执行,全程界面可操作、日志实时滚动 - 回滚前自动保存当前状态到安全目录,误操作可再恢复 ### 界面 - Deepin 风格深色主题 + 完整浅色主题,**跟随系统主题自动切换** - 按钮接入 bloom / freedesktop 图标主题,多级回退兼容非 Deepin 发行版 - 换源后可选自动刷新软件索引 ## 项目结构 ``` LinuxMirrors/ ├── linux-mirrors-gui.py # GUI 启动器(入口) ├── linux_mirrors_gui/ # GUI 包 │ ├── config.py # 路径常量与镜像站点列表 │ ├── system_info.py # 系统检测(发行版/架构/源分支) │ ├── core.py # 换源核心(按发行版生成源配置) │ ├── privileges.py # pkexec/sudo 提权辅助 │ ├── backup.py # 备份管理(差异预览/保留策略) │ ├── speedtest.py # 测速(缓存/自定义地址/失败标记) │ ├── settings.py # 持久化设置(~/.config/linux-mirrors-gui/) │ ├── theme.py # 深/浅 QSS、主题检测、图标助手 │ ├── main_window.py # 主窗口 │ └── __main__.py # python -m 入口 ├── ChangeMirrors.sh # 系统换源脚本(上游) ├── ChangeMirrorsLite.sh # 精简版换源脚本(上游) ├── DockerInstallation.sh # Docker 安装与换源脚本(上游) ├── DockerInstallationLite.sh # Docker 精简版脚本(上游) ├── pyproject.toml # Python 包元数据(版本单一来源) ├── build-deb.sh # deb 构建脚本(dpkg-deb,零外部依赖) ├── linux-mirrors-gui.desktop # 桌面启动器 └── assets/linux-mirrors-gui.svg # 应用图标 ``` ## 开发与测试 ```bash # 语法检查 python3 -m py_compile linux_mirrors_gui/*.py # 无头环境冒烟测试(离屏实例化主窗口) QT_QPA_PLATFORM=offscreen python3 linux-mirrors-gui.py # 构建 deb 包(版本号取自 pyproject.toml) ./build-deb.sh ``` 设置与运行数据位置: | 路径 | 内容 | |---|---| | `~/.config/linux-mirrors-gui/settings.json` | 测速缓存、自定义测速地址、失败记录、备份保留天数 | | `~/.local/share/linux-mirrors-gui/backups/` | 配置备份 | ## 支持的操作系统