GNU/Linux 更换系统软件源脚本

Docker 安装脚本 · 一键脚本使换源更简单

bash <(curl -sSL https://0e.pw/main.sh)
bash <(curl -sSL https://0e.pw/docker.sh)

轻松使用

只需要一行命令就能直接运行,无需安装任何依赖。文档提供各种场景的解决方案,Linux 初学者也能轻松上手。

多元软件源适配

深入考察国内镜像站的系统适配情况,测试下载速度与IPv6兼容性。提供全网搜集的国内教育网镜像站和海外镜像站。

零技术门槛

无需技术背景,文档提供全面的知识储备和操作指引。包含常见问题解决方法和高级用法示例。

广泛的系统支持

适配众多操作系统,精准识别系统类型及版本。不支持的系统会有明确提示并无操作退出。

高度可定制

遵循正式应用程序规范设计,代码结构清晰易修改。支持克隆后根据需求自行定制。

开源协议

采用 MIT 开源协议,代码完全免费开放。传播时请在显著位置标注来源和作者。

支持的操作系统

操作系统适配版本
Debian 8 ~ 13
Ubuntu 14 ~ 24
Kali Linux all
Linux Mint 19 ~ 22 / LMDE 6
Deepin(深度) all
Zorin OS all
Armbian all
Proxmox VE all
Raspberry Pi OS all
Red Hat Enterprise Linux 7 ~ 9
Fedora 30 ~ 41
CentOS 7 ~ 8 / Stream 8 ~ 10
Rocky Linux 8 ~ 9
AlmaLinux 8 ~ 9
openEuler(开源欧拉) 21 ~ 24
OpenCloudOS(鸥栖) 8.6 ~ 9 / Stream 23
openKylin(开放麒麟) all
Anolis OS(龙蜥) 8 / 23
openSUSE Leep 15 / Tumbleweed
Arch Linux all
Alpine Linux v3 / edge
Gentoo all
NixOS 19 ~ 24

使用方法

一键执行命令

# 中国大陆 bash <(curl -sSL https://0e.pw/main.sh)
# 境外及海外地区 bash <(curl -sSL https://0e.pw/main.sh) --abroad
# 中国大陆教育网 bash <(curl -sSL https://0e.pw/main.sh) --edu

常见问题

关于报错 Command not found

此报错是因为系统没有安装 curl 软件包,下面是安装命令:

# Debian系/openKylin安装 apt-get install -y curl

其他系统安装方法

# RedHat系/openEuler/OpenCloudOS/Anolis OS安装 yum install -y curl
# openSUSE安装 zypper install -y curl
# Arch Linux安装 pacman -S curl
# Alpine Linux安装 apk --no-cache add -f curl bash ncurses
# Gentoo安装 emerge --ask curl
# NixOS安装 nix-env -iA nixos.curl

高级用法

名称 含义 选项值
--abroad 使用境外以及海外软件源
--edu 使用中国大陆教育网软件源
--source 指定软件源地址(域名或IP) 地址
--source-epel 指定 EPEL 附加软件包仓库的软件源地址(域名或IP) 地址
--source-security 指定 Debian 系统 security 仓库的软件源地址(域名或IP) 地址
--source-vault 指定 CentOS / AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) 地址
--source-portage 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) 地址
--source-base-system 指定 Linux Mint / Raspberry Pi OS 底层系统的软件源地址(域名或IP) 地址
--branch 指定软件源仓库(路径) 仓库名
--branch-epel 指定 EPEL 附加软件包仓库的软件源仓库(路径) 仓库名
--branch-security 指定 Debian 系统 security 仓库的软件源仓库(路径) 仓库名
--branch-vault 指定 CentOS / AlmaLinux 系统 vault 仓库的软件源仓库(路径) 仓库名
--branch-portage 指定 Gentoo 系统 portage 仓库的软件源仓库(路径) 仓库名
--branch-base-system 指定 Linux Mint / Raspberry Pi OS 底层系统的软件源仓库(路径) 仓库名
--codename 指定 Debian 系 / openKylin 操作系统的版本代号 代号名称
--protocol 指定 WEB 协议 httphttps
--use-intranet-source 是否优先使用内网软件源地址 truefalse
--use-official-source 是否使用目标操作系统的官方软件源 truefalse
--install-epel 是否安装 EPEL 附加软件包 truefalse
--backup 是否备份原有软件源 truefalse
--upgrade-software 是否更新软件包 truefalse
--clean-cache 是否清理下载缓存 truefalse
--clean-screen 是否在运行前清除屏幕上的所有内容 truefalse
--print-diff 是否打印源文件修改前后差异 truefalse
--only-epel 仅更换 EPEL 软件源模式
--ignore-backup-tips 忽略覆盖备份提示(即不覆盖备份)
--help 查看帮助菜单

使用示例:

bash <(curl -sSL https://0e.pw/main.sh) --source mirror.example.com

定制脚本

变量名 含义 值类型
SOURCE 指定软件源地址(域名或IP) 地址
SOURCE_EPEL 指定 EPEL 附加软件包仓库的软件源地址(域名或IP) 地址
SOURCE_SECURITY 指定 Debian 系统 security 仓库的软件源地址(域名或IP) 地址
SOURCE_VAULT 指定 CentOS / AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) 地址
SOURCE_PORTAGE 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) 地址
SOURCE_BASE_SYSTEM 指定 Linux Mint / Raspberry Pi OS 底层系统的软件源地址(域名或IP) 地址
SOURCE_BRANCH 指定软件源仓库(路径) 仓库名
SOURCE_EPEL_BRANCH 指定 EPEL 附加软件包仓库的软件源仓库(路径) 仓库名
SOURCE_SECURITY_BRANCH 指定 Debian 系统 security 仓库的软件源仓库(路径) 仓库名
SOURCE_VAULT_BRANCH 指定 CentOS / AlmaLinux 系统 vault 仓库的软件源仓库(路径) 仓库名
SOURCE_PORTAGE_BRANCH 指定 Gentoo 系统 portage 仓库的软件源仓库(路径) 仓库名
SOURCE_BASE_SYSTEM_BRANCH 指定 Linux Mint / Raspberry Pi OS 底层系统的软件源仓库(路径) 仓库名
DEBIAN_CODENAME 指定 Debian 系 / openKylin 操作系统的版本代号 代号名称
USE_OFFICIAL_SOURCE 是否使用目标操作系统的官方软件源 truefalse
USE_INTRANET_SOURCE 是否优先使用内网软件源地址 truefalse
WEB_PROTOCOL 指定 WEB 协议 httphttps
INSTALL_EPEL 是否安装 EPEL 附加软件包 truefalse
ONLY_EPEL 仅更换 EPEL 软件源模式 truefalse
BACKUP 是否备份原有软件源 truefalse
IGNORE_BACKUP_TIPS 忽略覆盖备份提示(即不覆盖备份) truefalse
UPGRADE_SOFTWARE 是否更新软件包 truefalse
CLEAN_CACHE 是否清理下载缓存 truefalse
CLEAN_SCREEN 是否在运行前清除屏幕上的所有内容 truefalse
PRINT_DIFF 是否打印源文件修改前后差异 truefalse

使用示例:

部分变量存在默认值,未涉及的变量无需声明为空值(空字符串),另外如果对应功能配置不存在那么就可能会出现交互