mirror of
https://gitee.com/SuperManito/LinuxMirrors
synced 2025-11-12 12:20:28 +08:00
新增部分命令参数 & 一些优化
This commit is contained in:
460
ChangeMirrors.sh
460
ChangeMirrors.sh
@@ -175,18 +175,65 @@ function StartTitle() {
|
|||||||
echo -e ' 欢迎使用 GNU/Linux 一键更换软件源脚本'
|
echo -e ' 欢迎使用 GNU/Linux 一键更换软件源脚本'
|
||||||
}
|
}
|
||||||
|
|
||||||
function AuthorSignature() {
|
## 报错退出
|
||||||
echo -e "[\033[1;34m官网\033[0m] ${WEBSITE}\n"
|
function Output_Error() {
|
||||||
|
[ "$1" ] && echo -e "\n$ERROR $1\n"
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
## 权限判定
|
## 权限判定
|
||||||
function PermissionJudgment() {
|
function PermissionJudgment() {
|
||||||
if [ $UID -ne 0 ]; then
|
if [ $UID -ne 0 ]; then
|
||||||
echo -e "\n$ERROR 权限不足,请使用 Root 用户运行本脚本\n"
|
Output_Error "权限不足,请使用 Root 用户运行本脚本"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## 命令选项兼容性判断
|
||||||
|
function CheckCommandOptions() {
|
||||||
|
case "${SYSTEM_FACTIONS}" in
|
||||||
|
"${SYSTEM_DEBIAN}")
|
||||||
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_DEBIAN}" ]]; then
|
||||||
|
if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_REDHAT}")
|
||||||
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_CENTOS}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
||||||
|
if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_FEDORA}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"${SYSTEM_OPENEULER}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_OPENSUSE}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_ARCH}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
## 系统判定变量
|
## 系统判定变量
|
||||||
function EnvJudgment() {
|
function EnvJudgment() {
|
||||||
## 定义系统名称
|
## 定义系统名称
|
||||||
@@ -209,20 +256,15 @@ function EnvJudgment() {
|
|||||||
elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
|
elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
|
||||||
SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
|
SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
|
||||||
else
|
else
|
||||||
echo -e "\n$ERROR 无法判断当前运行环境,请先确认本脚本是否已经适配当前操作系统\n"
|
Output_Error "无法判断当前运行环境,请先确认本脚本是否已经适配当前操作系统"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
## 开始使用
|
|
||||||
StartTitle
|
|
||||||
## 判定系统名称、版本、版本号
|
## 判定系统名称、版本、版本号
|
||||||
case "${SYSTEM_FACTIONS}" in
|
case "${SYSTEM_FACTIONS}" in
|
||||||
"${SYSTEM_DEBIAN}")
|
"${SYSTEM_DEBIAN}")
|
||||||
if [ ! -x /usr/bin/lsb_release ]; then
|
if [ ! -x /usr/bin/lsb_release ]; then
|
||||||
apt-get install -y lsb-release
|
apt-get install -y lsb-release
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo -e "\n$ERROR lsb-release 软件包安装失败"
|
Output_Error "lsb-release 软件包安装失败\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!"
|
||||||
echo -e "\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!\n"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
SYSTEM_JUDGMENT="$(lsb_release -is)"
|
SYSTEM_JUDGMENT="$(lsb_release -is)"
|
||||||
@@ -272,7 +314,7 @@ function EnvJudgment() {
|
|||||||
if [[ -z "${SOURCE_BRANCH}" ]]; then
|
if [[ -z "${SOURCE_BRANCH}" ]]; then
|
||||||
## 默认
|
## 默认
|
||||||
SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")"
|
SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")"
|
||||||
## 定制
|
## 处理特殊
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
@@ -285,7 +327,7 @@ function EnvJudgment() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_CENTOS}")
|
"${SYSTEM_CENTOS}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
|
||||||
SOURCE_BRANCH="centos"
|
SOURCE_BRANCH="centos"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="centos-altarch"
|
SOURCE_BRANCH="centos-altarch"
|
||||||
@@ -294,7 +336,7 @@ function EnvJudgment() {
|
|||||||
"${SYSTEM_CENTOS_STREAM}")
|
"${SYSTEM_CENTOS_STREAM}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
|
||||||
SOURCE_BRANCH="centos"
|
SOURCE_BRANCH="centos"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="centos-altarch"
|
SOURCE_BRANCH="centos-altarch"
|
||||||
@@ -306,14 +348,14 @@ function EnvJudgment() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_UBUNTU}")
|
"${SYSTEM_UBUNTU}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then
|
||||||
SOURCE_BRANCH="ubuntu"
|
SOURCE_BRANCH="ubuntu"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="ubuntu-ports"
|
SOURCE_BRANCH="ubuntu-ports"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ARCH}")
|
"${SYSTEM_ARCH}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then
|
||||||
SOURCE_BRANCH="archlinux"
|
SOURCE_BRANCH="archlinux"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="archlinuxarm"
|
SOURCE_BRANCH="archlinuxarm"
|
||||||
@@ -330,6 +372,10 @@ function EnvJudgment() {
|
|||||||
SYNC_TXT="同步"
|
SYNC_TXT="同步"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
## 命令选项兼容性判断
|
||||||
|
CheckCommandOptions
|
||||||
|
## 开始使用
|
||||||
|
StartTitle
|
||||||
}
|
}
|
||||||
|
|
||||||
## 选择软件源
|
## 选择软件源
|
||||||
@@ -398,9 +444,7 @@ function ChooseMirrors() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [[ ${USE_INTRANET_SOURCE} == "true" ]]; then
|
if [[ -z "${USE_INTRANET_SOURCE}" ]]; then
|
||||||
SOURCE="${intranet_source}"
|
|
||||||
elif [[ -z "${USE_INTRANET_SOURCE}" ]]; then
|
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE}" INPUT
|
read -p "${CHOICE}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -414,12 +458,14 @@ function ChooseMirrors() {
|
|||||||
echo -e "\n$WARN 输入错误,默认不使用内网地址!"
|
echo -e "\n$WARN 输入错误,默认不使用内网地址!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ "${USE_INTRANET_SOURCE}" == "true" ]]; then
|
||||||
|
SOURCE="${intranet_source}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function Title() {
|
function Title() {
|
||||||
local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
|
local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
|
||||||
local arch="${DEVICE_ARCH}"
|
local arch=""${DEVICE_ARCH}""
|
||||||
local date="$(date "+%Y-%m-%d %H:%M:%S")"
|
local date="$(date "+%Y-%m-%d %H:%M:%S")"
|
||||||
local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
|
local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
|
||||||
|
|
||||||
@@ -469,7 +515,7 @@ function ChooseMirrors() {
|
|||||||
## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
|
## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
|
||||||
function ChooseWebProtocol() {
|
function ChooseWebProtocol() {
|
||||||
if [[ -z "${WEB_PROTOCOL}" ]]; then
|
if [[ -z "${WEB_PROTOCOL}" ]]; then
|
||||||
if [[ ${ONLY_HTTP} == "True" ]]; then
|
if [[ "${ONLY_HTTP}" == "True" ]]; then
|
||||||
WEB_PROTOCOL="http"
|
WEB_PROTOCOL="http"
|
||||||
else
|
else
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
|
||||||
@@ -494,9 +540,7 @@ function ChooseWebProtocol() {
|
|||||||
|
|
||||||
# 适用于 RHEL/CentOS(Stream)/RockyLinux 的 EPEL 附加软件包(安装/换源)
|
# 适用于 RHEL/CentOS(Stream)/RockyLinux 的 EPEL 附加软件包(安装/换源)
|
||||||
function ChooseInstallEPEL() {
|
function ChooseInstallEPEL() {
|
||||||
if [[ -z "${INSTALL_EPEL}" ]]; then
|
function Check() {
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
|
||||||
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
|
||||||
## 判断是否已安装 EPEL 软件包
|
## 判断是否已安装 EPEL 软件包
|
||||||
rpm -qa | grep epel-release -q
|
rpm -qa | grep epel-release -q
|
||||||
VERIFICATION_EPEL=$?
|
VERIFICATION_EPEL=$?
|
||||||
@@ -506,7 +550,13 @@ function ChooseInstallEPEL() {
|
|||||||
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件
|
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件
|
||||||
[ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep epel -q
|
[ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep epel -q
|
||||||
VERIFICATION_EPELBACKUPFILES=$?
|
VERIFICATION_EPELBACKUPFILES=$?
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${SYSTEM_FACTIONS}" == "${SYSTEM_REDHAT}" ]]; then
|
||||||
|
if [[ -z "${INSTALL_EPEL}" ]]; then
|
||||||
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
||||||
|
Check
|
||||||
if [ ${VERIFICATION_EPEL} -eq 0 ]; then
|
if [ ${VERIFICATION_EPEL} -eq 0 ]; then
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
|
||||||
else
|
else
|
||||||
@@ -528,6 +578,9 @@ function ChooseInstallEPEL() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ "${INSTALL_EPEL}" == "true" ]]; then
|
||||||
|
Check
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,8 +593,8 @@ function CloseFirewall() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ -x /usr/bin/systemctl ]; then
|
if [ -x /usr/bin/systemctl ]; then
|
||||||
if [[ $(systemctl is-active firewalld) == "active" ]]; then
|
if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
|
||||||
if [[ ${CLOSE_FIREWALL} == "true" ]]; then
|
if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
|
||||||
Main
|
Main
|
||||||
elif [[ -z "${CLOSE_FIREWALL}" ]]; then
|
elif [[ -z "${CLOSE_FIREWALL}" ]]; then
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
||||||
@@ -563,7 +616,7 @@ function CloseFirewall() {
|
|||||||
|
|
||||||
## 备份原有软件源
|
## 备份原有软件源
|
||||||
function BackupOriginMirrors() {
|
function BackupOriginMirrors() {
|
||||||
if [[ $BACKUP == "true" || -z "${BACKUP}" ]]; then
|
if [[ "${BACKUP}" == "true" ]]; then
|
||||||
local VERIFICATION_FILES=1
|
local VERIFICATION_FILES=1
|
||||||
local VERIFICATION_BACKUPFILES=1
|
local VERIFICATION_BACKUPFILES=1
|
||||||
|
|
||||||
@@ -607,7 +660,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/apt/sources.list
|
## /etc/apt/sources.list
|
||||||
if [ -s $File_DebianSourceList ]; then
|
if [ -s $File_DebianSourceList ]; then
|
||||||
if [ -s $File_DebianSourceListBackup ]; then
|
if [ -s $File_DebianSourceListBackup ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP1}" INPUT
|
read -p "${CHOICE_BACKUP1}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -636,7 +689,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/apt/sources.list.d
|
## /etc/apt/sources.list.d
|
||||||
if [ -d $Dir_DebianExtendSource ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ -d $Dir_DebianExtendSource ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_DebianExtendSourceBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_DebianExtendSourceBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP2=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 扩展源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP2=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 扩展源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP2}" INPUT
|
read -p "${CHOICE_BACKUP2}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -664,7 +717,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/yum.repos.d
|
## /etc/yum.repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_RedHatReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_RedHatReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP3}" INPUT
|
read -p "${CHOICE_BACKUP3}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -694,7 +747,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/yum.repos.d
|
## /etc/yum.repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_openEulerReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_openEulerReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP4}" INPUT
|
read -p "${CHOICE_BACKUP4}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -724,7 +777,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/zypp/repos.d
|
## /etc/zypp/repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_openSUSEReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_openSUSEReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP4}" INPUT
|
read -p "${CHOICE_BACKUP4}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -754,7 +807,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/pacman.d/mirrorlist
|
## /etc/pacman.d/mirrorlist
|
||||||
if [ -s $File_ArchMirrorList ]; then
|
if [ -s $File_ArchMirrorList ]; then
|
||||||
if [ -s $File_ArchMirrorListBackup ]; then
|
if [ -s $File_ArchMirrorListBackup ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP5=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的软件源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP5=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的软件源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP5}" INPUT
|
read -p "${CHOICE_BACKUP5}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -793,15 +846,20 @@ function RemoveOriginMirrors() {
|
|||||||
"${SYSTEM_REDHAT}")
|
"${SYSTEM_REDHAT}")
|
||||||
if [ -d $Dir_RedHatRepos ]; then
|
if [ -d $Dir_RedHatRepos ]; then
|
||||||
# Fedora Linux 特殊,只删除以 fedora 开头的文件
|
# Fedora Linux 特殊,只删除以 fedora 开头的文件
|
||||||
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]]; then
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_FEDORA}")
|
||||||
rm -rf $Dir_RedHatRepos/fedora*
|
rm -rf $Dir_RedHatRepos/fedora*
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
|
if [[ "${ONLY_EPEL}" == "false" ]]; then
|
||||||
if [ -f $Dir_RedHatRepos/epel.repo ]; then
|
if [ -f $Dir_RedHatRepos/epel.repo ]; then
|
||||||
ls $Dir_RedHatRepos/ | egrep -v epel | xargs rm -rf
|
ls $Dir_RedHatRepos/ | egrep -v epel | xargs rm -rf
|
||||||
else
|
else
|
||||||
rm -rf $Dir_RedHatRepos/*
|
rm -rf $Dir_RedHatRepos/*
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_OPENEULER}")
|
"${SYSTEM_OPENEULER}")
|
||||||
@@ -902,7 +960,7 @@ function UpdateSoftware() {
|
|||||||
[Yy] | [Yy][Ee][Ss]) ;;
|
[Yy] | [Yy][Ee][Ss]) ;;
|
||||||
[Nn] | [Nn][Oo])
|
[Nn] | [Nn][Oo])
|
||||||
Main
|
Main
|
||||||
if [[ ${CLEAN_CACHE} == "true" ]]; then
|
if [[ "${CLEAN_CACHE}" == "true" ]]; then
|
||||||
CleanCache
|
CleanCache
|
||||||
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
||||||
CleanCacheInteraction
|
CleanCacheInteraction
|
||||||
@@ -931,9 +989,9 @@ function UpdateSoftware() {
|
|||||||
case "${SYSTEM_FACTIONS}" in
|
case "${SYSTEM_FACTIONS}" in
|
||||||
"${SYSTEM_DEBIAN}" | "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}")
|
"${SYSTEM_DEBIAN}" | "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}")
|
||||||
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
||||||
if [[ ${UPDATA_SOFTWARE} == "true" ]]; then
|
if [[ "${UPDATA_SOFTWARE}" == "true" ]]; then
|
||||||
Main
|
Main
|
||||||
if [[ ${CLEAN_CACHE} == "true" ]]; then
|
if [[ "${CLEAN_CACHE}" == "true" ]]; then
|
||||||
CleanCache
|
CleanCache
|
||||||
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
||||||
CleanCacheInteraction
|
CleanCacheInteraction
|
||||||
@@ -948,8 +1006,7 @@ function UpdateSoftware() {
|
|||||||
|
|
||||||
## 运行结束
|
## 运行结束
|
||||||
function RunEnd() {
|
function RunEnd() {
|
||||||
echo -e "\n$COMPLETE 脚本执行结束\n"
|
echo -e "\n$COMPLETE 脚本执行结束 [\033[1;34m官网\033[0m] ${WEBSITE}\n"
|
||||||
AuthorSignature
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -976,19 +1033,19 @@ deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
|||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
||||||
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}" >>$File_DebianSourceList
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}" >>$File_DebianSourceList
|
||||||
if [[ ${USE_ABROAD_SOURCE} == "true" ]]; then
|
## 处理 debian-security 仓库
|
||||||
echo "# deb ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="${SOURCE_SECURITY:-"${SOURCE}"}"
|
||||||
# # deb-src ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
if [[ -z "${SOURCE_SECURITY}" ]]; then
|
||||||
|
if [[ "${USE_ABROAD_SOURCE}" == "true" ]]; then
|
||||||
deb https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="https://security.debian.org/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
# deb-src https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
|
||||||
else
|
else
|
||||||
echo "deb ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
# deb-src ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
|
|
||||||
# deb https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
# # deb-src https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
local security_url="${WEB_PROTOCOL}://${SOURCE_SECURITY}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
|
fi
|
||||||
|
echo "deb ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
|
# deb-src ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_UBUNTU}")
|
"${SYSTEM_UBUNTU}")
|
||||||
source_suffix="main restricted universe multiverse"
|
source_suffix="main restricted universe multiverse"
|
||||||
@@ -1002,9 +1059,6 @@ deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
|||||||
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
|
|
||||||
# deb http://security.ubuntu.com/ubuntu ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
# # deb-src http://security.ubuntu.com/ubuntu ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
|
|
||||||
## 预发布软件源(不建议启用)
|
## 预发布软件源(不建议启用)
|
||||||
# deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}
|
# deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}" >>$File_DebianSourceList
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}" >>$File_DebianSourceList
|
||||||
@@ -1033,8 +1087,6 @@ function RedHatMirrors() {
|
|||||||
## 生成 repo 源文件
|
## 生成 repo 源文件
|
||||||
GenRepoFiles_EPEL
|
GenRepoFiles_EPEL
|
||||||
|
|
||||||
sed -i 's|^metalink=|#metalink=|g' $Dir_RedHatRepos/epel*
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
# 更换 WEB 协议(HTTP/HTTPS)
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9 | 8)
|
9 | 8)
|
||||||
@@ -1045,6 +1097,7 @@ function RedHatMirrors() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# 修改源
|
# 修改源
|
||||||
|
sed -i 's|^metalink=|#metalink=|g' $Dir_RedHatRepos/epel*
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i "s|download.example/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
|
sed -i "s|download.example/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
|
||||||
@@ -1054,7 +1107,11 @@ function RedHatMirrors() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
## 仅 EPEL 模式
|
||||||
|
if [[ "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
EPELMirrors
|
||||||
|
return
|
||||||
|
fi
|
||||||
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
|
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
@@ -1090,77 +1147,55 @@ function RedHatMirrors() {
|
|||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
## 禁用签名
|
|
||||||
sed -i "s|^gpgcheck=1|gpgcheck=0|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
sed -i "s|^gpgkey=|#gpgkey=|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-rockyofficial" -P /etc/pki/rpm-gpg
|
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-rockyofficial" -P /etc/pki/rpm-gpg
|
||||||
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-Rocky-9" -P /etc/pki/rpm-gpg
|
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-Rocky-9" -P /etc/pki/rpm-gpg
|
||||||
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
# 更换软件源
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
-e "s|^gpgcheck=1|gpgcheck=0|g" \
|
||||||
|
-e "s|^gpgkey=|#gpgkey=|g" \
|
||||||
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
|
-i \
|
||||||
rocky.repo \
|
rocky.repo \
|
||||||
rocky-addons.repo \
|
rocky-addons.repo \
|
||||||
rocky-devel.repo \
|
rocky-devel.repo \
|
||||||
rocky-extras.repo
|
rocky-extras.repo
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
||||||
|
|
||||||
# Red Hat Enterprise Linux 修改版本号
|
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
|
||||||
# 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
|
||||||
sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
|
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-*
|
sed -i "s/\$releasever/8.5.2111/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Linux-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
|
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
||||||
sed -i "s/\$releasever/7/g" CentOS-*
|
sed -i "s/\$releasever/7/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_CENTOS}")
|
"${SYSTEM_CENTOS}")
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
||||||
# 更换软件源
|
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
|
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
||||||
|
# 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
||||||
sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
|
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-*
|
sed -i "s/\$releasever/8.5.2111/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Linux-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
||||||
|
sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
||||||
@@ -1169,99 +1204,58 @@ function RedHatMirrors() {
|
|||||||
# CentOS Stream 9 使用的是 centos-stream 镜像,而 CentOS Stream 8 使用的是 centos 镜像
|
# CentOS Stream 9 使用的是 centos-stream 镜像,而 CentOS Stream 8 使用的是 centos 镜像
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^metalink=|#metalink=|g' \
|
sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
centos.repo \
|
-e "s|^metalink=|#metalink=|g" \
|
||||||
centos-addons.repo
|
-e "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
|
-i \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
centos.repo \
|
|
||||||
centos-addons.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
centos.repo \
|
centos.repo \
|
||||||
centos-addons.repo
|
centos-addons.repo
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-Stream-*
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Stream-Sources.repo # 单独处理 CentOS-Stream-Sources.repo
|
||||||
sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Stream-Sources.repo # 单独处理 CentOS-Stream-Sources.repo
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-Stream-*
|
-i \
|
||||||
# 更换软件源
|
CentOS-Stream-*
|
||||||
sed -i "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" CentOS-Stream-*
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ROCKY}")
|
"${SYSTEM_ROCKY}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
rocky.repo \
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
rocky-addons.repo \
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
rocky-devel.repo \
|
-i \
|
||||||
rocky-extras.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
rocky.repo \
|
rocky.repo \
|
||||||
rocky-addons.repo \
|
rocky-addons.repo \
|
||||||
rocky-devel.repo \
|
rocky-devel.repo \
|
||||||
rocky-extras.repo
|
rocky-extras.repo
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' Rocky-*
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" Rocky-*
|
-i \
|
||||||
# 更换软件源
|
Rocky-*
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" Rocky-*
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ALMA}")
|
"${SYSTEM_ALMA}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' almalinux-*
|
sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" almalinux-*
|
|
||||||
# 更换软件源
|
|
||||||
sed -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
||||||
-i almalinux-*
|
-i \
|
||||||
|
almalinux-*
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
almalinux-ha.repo \
|
-e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
almalinux-nfv.repo \
|
-e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
almalinux-plus.repo \
|
|
||||||
almalinux-powertools.repo \
|
|
||||||
almalinux-resilientstorage.repo \
|
|
||||||
almalinux-rt.repo \
|
|
||||||
almalinux-sap.repo \
|
|
||||||
almalinux-saphana.repo \
|
|
||||||
almalinux.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
almalinux-ha.repo \
|
|
||||||
almalinux-nfv.repo \
|
|
||||||
almalinux-plus.repo \
|
|
||||||
almalinux-powertools.repo \
|
|
||||||
almalinux-resilientstorage.repo \
|
|
||||||
almalinux-rt.repo \
|
|
||||||
almalinux-sap.repo \
|
|
||||||
almalinux-saphana.repo \
|
|
||||||
almalinux.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
||||||
-i \
|
-i \
|
||||||
almalinux-ha.repo \
|
almalinux-ha.repo \
|
||||||
@@ -1277,24 +1271,10 @@ function RedHatMirrors() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_FEDORA}")
|
"${SYSTEM_FEDORA}")
|
||||||
sed -i 's|^metalink=|#metalink=|g' \
|
sed -e "s|^metalink=|#metalink=|g" \
|
||||||
fedora.repo \
|
-e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
fedora-updates.repo \
|
-e "s|download.example/pub/fedora/linux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
fedora-modular.repo \
|
-i \
|
||||||
fedora-updates-modular.repo \
|
|
||||||
fedora-updates-testing.repo \
|
|
||||||
fedora-updates-testing-modular.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
fedora.repo \
|
|
||||||
fedora-updates.repo \
|
|
||||||
fedora-modular.repo \
|
|
||||||
fedora-updates-modular.repo \
|
|
||||||
fedora-updates-testing.repo \
|
|
||||||
fedora-updates-testing-modular.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|download.example/pub/fedora/linux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
fedora.repo \
|
fedora.repo \
|
||||||
fedora-updates.repo \
|
fedora-updates.repo \
|
||||||
fedora-modular.repo \
|
fedora-modular.repo \
|
||||||
@@ -1307,7 +1287,7 @@ function RedHatMirrors() {
|
|||||||
## EPEL 附加软件包(安装/换源)
|
## EPEL 附加软件包(安装/换源)
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
||||||
[[ ${INSTALL_EPEL} == "True" ]] && EPELMirrors
|
[[ "${INSTALL_EPEL}" == "True" ]] && EPELMirrors
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -1317,10 +1297,10 @@ function openEulerMirrors() {
|
|||||||
GenRepoFiles_openEuler
|
GenRepoFiles_openEuler
|
||||||
cd $Dir_openEulerRepos
|
cd $Dir_openEulerRepos
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" openEuler.repo
|
-e "s|repo.openeuler.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
# 更换软件源
|
-i \
|
||||||
sed -i "s|repo.openeuler.org|${SOURCE}/${SOURCE_BRANCH}|g" openEuler.repo
|
openEuler.repo
|
||||||
}
|
}
|
||||||
|
|
||||||
## 更换基于 openSUSE 发行版的软件源
|
## 更换基于 openSUSE 发行版的软件源
|
||||||
@@ -3955,7 +3935,7 @@ EOF
|
|||||||
## 生成 openSUSE 官方 repo 源文件
|
## 生成 openSUSE 官方 repo 源文件
|
||||||
function GenRepoFiles_openSUSE() {
|
function GenRepoFiles_openSUSE() {
|
||||||
case $1 in
|
case $1 in
|
||||||
leap)
|
"leap")
|
||||||
case $2 in
|
case $2 in
|
||||||
15.[0-2])
|
15.[0-2])
|
||||||
cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF
|
cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF
|
||||||
@@ -4168,7 +4148,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
tumbleweed)
|
"tumbleweed")
|
||||||
cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF
|
cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF
|
||||||
[repo-debug]
|
[repo-debug]
|
||||||
name=openSUSE-Tumbleweed-Debug
|
name=openSUSE-Tumbleweed-Debug
|
||||||
@@ -4496,11 +4476,16 @@ function CommandOptions() {
|
|||||||
选项命令(参数名/含义/参数值):
|
选项命令(参数名/含义/参数值):
|
||||||
|
|
||||||
--source 指定软件源地址 地址
|
--source 指定软件源地址 地址
|
||||||
--branch 指定软件源分支 分支名
|
--source-security 指定 debian-security 软件源地址 地址
|
||||||
|
--source-vault 指定 centos-vault 软件源地址 地址
|
||||||
|
--branch 指定软件源分支(路径) 分支名
|
||||||
|
--branch-security 指定 debian-security 软件源分支(路径) 分支名
|
||||||
|
--branch-vault 指定 centos-vault 软件源分支(路径) 分支名
|
||||||
--abroad 使用海外软件源 无
|
--abroad 使用海外软件源 无
|
||||||
--web-protocol 指定 WEB 协议 http 或 https
|
--web-protocol 指定 WEB 协议 http 或 https
|
||||||
--intranet 使用内网地址 true 或 false
|
--intranet 优先使用内网地址 true 或 false
|
||||||
--install-epel 安装 EPEL 附加软件包 true 或 false
|
--install-epel 安装 EPEL 附加软件包 true 或 false
|
||||||
|
--only-epel 仅更换 EPEL 软件源模式 无
|
||||||
--close-firewall 关闭防火墙 true 或 false
|
--close-firewall 关闭防火墙 true 或 false
|
||||||
--backup 备份原有软件源 true 或 false
|
--backup 备份原有软件源 true 或 false
|
||||||
--ignore-backup-tips 忽略覆盖备份提示 无
|
--ignore-backup-tips 忽略覆盖备份提示 无
|
||||||
@@ -4510,11 +4495,6 @@ function CommandOptions() {
|
|||||||
问题报告 https://github.com/SuperManito/LinuxMirrors/issues
|
问题报告 https://github.com/SuperManito/LinuxMirrors/issues
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
## 报错退出
|
|
||||||
function Output_Command_Error() {
|
|
||||||
echo -e "\n$ERROR $1\n"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
## 判断参数
|
## 判断参数
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@@ -4528,13 +4508,39 @@ function CommandOptions() {
|
|||||||
if [ $2 ]; then
|
if [ $2 ]; then
|
||||||
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
Output_Command_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
else
|
else
|
||||||
SOURCE="$2"
|
SOURCE="$2"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--source-security)
|
||||||
|
if [ $2 ]; then
|
||||||
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
|
else
|
||||||
|
SOURCE_SECURITY="$2"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--source-vault)
|
||||||
|
if [ $2 ]; then
|
||||||
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
|
else
|
||||||
|
SOURCE_VAULT="$2"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 指定软件源分支
|
## 指定软件源分支
|
||||||
@@ -4543,7 +4549,23 @@ function CommandOptions() {
|
|||||||
SOURCE_BRANCH="$2"
|
SOURCE_BRANCH="$2"
|
||||||
shift
|
shift
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--branch-security)
|
||||||
|
if [ $2 ]; then
|
||||||
|
SOURCE_BRANCH_SECURITY="$2"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--branch-vault)
|
||||||
|
if [ $2 ]; then
|
||||||
|
SOURCE_BRANCH_VAULT="$2"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 优先使用内网地址
|
## 优先使用内网地址
|
||||||
@@ -4555,11 +4577,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## WEB 协议(HTTP/HTTPS)
|
## WEB 协议(HTTP/HTTPS)
|
||||||
@@ -4571,11 +4593,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 安装 EPEL 附加软件包
|
## 安装 EPEL 附加软件包
|
||||||
@@ -4587,13 +4609,17 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
--only-epel)
|
||||||
|
ONLY_EPEL="true"
|
||||||
|
INSTALL_EPEL="true"
|
||||||
|
;;
|
||||||
## 关闭防火墙
|
## 关闭防火墙
|
||||||
--close-firewall)
|
--close-firewall)
|
||||||
if [ $2 ]; then
|
if [ $2 ]; then
|
||||||
@@ -4603,11 +4629,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 备份原有软件源
|
## 备份原有软件源
|
||||||
@@ -4619,11 +4645,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 忽略覆盖备份提示
|
## 忽略覆盖备份提示
|
||||||
@@ -4639,11 +4665,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 清理下载缓存
|
## 清理下载缓存
|
||||||
@@ -4655,11 +4681,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
--help)
|
--help)
|
||||||
@@ -4667,11 +4693,15 @@ function CommandOptions() {
|
|||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
## 赋予部分命令参数默认值
|
||||||
|
ONLY_EPEL="${ONLY_EPEL:-"false"}"
|
||||||
|
BACKUP="${BACKUP:-"true"}"
|
||||||
|
IGNORE_BACKUP_TIPS="${IGNORE_BACKUP_TIPS:-"false"}"
|
||||||
}
|
}
|
||||||
|
|
||||||
## 组合函数
|
## 组合函数
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</strong>
|
</strong>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
- ### 适配系统及版本号
|
- ### 适配系统及其版本
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ hide:
|
|||||||
|
|
||||||
GNU/Linux 一键更换系统软件源脚本 · 让换源更简单
|
GNU/Linux 一键更换系统软件源脚本 · 让换源更简单
|
||||||
|
|
||||||
## 适配系统及版本号
|
## 适配系统及其版本
|
||||||
|
|
||||||
!!! example inline end "适配计划"
|
!!! example inline end "适配计划"
|
||||||
|
|
||||||
|
|||||||
460
docs/main.sh
460
docs/main.sh
@@ -175,18 +175,65 @@ function StartTitle() {
|
|||||||
echo -e ' 欢迎使用 GNU/Linux 一键更换软件源脚本'
|
echo -e ' 欢迎使用 GNU/Linux 一键更换软件源脚本'
|
||||||
}
|
}
|
||||||
|
|
||||||
function AuthorSignature() {
|
## 报错退出
|
||||||
echo -e "[\033[1;34m官网\033[0m] ${WEBSITE}\n"
|
function Output_Error() {
|
||||||
|
[ "$1" ] && echo -e "\n$ERROR $1\n"
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
## 权限判定
|
## 权限判定
|
||||||
function PermissionJudgment() {
|
function PermissionJudgment() {
|
||||||
if [ $UID -ne 0 ]; then
|
if [ $UID -ne 0 ]; then
|
||||||
echo -e "\n$ERROR 权限不足,请使用 Root 用户运行本脚本\n"
|
Output_Error "权限不足,请使用 Root 用户运行本脚本"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## 命令选项兼容性判断
|
||||||
|
function CheckCommandOptions() {
|
||||||
|
case "${SYSTEM_FACTIONS}" in
|
||||||
|
"${SYSTEM_DEBIAN}")
|
||||||
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_DEBIAN}" ]]; then
|
||||||
|
if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_REDHAT}")
|
||||||
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_CENTOS}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
||||||
|
if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_FEDORA}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"${SYSTEM_OPENEULER}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_OPENSUSE}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"${SYSTEM_ARCH}")
|
||||||
|
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
## 系统判定变量
|
## 系统判定变量
|
||||||
function EnvJudgment() {
|
function EnvJudgment() {
|
||||||
## 定义系统名称
|
## 定义系统名称
|
||||||
@@ -209,20 +256,15 @@ function EnvJudgment() {
|
|||||||
elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
|
elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
|
||||||
SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
|
SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
|
||||||
else
|
else
|
||||||
echo -e "\n$ERROR 无法判断当前运行环境,请先确认本脚本是否已经适配当前操作系统\n"
|
Output_Error "无法判断当前运行环境,请先确认本脚本是否已经适配当前操作系统"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
## 开始使用
|
|
||||||
StartTitle
|
|
||||||
## 判定系统名称、版本、版本号
|
## 判定系统名称、版本、版本号
|
||||||
case "${SYSTEM_FACTIONS}" in
|
case "${SYSTEM_FACTIONS}" in
|
||||||
"${SYSTEM_DEBIAN}")
|
"${SYSTEM_DEBIAN}")
|
||||||
if [ ! -x /usr/bin/lsb_release ]; then
|
if [ ! -x /usr/bin/lsb_release ]; then
|
||||||
apt-get install -y lsb-release
|
apt-get install -y lsb-release
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo -e "\n$ERROR lsb-release 软件包安装失败"
|
Output_Error "lsb-release 软件包安装失败\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!"
|
||||||
echo -e "\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!\n"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
SYSTEM_JUDGMENT="$(lsb_release -is)"
|
SYSTEM_JUDGMENT="$(lsb_release -is)"
|
||||||
@@ -272,7 +314,7 @@ function EnvJudgment() {
|
|||||||
if [[ -z "${SOURCE_BRANCH}" ]]; then
|
if [[ -z "${SOURCE_BRANCH}" ]]; then
|
||||||
## 默认
|
## 默认
|
||||||
SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")"
|
SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")"
|
||||||
## 定制
|
## 处理特殊
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
@@ -285,7 +327,7 @@ function EnvJudgment() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_CENTOS}")
|
"${SYSTEM_CENTOS}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
|
||||||
SOURCE_BRANCH="centos"
|
SOURCE_BRANCH="centos"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="centos-altarch"
|
SOURCE_BRANCH="centos-altarch"
|
||||||
@@ -294,7 +336,7 @@ function EnvJudgment() {
|
|||||||
"${SYSTEM_CENTOS_STREAM}")
|
"${SYSTEM_CENTOS_STREAM}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
|
||||||
SOURCE_BRANCH="centos"
|
SOURCE_BRANCH="centos"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="centos-altarch"
|
SOURCE_BRANCH="centos-altarch"
|
||||||
@@ -306,14 +348,14 @@ function EnvJudgment() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_UBUNTU}")
|
"${SYSTEM_UBUNTU}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then
|
||||||
SOURCE_BRANCH="ubuntu"
|
SOURCE_BRANCH="ubuntu"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="ubuntu-ports"
|
SOURCE_BRANCH="ubuntu-ports"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ARCH}")
|
"${SYSTEM_ARCH}")
|
||||||
if [[ ${DEVICE_ARCH} == "x86_64" ]] || [[ ${DEVICE_ARCH} == *i?86* ]]; then
|
if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then
|
||||||
SOURCE_BRANCH="archlinux"
|
SOURCE_BRANCH="archlinux"
|
||||||
else
|
else
|
||||||
SOURCE_BRANCH="archlinuxarm"
|
SOURCE_BRANCH="archlinuxarm"
|
||||||
@@ -330,6 +372,10 @@ function EnvJudgment() {
|
|||||||
SYNC_TXT="同步"
|
SYNC_TXT="同步"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
## 命令选项兼容性判断
|
||||||
|
CheckCommandOptions
|
||||||
|
## 开始使用
|
||||||
|
StartTitle
|
||||||
}
|
}
|
||||||
|
|
||||||
## 选择软件源
|
## 选择软件源
|
||||||
@@ -398,9 +444,7 @@ function ChooseMirrors() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [[ ${USE_INTRANET_SOURCE} == "true" ]]; then
|
if [[ -z "${USE_INTRANET_SOURCE}" ]]; then
|
||||||
SOURCE="${intranet_source}"
|
|
||||||
elif [[ -z "${USE_INTRANET_SOURCE}" ]]; then
|
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE}" INPUT
|
read -p "${CHOICE}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -414,12 +458,14 @@ function ChooseMirrors() {
|
|||||||
echo -e "\n$WARN 输入错误,默认不使用内网地址!"
|
echo -e "\n$WARN 输入错误,默认不使用内网地址!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ "${USE_INTRANET_SOURCE}" == "true" ]]; then
|
||||||
|
SOURCE="${intranet_source}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function Title() {
|
function Title() {
|
||||||
local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
|
local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
|
||||||
local arch="${DEVICE_ARCH}"
|
local arch=""${DEVICE_ARCH}""
|
||||||
local date="$(date "+%Y-%m-%d %H:%M:%S")"
|
local date="$(date "+%Y-%m-%d %H:%M:%S")"
|
||||||
local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
|
local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
|
||||||
|
|
||||||
@@ -469,7 +515,7 @@ function ChooseMirrors() {
|
|||||||
## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
|
## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
|
||||||
function ChooseWebProtocol() {
|
function ChooseWebProtocol() {
|
||||||
if [[ -z "${WEB_PROTOCOL}" ]]; then
|
if [[ -z "${WEB_PROTOCOL}" ]]; then
|
||||||
if [[ ${ONLY_HTTP} == "True" ]]; then
|
if [[ "${ONLY_HTTP}" == "True" ]]; then
|
||||||
WEB_PROTOCOL="http"
|
WEB_PROTOCOL="http"
|
||||||
else
|
else
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
|
||||||
@@ -494,9 +540,7 @@ function ChooseWebProtocol() {
|
|||||||
|
|
||||||
# 适用于 RHEL/CentOS(Stream)/RockyLinux 的 EPEL 附加软件包(安装/换源)
|
# 适用于 RHEL/CentOS(Stream)/RockyLinux 的 EPEL 附加软件包(安装/换源)
|
||||||
function ChooseInstallEPEL() {
|
function ChooseInstallEPEL() {
|
||||||
if [[ -z "${INSTALL_EPEL}" ]]; then
|
function Check() {
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
|
||||||
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
|
||||||
## 判断是否已安装 EPEL 软件包
|
## 判断是否已安装 EPEL 软件包
|
||||||
rpm -qa | grep epel-release -q
|
rpm -qa | grep epel-release -q
|
||||||
VERIFICATION_EPEL=$?
|
VERIFICATION_EPEL=$?
|
||||||
@@ -506,7 +550,13 @@ function ChooseInstallEPEL() {
|
|||||||
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件
|
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件
|
||||||
[ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep epel -q
|
[ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep epel -q
|
||||||
VERIFICATION_EPELBACKUPFILES=$?
|
VERIFICATION_EPELBACKUPFILES=$?
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${SYSTEM_FACTIONS}" == "${SYSTEM_REDHAT}" ]]; then
|
||||||
|
if [[ -z "${INSTALL_EPEL}" ]]; then
|
||||||
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
||||||
|
Check
|
||||||
if [ ${VERIFICATION_EPEL} -eq 0 ]; then
|
if [ ${VERIFICATION_EPEL} -eq 0 ]; then
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
|
||||||
else
|
else
|
||||||
@@ -528,6 +578,9 @@ function ChooseInstallEPEL() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
elif [[ "${INSTALL_EPEL}" == "true" ]]; then
|
||||||
|
Check
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,8 +593,8 @@ function CloseFirewall() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ -x /usr/bin/systemctl ]; then
|
if [ -x /usr/bin/systemctl ]; then
|
||||||
if [[ $(systemctl is-active firewalld) == "active" ]]; then
|
if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
|
||||||
if [[ ${CLOSE_FIREWALL} == "true" ]]; then
|
if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
|
||||||
Main
|
Main
|
||||||
elif [[ -z "${CLOSE_FIREWALL}" ]]; then
|
elif [[ -z "${CLOSE_FIREWALL}" ]]; then
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
||||||
@@ -563,7 +616,7 @@ function CloseFirewall() {
|
|||||||
|
|
||||||
## 备份原有软件源
|
## 备份原有软件源
|
||||||
function BackupOriginMirrors() {
|
function BackupOriginMirrors() {
|
||||||
if [[ $BACKUP == "true" || -z "${BACKUP}" ]]; then
|
if [[ "${BACKUP}" == "true" ]]; then
|
||||||
local VERIFICATION_FILES=1
|
local VERIFICATION_FILES=1
|
||||||
local VERIFICATION_BACKUPFILES=1
|
local VERIFICATION_BACKUPFILES=1
|
||||||
|
|
||||||
@@ -607,7 +660,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/apt/sources.list
|
## /etc/apt/sources.list
|
||||||
if [ -s $File_DebianSourceList ]; then
|
if [ -s $File_DebianSourceList ]; then
|
||||||
if [ -s $File_DebianSourceListBackup ]; then
|
if [ -s $File_DebianSourceListBackup ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP1}" INPUT
|
read -p "${CHOICE_BACKUP1}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -636,7 +689,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/apt/sources.list.d
|
## /etc/apt/sources.list.d
|
||||||
if [ -d $Dir_DebianExtendSource ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ -d $Dir_DebianExtendSource ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_DebianExtendSourceBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_DebianExtendSourceBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP2=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 扩展源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP2=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 扩展源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP2}" INPUT
|
read -p "${CHOICE_BACKUP2}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -664,7 +717,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/yum.repos.d
|
## /etc/yum.repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_RedHatReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_RedHatReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP3}" INPUT
|
read -p "${CHOICE_BACKUP3}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -694,7 +747,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/yum.repos.d
|
## /etc/yum.repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_openEulerReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_openEulerReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP4}" INPUT
|
read -p "${CHOICE_BACKUP4}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -724,7 +777,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/zypp/repos.d
|
## /etc/zypp/repos.d
|
||||||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||||||
if [ -d $Dir_openSUSEReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
if [ -d $Dir_openSUSEReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP4}" INPUT
|
read -p "${CHOICE_BACKUP4}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -754,7 +807,7 @@ function BackupOriginMirrors() {
|
|||||||
## /etc/pacman.d/mirrorlist
|
## /etc/pacman.d/mirrorlist
|
||||||
if [ -s $File_ArchMirrorList ]; then
|
if [ -s $File_ArchMirrorList ]; then
|
||||||
if [ -s $File_ArchMirrorListBackup ]; then
|
if [ -s $File_ArchMirrorListBackup ]; then
|
||||||
if [[ -z "${IGNORE_BACKUP_TIPS}" ]]; then
|
if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
|
||||||
local CHOICE_BACKUP5=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的软件源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP5=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的软件源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -p "${CHOICE_BACKUP5}" INPUT
|
read -p "${CHOICE_BACKUP5}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
@@ -793,15 +846,20 @@ function RemoveOriginMirrors() {
|
|||||||
"${SYSTEM_REDHAT}")
|
"${SYSTEM_REDHAT}")
|
||||||
if [ -d $Dir_RedHatRepos ]; then
|
if [ -d $Dir_RedHatRepos ]; then
|
||||||
# Fedora Linux 特殊,只删除以 fedora 开头的文件
|
# Fedora Linux 特殊,只删除以 fedora 开头的文件
|
||||||
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]]; then
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
|
"${SYSTEM_FEDORA}")
|
||||||
rm -rf $Dir_RedHatRepos/fedora*
|
rm -rf $Dir_RedHatRepos/fedora*
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
|
if [[ "${ONLY_EPEL}" == "false" ]]; then
|
||||||
if [ -f $Dir_RedHatRepos/epel.repo ]; then
|
if [ -f $Dir_RedHatRepos/epel.repo ]; then
|
||||||
ls $Dir_RedHatRepos/ | egrep -v epel | xargs rm -rf
|
ls $Dir_RedHatRepos/ | egrep -v epel | xargs rm -rf
|
||||||
else
|
else
|
||||||
rm -rf $Dir_RedHatRepos/*
|
rm -rf $Dir_RedHatRepos/*
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_OPENEULER}")
|
"${SYSTEM_OPENEULER}")
|
||||||
@@ -902,7 +960,7 @@ function UpdateSoftware() {
|
|||||||
[Yy] | [Yy][Ee][Ss]) ;;
|
[Yy] | [Yy][Ee][Ss]) ;;
|
||||||
[Nn] | [Nn][Oo])
|
[Nn] | [Nn][Oo])
|
||||||
Main
|
Main
|
||||||
if [[ ${CLEAN_CACHE} == "true" ]]; then
|
if [[ "${CLEAN_CACHE}" == "true" ]]; then
|
||||||
CleanCache
|
CleanCache
|
||||||
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
||||||
CleanCacheInteraction
|
CleanCacheInteraction
|
||||||
@@ -931,9 +989,9 @@ function UpdateSoftware() {
|
|||||||
case "${SYSTEM_FACTIONS}" in
|
case "${SYSTEM_FACTIONS}" in
|
||||||
"${SYSTEM_DEBIAN}" | "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}")
|
"${SYSTEM_DEBIAN}" | "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}")
|
||||||
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then
|
||||||
if [[ ${UPDATA_SOFTWARE} == "true" ]]; then
|
if [[ "${UPDATA_SOFTWARE}" == "true" ]]; then
|
||||||
Main
|
Main
|
||||||
if [[ ${CLEAN_CACHE} == "true" ]]; then
|
if [[ "${CLEAN_CACHE}" == "true" ]]; then
|
||||||
CleanCache
|
CleanCache
|
||||||
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
elif [[ -z "${CLEAN_CACHE}" ]]; then
|
||||||
CleanCacheInteraction
|
CleanCacheInteraction
|
||||||
@@ -948,8 +1006,7 @@ function UpdateSoftware() {
|
|||||||
|
|
||||||
## 运行结束
|
## 运行结束
|
||||||
function RunEnd() {
|
function RunEnd() {
|
||||||
echo -e "\n$COMPLETE 脚本执行结束\n"
|
echo -e "\n$COMPLETE 脚本执行结束 [\033[1;34m官网\033[0m] ${WEBSITE}\n"
|
||||||
AuthorSignature
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -976,19 +1033,19 @@ deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
|||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix}
|
||||||
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}" >>$File_DebianSourceList
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}" >>$File_DebianSourceList
|
||||||
if [[ ${USE_ABROAD_SOURCE} == "true" ]]; then
|
## 处理 debian-security 仓库
|
||||||
echo "# deb ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="${SOURCE_SECURITY:-"${SOURCE}"}"
|
||||||
# # deb-src ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
if [[ -z "${SOURCE_SECURITY}" ]]; then
|
||||||
|
if [[ "${USE_ABROAD_SOURCE}" == "true" ]]; then
|
||||||
deb https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="https://security.debian.org/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
# deb-src https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
|
||||||
else
|
else
|
||||||
echo "deb ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
local security_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
# deb-src ${basic_url}-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
|
|
||||||
# deb https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
# # deb-src https://security.debian.org/debian-security ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
local security_url="${WEB_PROTOCOL}://${SOURCE_SECURITY}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}"
|
||||||
|
fi
|
||||||
|
echo "deb ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
|
# deb-src ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_UBUNTU}")
|
"${SYSTEM_UBUNTU}")
|
||||||
source_suffix="main restricted universe multiverse"
|
source_suffix="main restricted universe multiverse"
|
||||||
@@ -1002,9 +1059,6 @@ deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}
|
|||||||
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
||||||
|
|
||||||
# deb http://security.ubuntu.com/ubuntu ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
# # deb-src http://security.ubuntu.com/ubuntu ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}
|
|
||||||
|
|
||||||
## 预发布软件源(不建议启用)
|
## 预发布软件源(不建议启用)
|
||||||
# deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}
|
# deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}
|
||||||
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}" >>$File_DebianSourceList
|
# deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}" >>$File_DebianSourceList
|
||||||
@@ -1033,8 +1087,6 @@ function RedHatMirrors() {
|
|||||||
## 生成 repo 源文件
|
## 生成 repo 源文件
|
||||||
GenRepoFiles_EPEL
|
GenRepoFiles_EPEL
|
||||||
|
|
||||||
sed -i 's|^metalink=|#metalink=|g' $Dir_RedHatRepos/epel*
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
# 更换 WEB 协议(HTTP/HTTPS)
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9 | 8)
|
9 | 8)
|
||||||
@@ -1045,6 +1097,7 @@ function RedHatMirrors() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# 修改源
|
# 修改源
|
||||||
|
sed -i 's|^metalink=|#metalink=|g' $Dir_RedHatRepos/epel*
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i "s|download.example/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
|
sed -i "s|download.example/pub|${SOURCE}|g" $Dir_RedHatRepos/epel*
|
||||||
@@ -1054,7 +1107,11 @@ function RedHatMirrors() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
## 仅 EPEL 模式
|
||||||
|
if [[ "${ONLY_EPEL}" == "true" ]]; then
|
||||||
|
EPELMirrors
|
||||||
|
return
|
||||||
|
fi
|
||||||
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
|
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
@@ -1090,77 +1147,55 @@ function RedHatMirrors() {
|
|||||||
"${SYSTEM_RHEL}")
|
"${SYSTEM_RHEL}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
## 禁用签名
|
|
||||||
sed -i "s|^gpgcheck=1|gpgcheck=0|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
sed -i "s|^gpgkey=|#gpgkey=|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-rockyofficial" -P /etc/pki/rpm-gpg
|
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-rockyofficial" -P /etc/pki/rpm-gpg
|
||||||
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-Rocky-9" -P /etc/pki/rpm-gpg
|
# wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-Rocky-9" -P /etc/pki/rpm-gpg
|
||||||
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
# 更换软件源
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
-e "s|^gpgcheck=1|gpgcheck=0|g" \
|
||||||
|
-e "s|^gpgkey=|#gpgkey=|g" \
|
||||||
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
|
-i \
|
||||||
rocky.repo \
|
rocky.repo \
|
||||||
rocky-addons.repo \
|
rocky-addons.repo \
|
||||||
rocky-devel.repo \
|
rocky-devel.repo \
|
||||||
rocky-extras.repo
|
rocky-extras.repo
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
||||||
|
|
||||||
# Red Hat Enterprise Linux 修改版本号
|
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
|
||||||
# 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
|
||||||
sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
|
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-*
|
sed -i "s/\$releasever/8.5.2111/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Linux-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
|
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
||||||
sed -i "s/\$releasever/7/g" CentOS-*
|
sed -i "s/\$releasever/7/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_CENTOS}")
|
"${SYSTEM_CENTOS}")
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-*
|
||||||
# 更换软件源
|
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
8)
|
8)
|
||||||
|
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
||||||
|
# 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
||||||
sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
|
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-*
|
sed -i "s/\$releasever/8.5.2111/g" CentOS-*
|
||||||
|
# 单独处理 CentOS-Linux-Sources.repo
|
||||||
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-*
|
||||||
|
sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo # 单独处理 CentOS-Sources.repo
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
|
||||||
@@ -1169,99 +1204,58 @@ function RedHatMirrors() {
|
|||||||
# CentOS Stream 9 使用的是 centos-stream 镜像,而 CentOS Stream 8 使用的是 centos 镜像
|
# CentOS Stream 9 使用的是 centos-stream 镜像,而 CentOS Stream 8 使用的是 centos 镜像
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^metalink=|#metalink=|g' \
|
sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
centos.repo \
|
-e "s|^metalink=|#metalink=|g" \
|
||||||
centos-addons.repo
|
-e "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
|
-i \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
centos.repo \
|
|
||||||
centos-addons.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
centos.repo \
|
centos.repo \
|
||||||
centos-addons.repo
|
centos-addons.repo
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-Stream-*
|
sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Stream-Sources.repo # 单独处理 CentOS-Stream-Sources.repo
|
||||||
sed -i 's|vault.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-Stream-Sources.repo # 单独处理 CentOS-Stream-Sources.repo
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-Stream-*
|
-i \
|
||||||
# 更换软件源
|
CentOS-Stream-*
|
||||||
sed -i "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" CentOS-Stream-*
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ROCKY}")
|
"${SYSTEM_ROCKY}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
rocky.repo \
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
rocky-addons.repo \
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
rocky-devel.repo \
|
-i \
|
||||||
rocky-extras.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
rocky.repo \
|
|
||||||
rocky-addons.repo \
|
|
||||||
rocky-devel.repo \
|
|
||||||
rocky-extras.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
rocky.repo \
|
rocky.repo \
|
||||||
rocky-addons.repo \
|
rocky-addons.repo \
|
||||||
rocky-devel.repo \
|
rocky-devel.repo \
|
||||||
rocky-extras.repo
|
rocky-extras.repo
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' Rocky-*
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" Rocky-*
|
-i \
|
||||||
# 更换软件源
|
Rocky-*
|
||||||
sed -i "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" Rocky-*
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_ALMA}")
|
"${SYSTEM_ALMA}")
|
||||||
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
case ${SYSTEM_VERSION_NUMBER:0:1} in
|
||||||
9)
|
9)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' almalinux-*
|
sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
|
-e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
-e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
sed -i "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" almalinux-*
|
|
||||||
# 更换软件源
|
|
||||||
sed -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
||||||
-i almalinux-*
|
-i \
|
||||||
|
almalinux-*
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' \
|
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
|
||||||
almalinux-ha.repo \
|
-e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
almalinux-nfv.repo \
|
-e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
almalinux-plus.repo \
|
|
||||||
almalinux-powertools.repo \
|
|
||||||
almalinux-resilientstorage.repo \
|
|
||||||
almalinux-rt.repo \
|
|
||||||
almalinux-sap.repo \
|
|
||||||
almalinux-saphana.repo \
|
|
||||||
almalinux.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
almalinux-ha.repo \
|
|
||||||
almalinux-nfv.repo \
|
|
||||||
almalinux-plus.repo \
|
|
||||||
almalinux-powertools.repo \
|
|
||||||
almalinux-resilientstorage.repo \
|
|
||||||
almalinux-rt.repo \
|
|
||||||
almalinux-sap.repo \
|
|
||||||
almalinux-saphana.repo \
|
|
||||||
almalinux.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
-e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \
|
||||||
-i \
|
-i \
|
||||||
almalinux-ha.repo \
|
almalinux-ha.repo \
|
||||||
@@ -1277,24 +1271,10 @@ function RedHatMirrors() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"${SYSTEM_FEDORA}")
|
"${SYSTEM_FEDORA}")
|
||||||
sed -i 's|^metalink=|#metalink=|g' \
|
sed -e "s|^metalink=|#metalink=|g" \
|
||||||
fedora.repo \
|
-e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
fedora-updates.repo \
|
-e "s|download.example/pub/fedora/linux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
fedora-modular.repo \
|
-i \
|
||||||
fedora-updates-modular.repo \
|
|
||||||
fedora-updates-testing.repo \
|
|
||||||
fedora-updates-testing-modular.repo
|
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
|
||||||
fedora.repo \
|
|
||||||
fedora-updates.repo \
|
|
||||||
fedora-modular.repo \
|
|
||||||
fedora-updates-modular.repo \
|
|
||||||
fedora-updates-testing.repo \
|
|
||||||
fedora-updates-testing-modular.repo
|
|
||||||
# 更换软件源
|
|
||||||
sed -i "s|download.example/pub/fedora/linux|${SOURCE}/${SOURCE_BRANCH}|g" \
|
|
||||||
fedora.repo \
|
fedora.repo \
|
||||||
fedora-updates.repo \
|
fedora-updates.repo \
|
||||||
fedora-modular.repo \
|
fedora-modular.repo \
|
||||||
@@ -1307,7 +1287,7 @@ function RedHatMirrors() {
|
|||||||
## EPEL 附加软件包(安装/换源)
|
## EPEL 附加软件包(安装/换源)
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
"${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}")
|
||||||
[[ ${INSTALL_EPEL} == "True" ]] && EPELMirrors
|
[[ "${INSTALL_EPEL}" == "True" ]] && EPELMirrors
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -1317,10 +1297,10 @@ function openEulerMirrors() {
|
|||||||
GenRepoFiles_openEuler
|
GenRepoFiles_openEuler
|
||||||
cd $Dir_openEulerRepos
|
cd $Dir_openEulerRepos
|
||||||
|
|
||||||
# 更换 WEB 协议(HTTP/HTTPS)
|
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" openEuler.repo
|
-e "s|repo.openeuler.org|${SOURCE}/${SOURCE_BRANCH}|g" \
|
||||||
# 更换软件源
|
-i \
|
||||||
sed -i "s|repo.openeuler.org|${SOURCE}/${SOURCE_BRANCH}|g" openEuler.repo
|
openEuler.repo
|
||||||
}
|
}
|
||||||
|
|
||||||
## 更换基于 openSUSE 发行版的软件源
|
## 更换基于 openSUSE 发行版的软件源
|
||||||
@@ -3955,7 +3935,7 @@ EOF
|
|||||||
## 生成 openSUSE 官方 repo 源文件
|
## 生成 openSUSE 官方 repo 源文件
|
||||||
function GenRepoFiles_openSUSE() {
|
function GenRepoFiles_openSUSE() {
|
||||||
case $1 in
|
case $1 in
|
||||||
leap)
|
"leap")
|
||||||
case $2 in
|
case $2 in
|
||||||
15.[0-2])
|
15.[0-2])
|
||||||
cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF
|
cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF
|
||||||
@@ -4168,7 +4148,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
tumbleweed)
|
"tumbleweed")
|
||||||
cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF
|
cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF
|
||||||
[repo-debug]
|
[repo-debug]
|
||||||
name=openSUSE-Tumbleweed-Debug
|
name=openSUSE-Tumbleweed-Debug
|
||||||
@@ -4496,11 +4476,16 @@ function CommandOptions() {
|
|||||||
选项命令(参数名/含义/参数值):
|
选项命令(参数名/含义/参数值):
|
||||||
|
|
||||||
--source 指定软件源地址 地址
|
--source 指定软件源地址 地址
|
||||||
--branch 指定软件源分支 分支名
|
--source-security 指定 debian-security 软件源地址 地址
|
||||||
|
--source-vault 指定 centos-vault 软件源地址 地址
|
||||||
|
--branch 指定软件源分支(路径) 分支名
|
||||||
|
--branch-security 指定 debian-security 软件源分支(路径) 分支名
|
||||||
|
--branch-vault 指定 centos-vault 软件源分支(路径) 分支名
|
||||||
--abroad 使用海外软件源 无
|
--abroad 使用海外软件源 无
|
||||||
--web-protocol 指定 WEB 协议 http 或 https
|
--web-protocol 指定 WEB 协议 http 或 https
|
||||||
--intranet 使用内网地址 true 或 false
|
--intranet 优先使用内网地址 true 或 false
|
||||||
--install-epel 安装 EPEL 附加软件包 true 或 false
|
--install-epel 安装 EPEL 附加软件包 true 或 false
|
||||||
|
--only-epel 仅更换 EPEL 软件源模式 无
|
||||||
--close-firewall 关闭防火墙 true 或 false
|
--close-firewall 关闭防火墙 true 或 false
|
||||||
--backup 备份原有软件源 true 或 false
|
--backup 备份原有软件源 true 或 false
|
||||||
--ignore-backup-tips 忽略覆盖备份提示 无
|
--ignore-backup-tips 忽略覆盖备份提示 无
|
||||||
@@ -4510,11 +4495,6 @@ function CommandOptions() {
|
|||||||
问题报告 https://github.com/SuperManito/LinuxMirrors/issues
|
问题报告 https://github.com/SuperManito/LinuxMirrors/issues
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
## 报错退出
|
|
||||||
function Output_Command_Error() {
|
|
||||||
echo -e "\n$ERROR $1\n"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
## 判断参数
|
## 判断参数
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@@ -4528,13 +4508,39 @@ function CommandOptions() {
|
|||||||
if [ $2 ]; then
|
if [ $2 ]; then
|
||||||
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
Output_Command_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
else
|
else
|
||||||
SOURCE="$2"
|
SOURCE="$2"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--source-security)
|
||||||
|
if [ $2 ]; then
|
||||||
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
|
else
|
||||||
|
SOURCE_SECURITY="$2"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--source-vault)
|
||||||
|
if [ $2 ]; then
|
||||||
|
echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}"
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!"
|
||||||
|
else
|
||||||
|
SOURCE_VAULT="$2"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 指定软件源分支
|
## 指定软件源分支
|
||||||
@@ -4543,7 +4549,23 @@ function CommandOptions() {
|
|||||||
SOURCE_BRANCH="$2"
|
SOURCE_BRANCH="$2"
|
||||||
shift
|
shift
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--branch-security)
|
||||||
|
if [ $2 ]; then
|
||||||
|
SOURCE_BRANCH_SECURITY="$2"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
--branch-vault)
|
||||||
|
if [ $2 ]; then
|
||||||
|
SOURCE_BRANCH_VAULT="$2"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 优先使用内网地址
|
## 优先使用内网地址
|
||||||
@@ -4555,11 +4577,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## WEB 协议(HTTP/HTTPS)
|
## WEB 协议(HTTP/HTTPS)
|
||||||
@@ -4571,11 +4593,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 安装 EPEL 附加软件包
|
## 安装 EPEL 附加软件包
|
||||||
@@ -4587,13 +4609,17 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
--only-epel)
|
||||||
|
ONLY_EPEL="true"
|
||||||
|
INSTALL_EPEL="true"
|
||||||
|
;;
|
||||||
## 关闭防火墙
|
## 关闭防火墙
|
||||||
--close-firewall)
|
--close-firewall)
|
||||||
if [ $2 ]; then
|
if [ $2 ]; then
|
||||||
@@ -4603,11 +4629,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 备份原有软件源
|
## 备份原有软件源
|
||||||
@@ -4619,11 +4645,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 忽略覆盖备份提示
|
## 忽略覆盖备份提示
|
||||||
@@ -4639,11 +4665,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
## 清理下载缓存
|
## 清理下载缓存
|
||||||
@@ -4655,11 +4681,11 @@ function CommandOptions() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
--help)
|
--help)
|
||||||
@@ -4667,11 +4693,15 @@ function CommandOptions() {
|
|||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Output_Command_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
|
Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
## 赋予部分命令参数默认值
|
||||||
|
ONLY_EPEL="${ONLY_EPEL:-"false"}"
|
||||||
|
BACKUP="${BACKUP:-"true"}"
|
||||||
|
IGNORE_BACKUP_TIPS="${IGNORE_BACKUP_TIPS:-"false"}"
|
||||||
}
|
}
|
||||||
|
|
||||||
## 组合函数
|
## 组合函数
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
| 名称 | 含义 | 选项值 |
|
| 名称 | 含义 | 选项值 |
|
||||||
| :-: | :-: | :-: |
|
| :-: | :-: | :-: |
|
||||||
| `--source` | 指定软件源地址 | 地址 |
|
| `--source` | 指定软件源地址 | 地址 |
|
||||||
| `--branch` | 指定软件源分支 | 分支名 |
|
| `--source-security` | 指定 debian-security 软件源地址 | 地址 |
|
||||||
|
| `--source-vault` | 指定 centos-vault 软件源地址 | 地址 |
|
||||||
|
| `--branch` | 指定软件源分支(路径) | 分支名 |
|
||||||
|
| `--branch-security` | 指定 debian-security 软件源分支(路径) | 分支名 |
|
||||||
|
| `--branch-vault` | 指定 centos-vault 软件源分支(路径) | 分支名 |
|
||||||
| `--abroad` | 使用海外软件源 | 无 |
|
| `--abroad` | 使用海外软件源 | 无 |
|
||||||
| `--web-protocol` | 指定 WEB 协议 | `http` 或 `https` |
|
| `--web-protocol` | 指定 WEB 协议 | `http` 或 `https` |
|
||||||
| `--intranet` | 使用内网地址 | `true` 或 `false` |
|
| `--intranet` | 优先使用内网地址 | `true` 或 `false` |
|
||||||
| `--install-epel` | 安装 EPEL 附加软件包 | `true` 或 `false` |
|
| `--install-epel` | 安装 EPEL 附加软件包 | `true` 或 `false` |
|
||||||
|
| `--only-epel` | 仅更换 EPEL 软件源模式 | 无 |
|
||||||
| `--close-firewall` | 关闭防火墙 | `true` 或 `false` |
|
| `--close-firewall` | 关闭防火墙 | `true` 或 `false` |
|
||||||
| `--backup` | 备份原有软件源 | `true` 或 `false` |
|
| `--backup` | 备份原有软件源 | `true` 或 `false` |
|
||||||
| `--ignore-backup-tips` | 忽略覆盖备份提示 | 无 |
|
| `--ignore-backup-tips` | 忽略覆盖备份提示 | 无 |
|
||||||
@@ -20,7 +25,8 @@
|
|||||||
若不想通过交互选择默认提供的软件源,你可以使用该命令选项指定软件源地址
|
若不想通过交互选择默认提供的软件源,你可以使用该命令选项指定软件源地址
|
||||||
|
|
||||||
``` { .bash .no-copy }
|
``` { .bash .no-copy }
|
||||||
bash ChangeMirrors.sh --source mirrors.ustc.edu.cn
|
bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
|
||||||
|
--source mirror.example.com
|
||||||
```
|
```
|
||||||
|
|
||||||
### 指定软件源分支
|
### 指定软件源分支
|
||||||
@@ -48,7 +54,7 @@ bash ChangeMirrors.sh --source mirrors.ustc.edu.cn
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://www.centos.org/centos-linux" target="_blank"><img src="/../assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.15em"/></a> CentOS</td>
|
<td><a href="https://www.centos.org/centos-linux" target="_blank"><img src="/../assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.15em"/></a> CentOS</td>
|
||||||
<td align="center">centos/centos-stream/centos-altarch</td>
|
<td align="center">centos/centos-stream/centos-altarch/centos-vault</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://rockylinux.org" target="_blank"><img src="/../assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"/></a> Rocky Linux</td>
|
<td><a href="https://rockylinux.org" target="_blank"><img src="/../assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"/></a> Rocky Linux</td>
|
||||||
@@ -86,6 +92,24 @@ bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
|
|||||||
|
|
||||||
阿里云镜像站的 Rocky Linux 镜像分支名称为 [`rockylinux`](https://mirrors.aliyun.com/rockylinux),不符合默认规则,但是可以通过命令选项绕过脚本默认规则来实现
|
阿里云镜像站的 Rocky Linux 镜像分支名称为 [`rockylinux`](https://mirrors.aliyun.com/rockylinux),不符合默认规则,但是可以通过命令选项绕过脚本默认规则来实现
|
||||||
|
|
||||||
|
### 单独更换 EPEL 源
|
||||||
|
|
||||||
|
有些时候你会发现想使用的镜像站没有 epel 镜像仓库,那么你可以在第一次运行脚本时不安装或不更换 epel 源,然后再单独执行下面的命令
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
bash <(curl -sSL https://linuxmirrors.cn/main.sh) --only-epel
|
||||||
|
```
|
||||||
|
|
||||||
|
### 自定义 Debian Security 源
|
||||||
|
|
||||||
|
如果你想提高服务器的安全性请尽可能使用官方源,因为镜像同步存在延迟
|
||||||
|
|
||||||
|
``` bash title="官方源"
|
||||||
|
bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
|
||||||
|
--source-security security.debian.org \
|
||||||
|
--branch-security debian-security
|
||||||
|
```
|
||||||
|
|
||||||
## 无人值守
|
## 无人值守
|
||||||
|
|
||||||
不通过交互完成换源操作,需要使用大量命令选项来实现,建议熟悉后再使用
|
不通过交互完成换源操作,需要使用大量命令选项来实现,建议熟悉后再使用
|
||||||
|
|||||||
Reference in New Issue
Block a user