From 819e0cd3da795a88e082b6bfc1574fa115649d4d Mon Sep 17 00:00:00 2001
From: SuperManito <68613938+SuperManito@users.noreply.github.com>
Date: Sat, 6 May 2023 16:44:27 +0800
Subject: [PATCH] bug fix
---
ChangeMirrors.sh | 43 +++++++++++++++++++++++++++----------
README.md | 10 +++------
docs/index.md | 6 +-----
docs/main.sh | 43 +++++++++++++++++++++++++++----------
docs/use/command-options.md | 16 +++++++-------
5 files changed, 76 insertions(+), 42 deletions(-)
diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh
index 0fcbbdc..910388d 100644
--- a/ChangeMirrors.sh
+++ b/ChangeMirrors.sh
@@ -284,6 +284,27 @@ function EnvJudgment() {
;;
esac
;;
+ "${SYSTEM_CENTOS}")
+ if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
+ SOURCE_BRANCH="centos"
+ else
+ SOURCE_BRANCH="centos-altarch"
+ fi
+ ;;
+ "${SYSTEM_CENTOS_STREAM}")
+ case ${SYSTEM_VERSION_NUMBER:0:1} in
+ 8)
+ if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
+ SOURCE_BRANCH="centos"
+ else
+ SOURCE_BRANCH="centos-altarch"
+ fi
+ ;;
+ *)
+ SOURCE_BRANCH="centos-stream"
+ ;;
+ esac
+ ;;
"${SYSTEM_UBUNTU}")
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
SOURCE_BRANCH="ubuntu"
@@ -1032,8 +1053,6 @@ function RedHatMirrors() {
sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
;;
esac
-
- rm -rf $Dir_RedHatRepos/epel*rpmnew
}
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
@@ -1131,17 +1150,19 @@ function RedHatMirrors() {
"${SYSTEM_CENTOS}")
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
- ## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
- # 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
- if [ ${SYSTEM_VERSION_NUMBER:0:1} -eq "8" ]; then
- sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
- sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
- sed -i "s/\$releasever/8.5.2111/g" CentOS-*
- fi
-
# 更换 WEB 协议(HTTP/HTTPS)
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
# 更换软件源
+ case ${SYSTEM_VERSION_NUMBER:0:1} in
+ 8)
+ sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
+ sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
+ sed -i "s/\$releasever/8.5.2111/g" CentOS-*
+ ;;
+ 7)
+ sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
+ ;;
+ esac
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
;;
"${SYSTEM_CENTOS_STREAM}")
@@ -1168,7 +1189,7 @@ function RedHatMirrors() {
# 更换 WEB 协议(HTTP/HTTPS)
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-Stream-*
# 更换软件源
- sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-Stream-*
+ sed -i "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" CentOS-Stream-*
;;
esac
;;
diff --git a/README.md b/README.md
index a2b0c67..4a294a0 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
14.04 ~ 23 |
- Kali Linux |
+ Kali Linux |
2.0 ~ 2023 |
@@ -43,14 +43,10 @@
CentOS |
- 7.0 ~ 8.5 |
+ 7.0 ~ 8.5 / Stream 8 ~ 9 |
- CentOS Stream |
- 8 ~ 9 |
-
-
- Rocky Linux |
+ Rocky Linux |
8.0 ~ 9 |
diff --git a/docs/index.md b/docs/index.md
index 14a8ba2..c86716b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -34,11 +34,7 @@ GNU/Linux 一键更换系统软件源脚本 · 让换源更简单
CentOS |
- 7.0 ~ 8.5 |
-
-
- CentOS Stream |
- 8 ~ 9 |
+ 7.0 ~ 8.5 / Stream 8 ~ 9 |
Rocky Linux |
diff --git a/docs/main.sh b/docs/main.sh
index 0fcbbdc..910388d 100644
--- a/docs/main.sh
+++ b/docs/main.sh
@@ -284,6 +284,27 @@ function EnvJudgment() {
;;
esac
;;
+ "${SYSTEM_CENTOS}")
+ if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
+ SOURCE_BRANCH="centos"
+ else
+ SOURCE_BRANCH="centos-altarch"
+ fi
+ ;;
+ "${SYSTEM_CENTOS_STREAM}")
+ case ${SYSTEM_VERSION_NUMBER:0:1} in
+ 8)
+ if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
+ SOURCE_BRANCH="centos"
+ else
+ SOURCE_BRANCH="centos-altarch"
+ fi
+ ;;
+ *)
+ SOURCE_BRANCH="centos-stream"
+ ;;
+ esac
+ ;;
"${SYSTEM_UBUNTU}")
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
SOURCE_BRANCH="ubuntu"
@@ -1032,8 +1053,6 @@ function RedHatMirrors() {
sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
;;
esac
-
- rm -rf $Dir_RedHatRepos/epel*rpmnew
}
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
@@ -1131,17 +1150,19 @@ function RedHatMirrors() {
"${SYSTEM_CENTOS}")
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
- ## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
- # 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
- if [ ${SYSTEM_VERSION_NUMBER:0:1} -eq "8" ]; then
- sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
- sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
- sed -i "s/\$releasever/8.5.2111/g" CentOS-*
- fi
-
# 更换 WEB 协议(HTTP/HTTPS)
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
# 更换软件源
+ case ${SYSTEM_VERSION_NUMBER:0:1} in
+ 8)
+ sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
+ sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
+ sed -i "s/\$releasever/8.5.2111/g" CentOS-*
+ ;;
+ 7)
+ sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
+ ;;
+ esac
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
;;
"${SYSTEM_CENTOS_STREAM}")
@@ -1168,7 +1189,7 @@ function RedHatMirrors() {
# 更换 WEB 协议(HTTP/HTTPS)
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-Stream-*
# 更换软件源
- sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-Stream-*
+ sed -i "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" CentOS-Stream-*
;;
esac
;;
diff --git a/docs/use/command-options.md b/docs/use/command-options.md
index 67dd9c2..b761fe7 100644
--- a/docs/use/command-options.md
+++ b/docs/use/command-options.md
@@ -27,7 +27,7 @@ bash ChangeMirrors.sh --source mirrors.ustc.edu.cn
使用场景:目标软件源有对应系统镜像但是不符合本脚本关于软件源分支设置的默认规则
-本脚本为了适配大环境不会针对某一镜像站独特的镜像分支名称而单独定制,最开始是为了更换国内软件源而设计适配的,默认使用的分支名称如下
+本脚本为了适配大的环境不会针对某一镜像站独特的镜像分支名称而单独定制,最开始是为了更换国内软件源而设计适配的,默认使用的分支名称如下
@@ -48,16 +48,16 @@ bash ChangeMirrors.sh --source mirrors.ustc.edu.cn
CentOS |
- centos |
-
-
- CentOS Stream |
- centos-stream |
+ centos/centos-stream/centos-altarch |
Rocky Linux |
rocky |
+
+ AlmaLinux |
+ almalinux |
+
Fedora |
fedora |
@@ -79,7 +79,7 @@ bash ChangeMirrors.sh --source mirrors.ustc.edu.cn
请看下面的例子
``` { .bash .no-copy title="使用阿里云的 Rocky Linux 软件源" }
-bash ChangeMirrors.sh \
+bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
--source mirrors.aliyun.com \
--branch rockylinux
```
@@ -91,7 +91,7 @@ bash ChangeMirrors.sh \
不通过交互完成换源操作,需要使用大量命令选项来实现,建议熟悉后再使用
``` { .bash .no-copy title="参考命令" }
-bash ChangeMirrors.sh \
+bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
--source mirror.example.com \
--web-protocol http \
--intranet false \