mirror of
				https://gitee.com/SuperManito/LinuxMirrors
				synced 2025-11-04 08:20:28 +08:00 
			
		
		
		
	优化
This commit is contained in:
		
							
								
								
									
										172
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							
							
						
						
									
										172
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2024-01-17
 | 
					## Modified: 2024-01-18
 | 
				
			||||||
## License: MIT
 | 
					## License: MIT
 | 
				
			||||||
## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
					## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Website: https://linuxmirrors.cn
 | 
					## Website: https://linuxmirrors.cn
 | 
				
			||||||
@@ -244,14 +244,14 @@ function EnvJudgment() {
 | 
				
			|||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:OpenCloudOS 判断优先级需要高于 RedHat,因为8版本基于红帽而9版本不是
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:OpenCloudOS 判断优先级需要高于 RedHat,因为8版本基于红帽而9版本不是
 | 
				
			||||||
    elif [ -s $File_openEulerRelease ]; then
 | 
					    elif [ -s $File_openEulerRelease ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
				
			||||||
    elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
 | 
					 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
 | 
					 | 
				
			||||||
    elif [ -f $File_ArchRelease ]; then
 | 
					    elif [ -f $File_ArchRelease ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_ARCH}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_ARCH}"
 | 
				
			||||||
    elif [ -f $File_AlpineRelease ]; then
 | 
					    elif [ -f $File_AlpineRelease ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_ALPINE}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_ALPINE}"
 | 
				
			||||||
    elif [ -s $File_RedHatRelease ]; then
 | 
					    elif [ -s $File_RedHatRelease ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
 | 
				
			||||||
 | 
					    elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
 | 
				
			||||||
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        Output_Error "无法判断当前运行环境,当前系统不在本脚本的支持范围内"
 | 
					        Output_Error "无法判断当前运行环境,当前系统不在本脚本的支持范围内"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -261,7 +261,7 @@ function EnvJudgment() {
 | 
				
			|||||||
        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
 | 
				
			||||||
                Output_Error "lsb-release 软件包安装失败\n        本脚本需要通过 lsb_release 指令判断系统具体类型和版本,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!"
 | 
					                Output_Error "lsb-release 软件包安装失败\n        本脚本需要通过 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        SYSTEM_JUDGMENT="$(lsb_release -is)"
 | 
					        SYSTEM_JUDGMENT="$(lsb_release -is)"
 | 
				
			||||||
@@ -316,18 +316,20 @@ function EnvJudgment() {
 | 
				
			|||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENSUSE}")
 | 
					    "${SYSTEM_OPENSUSE}")
 | 
				
			||||||
        if [[ "${SYSTEM_ID}" != "opensuse-leap" && "${SYSTEM_ID}" != "opensuse-tumbleweed" ]]; then
 | 
					        case "${SYSTEM_ID}" in
 | 
				
			||||||
            Output_Error "当前系统版本不在本脚本的支持范围内"
 | 
					        "opensuse-leap")
 | 
				
			||||||
        else
 | 
					            if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 15 ]]; then
 | 
				
			||||||
            if [[ "${SYSTEM_ID}" == "opensuse-leap" ]]; then
 | 
					                Output_Error "当前系统版本不在本脚本的支持范围内"
 | 
				
			||||||
                if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 15 ]]; then
 | 
					 | 
				
			||||||
                    Output_Error "当前系统版本不在本脚本的支持范围内"
 | 
					 | 
				
			||||||
                fi
 | 
					 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					            ;;
 | 
				
			||||||
 | 
					        "opensuse-tumbleweed") ;;
 | 
				
			||||||
 | 
					        *)
 | 
				
			||||||
 | 
					            Output_Error "当前系统不在本脚本的支持范围内"
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_KALI}" | "${SYSTEM_DEEPIN}" | "${SYSTEM_ARCH}" | "${SYSTEM_ALPINE}")
 | 
					    "${SYSTEM_KALI}" | "${SYSTEM_DEEPIN}" | "${SYSTEM_ARCH}" | "${SYSTEM_ALPINE}")
 | 
				
			||||||
        # 理论全部支持
 | 
					        # 理论全部支持或不作判断
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        Output_Error "当前系统不在本脚本的支持范围内"
 | 
					        Output_Error "当前系统不在本脚本的支持范围内"
 | 
				
			||||||
@@ -418,65 +420,43 @@ function EnvJudgment() {
 | 
				
			|||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 定义软件源同步/更新文字
 | 
					    ## 定义软件源更新文字
 | 
				
			||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        SYNC_TXT="更新"
 | 
					        SYNC_MIRROR_TEXT="更新软件源"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    "${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
 | 
				
			||||||
        SYNC_TXT="同步"
 | 
					        SYNC_MIRROR_TEXT="生成软件源缓存"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					    "${SYSTEM_OPENSUSE}")
 | 
				
			||||||
 | 
					        SYNC_MIRROR_TEXT="刷新软件源"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					    "${SYSTEM_ARCH}")
 | 
				
			||||||
 | 
					        SYNC_MIRROR_TEXT="同步软件源"
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					    "${SYSTEM_ALPINE}")
 | 
				
			||||||
 | 
					        SYNC_MIRROR_TEXT="更新软件源"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 命令选项兼容性判断
 | 
					## 命令选项兼容性判断
 | 
				
			||||||
function CheckCommandOptions() {
 | 
					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 "当前系统不支持使用 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}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_ALMALINUX}" ]]; then
 | 
					 | 
				
			||||||
            if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then
 | 
					 | 
				
			||||||
                Output_Error "当前系统不支持使用 vault 仓库相关命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        case "${SYSTEM_JUDGMENT}" in
 | 
					 | 
				
			||||||
        "${SYSTEM_FEDORA}")
 | 
					 | 
				
			||||||
            if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
 | 
					 | 
				
			||||||
                Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
        esac
 | 
					 | 
				
			||||||
        if [[ "${DEBIAN_CODENAME}" ]]; then
 | 
					 | 
				
			||||||
            Output_Error "当前系统不支持使用指定版本名称命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        ;;
 | 
					 | 
				
			||||||
    "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}" | "${SYSTEM_ARCH}" | "${SYSTEM_ALPINE}")
 | 
					 | 
				
			||||||
        if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then
 | 
					 | 
				
			||||||
            Output_Error "当前系统不支持使用 security 仓库相关命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then
 | 
					 | 
				
			||||||
            Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
 | 
					 | 
				
			||||||
            Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        if [[ "${DEBIAN_CODENAME}" ]]; then
 | 
					 | 
				
			||||||
            Output_Error "当前系统不支持使用指定版本名称命令选项,请确认后重试!"
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        ;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
    if [[ "${USE_ABROAD_SOURCE}" == "true" && "${USE_EDU_SOURCE}" == "true" ]]; then
 | 
					    if [[ "${USE_ABROAD_SOURCE}" == "true" && "${USE_EDU_SOURCE}" == "true" ]]; then
 | 
				
			||||||
        Output_Error "两种模式不可同时使用!"
 | 
					        Output_Error "两种模式不可同时使用!"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					    if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_DEBIAN}" ]] && [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then
 | 
				
			||||||
 | 
					        Output_Error "当前系统不支持使用 security 仓库相关命令选项,请确认后重试!"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if [[ "${SYSTEM_FACTIONS}" != "${SYSTEM_DEBIAN}" ]] && [[ "${DEBIAN_CODENAME}" ]]; then
 | 
				
			||||||
 | 
					        Output_Error "当前系统不支持使用指定版本代号命令选项,请确认后重试!"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if [[ "${SYSTEM_FACTIONS}" != "${SYSTEM_REDHAT}" || "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]] && [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
 | 
				
			||||||
 | 
					        Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_CENTOS}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_ALMALINUX}" ]] && [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then
 | 
				
			||||||
 | 
					        Output_Error "当前系统不支持使用 vault 仓库相关命令选项,请确认后重试!"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 选择软件源
 | 
					## 选择软件源
 | 
				
			||||||
@@ -701,31 +681,29 @@ function ChooseInstallEPEL() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 关闭防火墙和SELinux
 | 
					## 关闭防火墙和SELinux
 | 
				
			||||||
function CloseFirewall() {
 | 
					function CloseFirewall() {
 | 
				
			||||||
    function Main() {
 | 
					    if [ ! -x /usr/bin/systemctl ]; then
 | 
				
			||||||
        local SelinuxConfig=/etc/selinux/config
 | 
					        return
 | 
				
			||||||
        systemctl disable --now firewalld >/dev/null 2>&1
 | 
					    fi
 | 
				
			||||||
        [ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1
 | 
					    if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
 | 
				
			||||||
    }
 | 
					        if [[ -z "${CLOSE_FIREWALL}" ]]; then
 | 
				
			||||||
 | 
					            local CHOICE
 | 
				
			||||||
    if [ -x /usr/bin/systemctl ]; then
 | 
					            CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
				
			||||||
        if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
 | 
					            read -rp "${CHOICE}" INPUT
 | 
				
			||||||
            if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
 | 
					            [[ -z "${INPUT}" ]] && INPUT=Y
 | 
				
			||||||
                Main
 | 
					            case "${INPUT}" in
 | 
				
			||||||
            elif [[ -z "${CLOSE_FIREWALL}" ]]; then
 | 
					            [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
                local CHOICE
 | 
					                CLOSE_FIREWALL="true"
 | 
				
			||||||
                CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
					                ;;
 | 
				
			||||||
                read -rp "${CHOICE}" INPUT
 | 
					            [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                [[ -z "${INPUT}" ]] && INPUT=Y
 | 
					            *)
 | 
				
			||||||
                case "${INPUT}" in
 | 
					                echo -e "\n$WARN 输入错误,默认不关闭!"
 | 
				
			||||||
                [Yy] | [Yy][Ee][Ss])
 | 
					                ;;
 | 
				
			||||||
                    Main
 | 
					            esac
 | 
				
			||||||
                    ;;
 | 
					        fi
 | 
				
			||||||
                [Nn] | [Nn][Oo]) ;;
 | 
					        if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
 | 
				
			||||||
                *)
 | 
					            local SelinuxConfig=/etc/selinux/config
 | 
				
			||||||
                    echo -e "\n$WARN 输入错误,默认不关闭!"
 | 
					            systemctl disable --now firewalld >/dev/null 2>&1
 | 
				
			||||||
                    ;;
 | 
					            [ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1
 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -996,11 +974,11 @@ function ChangeMirrors() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 比较差异
 | 
					    ## 比较差异
 | 
				
			||||||
    if [[ "${PRINT_DIFF}" == true ]]; then
 | 
					    if [[ "${PRINT_DIFF}" == "true" ]]; then
 | 
				
			||||||
        PrintDiff
 | 
					        PrintDiff
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 软件源同步/更新
 | 
					    ## 更新软件源
 | 
				
			||||||
    echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n"
 | 
					    echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n"
 | 
				
			||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        apt-get update
 | 
					        apt-get update
 | 
				
			||||||
@@ -1019,12 +997,12 @@ function ChangeMirrors() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    if [ $? -eq 0 ]; then
 | 
					    if [ $? -eq 0 ]; then
 | 
				
			||||||
        echo -e "\n$COMPLETE 软件源更换完毕"
 | 
					        echo -e "\n$SUCCESS 软件源更换完毕"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e "\n$FAIL 软件源${SYNC_TXT}失败\n"
 | 
					        echo -e "\n$FAIL 软件源更换完毕,但${SYNC_MIRROR_TEXT}失败\n"
 | 
				
			||||||
        echo -e "请再次执行脚本并更换相同软件源后进行尝试,若仍然${SYNC_TXT}失败那么可能由以下原因导致"
 | 
					        echo -e "请再次执行脚本并更换相同软件源后进行尝试,若仍然${SYNC_MIRROR_TEXT}失败那么可能由以下原因导致"
 | 
				
			||||||
        echo -e "1. 网络问题:例如连接异常、网络间歇式中断、由地区影响的网络因素等"
 | 
					        echo -e "1. 网络问题:例如连接异常、由地区影响的网络间歇式中断等"
 | 
				
			||||||
        echo -e "2. 软件源问题:例如正在维护,或者出现罕见的文件同步出错导致软件源${SYNC_TXT}命令执行后返回错误状态,请前往镜像站对应路径验证"
 | 
					        echo -e "2. 软件源问题:建议更换其它镜像站进行尝试,少数情况下软件源若处于同步中状态则可能会出现文件同步错误问题"
 | 
				
			||||||
        echo -e "\n软件源地址:${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}\n"
 | 
					        echo -e "\n软件源地址:${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}\n"
 | 
				
			||||||
        exit 1
 | 
					        exit 1
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -1123,7 +1101,7 @@ function UpdateSoftware() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 运行结束
 | 
					## 运行结束
 | 
				
			||||||
function RunEnd() {
 | 
					function RunEnd() {
 | 
				
			||||||
    echo -e "\n$COMPLETE 脚本执行结束"
 | 
					    echo -e "\n------ 脚本执行结束 ------"
 | 
				
			||||||
    echo -e "\n\033[1;34mPowered by linuxmirrors.cn\033[0m\n"
 | 
					    echo -e "\n\033[1;34mPowered by linuxmirrors.cn\033[0m\n"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -4986,7 +4964,7 @@ function CommandOptions() {
 | 
				
			|||||||
  --branch                 指定软件源分支(路径)                              分支名
 | 
					  --branch                 指定软件源分支(路径)                              分支名
 | 
				
			||||||
  --branch-security        指定 Debian 的 security 软件源分支(路径)          分支名
 | 
					  --branch-security        指定 Debian 的 security 软件源分支(路径)          分支名
 | 
				
			||||||
  --branch-vault           指定 CentOS/AlmaLinux 的 vault 软件源分支(路径)   分支名
 | 
					  --branch-vault           指定 CentOS/AlmaLinux 的 vault 软件源分支(路径)   分支名
 | 
				
			||||||
  --codename               指定 Debian 系操作系统的版本名称                  版本名
 | 
					  --codename               指定 Debian 系操作系统的版本代号                  代号名称
 | 
				
			||||||
  --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
 | 
				
			||||||
@@ -5082,13 +5060,13 @@ function CommandOptions() {
 | 
				
			|||||||
                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
 | 
					                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        ## 指定 Debian 系操作系统的版本名称
 | 
					        ## 指定 Debian 系操作系统的版本代号
 | 
				
			||||||
        --codename)
 | 
					        --codename)
 | 
				
			||||||
            if [ "$2" ]; then
 | 
					            if [ "$2" ]; then
 | 
				
			||||||
                DEBIAN_CODENAME="$2"
 | 
					                DEBIAN_CODENAME="$2"
 | 
				
			||||||
                shift
 | 
					                shift
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本名称!"
 | 
					                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本代号!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        ## 优先使用内网地址
 | 
					        ## 优先使用内网地址
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2024-01-12
 | 
					## Modified: 2024-01-18
 | 
				
			||||||
## License: MIT
 | 
					## License: MIT
 | 
				
			||||||
## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
					## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Website: https://linuxmirrors.cn
 | 
					## Website: https://linuxmirrors.cn
 | 
				
			||||||
@@ -136,12 +136,11 @@ function EnvJudgment() {
 | 
				
			|||||||
    SYSTEM_VERSION_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_VERSION_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    ## 定义系统ID
 | 
					    ## 定义系统ID
 | 
				
			||||||
    SYSTEM_ID="$(cat $File_LinuxRelease | grep -E "^ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_ID="$(cat $File_LinuxRelease | grep -E "^ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    ## 判定当前系统派系(Debian/RedHat/openEuler/OpenCloudOS/openSUSE)
 | 
					    ## 判定当前系统派系
 | 
				
			||||||
    if [ -s $File_DebianVersion ]; then
 | 
					    if [ -s $File_DebianVersion ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
 | 
				
			||||||
    elif [ -s $File_OpenCloudOSRelease ]; then
 | 
					    elif [ -s $File_OpenCloudOSRelease ]; then
 | 
				
			||||||
        # OpenCloudOS 判断优先级需要高于 RedHat,因为8版本基于红帽而9版本不是
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:OpenCloudOS 判断优先级需要高于 RedHat,因为8版本基于红帽而9版本不是
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}"
 | 
					 | 
				
			||||||
    elif [ -s $File_openEulerRelease ]; then
 | 
					    elif [ -s $File_openEulerRelease ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
				
			||||||
    elif [ -s $File_RedHatRelease ]; then
 | 
					    elif [ -s $File_RedHatRelease ]; then
 | 
				
			||||||
@@ -155,7 +154,7 @@ function EnvJudgment() {
 | 
				
			|||||||
        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
 | 
				
			||||||
                Output_Error "lsb-release 软件包安装失败\n        本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!"
 | 
					                Output_Error "lsb-release 软件包安装失败\n        本脚本需要通过 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        SYSTEM_JUDGMENT="$(lsb_release -is)"
 | 
					        SYSTEM_JUDGMENT="$(lsb_release -is)"
 | 
				
			||||||
@@ -223,13 +222,13 @@ function EnvJudgment() {
 | 
				
			|||||||
        Output_Error "当前系统不在本脚本的支持范围内"
 | 
					        Output_Error "当前系统不在本脚本的支持范围内"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 定义软件源同步/更新文字
 | 
					    ## 定义软件源更新文字
 | 
				
			||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        SYNC_TXT="更新"
 | 
					        SYNC_MIRROR_TEXT="更新软件源"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    "${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
 | 
				
			||||||
        SYNC_TXT="同步"
 | 
					        SYNC_MIRROR_TEXT="生成软件源缓存"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -367,30 +366,29 @@ function ChooseMirrors() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 关闭防火墙和SELinux
 | 
					## 关闭防火墙和SELinux
 | 
				
			||||||
function CloseFirewall() {
 | 
					function CloseFirewall() {
 | 
				
			||||||
    function Main() {
 | 
					    if [ ! -x /usr/bin/systemctl ]; then
 | 
				
			||||||
        local SelinuxConfig=/etc/selinux/config
 | 
					        return
 | 
				
			||||||
        systemctl disable --now firewalld >/dev/null 2>&1
 | 
					    fi
 | 
				
			||||||
        [ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1
 | 
					    if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
 | 
				
			||||||
    }
 | 
					        if [[ -z "${CLOSE_FIREWALL}" ]]; then
 | 
				
			||||||
 | 
					            local CHOICE
 | 
				
			||||||
    if [ -x /usr/bin/systemctl ]; then
 | 
					            CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
				
			||||||
        if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
 | 
					            read -rp "${CHOICE}" INPUT
 | 
				
			||||||
            if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
 | 
					            [[ -z "${INPUT}" ]] && INPUT=Y
 | 
				
			||||||
                Main
 | 
					            case "${INPUT}" in
 | 
				
			||||||
            elif [[ -z "${CLOSE_FIREWALL}" ]]; then
 | 
					            [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
                local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
					                CLOSE_FIREWALL="true"
 | 
				
			||||||
                read -p "${CHOICE}" INPUT
 | 
					                ;;
 | 
				
			||||||
                [[ -z "${INPUT}" ]] && INPUT=Y
 | 
					            [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                case "${INPUT}" in
 | 
					            *)
 | 
				
			||||||
                [Yy] | [Yy][Ee][Ss])
 | 
					                echo -e "\n$WARN 输入错误,默认不关闭!"
 | 
				
			||||||
                    Main
 | 
					                ;;
 | 
				
			||||||
                    ;;
 | 
					            esac
 | 
				
			||||||
                [Nn] | [Nn][Oo]) ;;
 | 
					        fi
 | 
				
			||||||
                *)
 | 
					        if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
 | 
				
			||||||
                    echo -e "\n$WARN 输入错误,默认不关闭!"
 | 
					            local SelinuxConfig=/etc/selinux/config
 | 
				
			||||||
                    ;;
 | 
					            systemctl disable --now firewalld >/dev/null 2>&1
 | 
				
			||||||
                esac
 | 
					            [ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1
 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -407,7 +405,7 @@ function EnvironmentInstall() {
 | 
				
			|||||||
        rm -rf $Dir_YumRepos/*docker*.repo
 | 
					        rm -rf $Dir_YumRepos/*docker*.repo
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    echo -e "\n$WORKING 开始${SYNC_TXT}软件源...\n"
 | 
					    echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n"
 | 
				
			||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        apt-get update
 | 
					        apt-get update
 | 
				
			||||||
@@ -418,9 +416,9 @@ function EnvironmentInstall() {
 | 
				
			|||||||
    esac
 | 
					    esac
 | 
				
			||||||
    VERIFICATION_SOURCESYNC=$?
 | 
					    VERIFICATION_SOURCESYNC=$?
 | 
				
			||||||
    if [ ${VERIFICATION_SOURCESYNC} -ne 0 ]; then
 | 
					    if [ ${VERIFICATION_SOURCESYNC} -ne 0 ]; then
 | 
				
			||||||
        Output_Error "软件源${SYNC_TXT}出错,请先确保软件包管理工具可用!"
 | 
					        Output_Error "${SYNC_MIRROR_TEXT}出错,请先确保软件包管理工具可用!"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    echo -e "\n$COMPLETE 软件源${SYNC_TXT}结束\n"
 | 
					    echo -e "\n$COMPLETE ${SYNC_MIRROR_TEXT}结束\n"
 | 
				
			||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 | 
					        apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 | 
				
			||||||
@@ -460,7 +458,7 @@ function ConfigureDockerCEMirror() {
 | 
				
			|||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        ## 安装密钥
 | 
					        ## 安装密钥
 | 
				
			||||||
        apt-key del 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88 >/dev/null 2>&1 # 删除旧的密钥
 | 
					        apt-key del 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 >/dev/null 2>&1 # 删除旧的密钥
 | 
				
			||||||
        [ -f /etc/apt/keyrings/docker.gpg ] && rm -rf /etc/apt/keyrings/docker.gpg
 | 
					        [ -f /etc/apt/keyrings/docker.gpg ] && rm -rf /etc/apt/keyrings/docker.gpg
 | 
				
			||||||
        install -m 0755 -d /etc/apt/keyrings
 | 
					        install -m 0755 -d /etc/apt/keyrings
 | 
				
			||||||
        curl -fsSL https://${SOURCE}/linux/${SOURCE_BRANCH}/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg >/dev/null 2>&1
 | 
					        curl -fsSL https://${SOURCE}/linux/${SOURCE_BRANCH}/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg >/dev/null 2>&1
 | 
				
			||||||
@@ -700,7 +698,7 @@ function CheckVersion() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 运行结束
 | 
					## 运行结束
 | 
				
			||||||
function RunEnd() {
 | 
					function RunEnd() {
 | 
				
			||||||
    echo -e "\n$COMPLETE 脚本执行结束\n"
 | 
					    echo -e "\n------ 脚本执行结束 ------"
 | 
				
			||||||
    echo -e ' \033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m┐\033[0m'
 | 
					    echo -e ' \033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m┐\033[0m'
 | 
				
			||||||
    echo -e ' \033[0;1;31;91m│▞\033[0;1;33;93m▀▖\033[0m            \033[0;1;32;92m▙▗\033[0;1;36;96m▌\033[0m      \033[0;1;31;91m▗\033[0;1;33;93m▐\033[0m     \033[0;1;34;94m│\033[0m'
 | 
					    echo -e ' \033[0;1;31;91m│▞\033[0;1;33;93m▀▖\033[0m            \033[0;1;32;92m▙▗\033[0;1;36;96m▌\033[0m      \033[0;1;31;91m▗\033[0;1;33;93m▐\033[0m     \033[0;1;34;94m│\033[0m'
 | 
				
			||||||
    echo -e ' \033[0;1;33;93m│▚\033[0;1;32;92m▄\033[0m \033[0;1;36;96m▌\033[0m \033[0;1;34;94m▌▛\033[0;1;35;95m▀▖\033[0;1;31;91m▞▀\033[0;1;33;93m▖▙\033[0;1;32;92m▀▖\033[0;1;36;96m▌▘\033[0;1;34;94m▌▝\033[0;1;35;95m▀▖\033[0;1;31;91m▛▀\033[0;1;33;93m▖▄\033[0;1;32;92m▜▀\033[0m \033[0;1;36;96m▞\033[0;1;34;94m▀▖\033[0;1;35;95m│\033[0m'
 | 
					    echo -e ' \033[0;1;33;93m│▚\033[0;1;32;92m▄\033[0m \033[0;1;36;96m▌\033[0m \033[0;1;34;94m▌▛\033[0;1;35;95m▀▖\033[0;1;31;91m▞▀\033[0;1;33;93m▖▙\033[0;1;32;92m▀▖\033[0;1;36;96m▌▘\033[0;1;34;94m▌▝\033[0;1;35;95m▀▖\033[0;1;31;91m▛▀\033[0;1;33;93m▖▄\033[0;1;32;92m▜▀\033[0m \033[0;1;36;96m▞\033[0;1;34;94m▀▖\033[0;1;35;95m│\033[0m'
 | 
				
			||||||
@@ -719,7 +717,7 @@ function CommandOptions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  --source                 指定 Docker CE 源地址                     地址
 | 
					  --source                 指定 Docker CE 源地址                     地址
 | 
				
			||||||
  --source-registry        指定 Docker Registry 源地址               地址
 | 
					  --source-registry        指定 Docker Registry 源地址               地址
 | 
				
			||||||
  --codename               指定 Debian 系操作系统的版本名称          版本名
 | 
					  --codename               指定 Debian 系操作系统的版本代号          代号名称
 | 
				
			||||||
  --install-latested       控制是否安装最新版本的 Docker Engine      true 或 false
 | 
					  --install-latested       控制是否安装最新版本的 Docker Engine      true 或 false
 | 
				
			||||||
  --ignore-backup-tips     忽略覆盖备份提示                          无
 | 
					  --ignore-backup-tips     忽略覆盖备份提示                          无
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -758,13 +756,13 @@ function CommandOptions() {
 | 
				
			|||||||
                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
 | 
					                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        ## 指定 Debian 版本名称
 | 
					        ## 指定 Debian 版本代号
 | 
				
			||||||
        --codename)
 | 
					        --codename)
 | 
				
			||||||
            if [ "$2" ]; then
 | 
					            if [ "$2" ]; then
 | 
				
			||||||
                DEBIAN_CODENAME="$2"
 | 
					                DEBIAN_CODENAME="$2"
 | 
				
			||||||
                shift
 | 
					                shift
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本名称!"
 | 
					                Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定版本代号!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        ## 安装最新版本
 | 
					        ## 安装最新版本
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,7 +61,7 @@ bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
 | 
				
			|||||||
| :-: | :-: | :-: |
 | 
					| :-: | :-: | :-: |
 | 
				
			||||||
| `--source` | 指定 `Docker CE` 源地址(域名或IP) | 地址 |
 | 
					| `--source` | 指定 `Docker CE` 源地址(域名或IP) | 地址 |
 | 
				
			||||||
| `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 |
 | 
					| `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 |
 | 
				
			||||||
| `--codename` | 指定 Debian 系操作系统的版本名称 | 版本名 |
 | 
					| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 |
 | 
				
			||||||
| `--install-latested` | 控制是否安装最新版本的 Docker Engine | `true` 或 `false` |
 | 
					| `--install-latested` | 控制是否安装最新版本的 Docker Engine | `true` 或 `false` |
 | 
				
			||||||
| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
 | 
					| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
| `--branch` | 指定软件源分支(路径) | 分支名 |
 | 
					| `--branch` | 指定软件源分支(路径) | 分支名 |
 | 
				
			||||||
| `--branch-security` | 指定 Debian 的 security 软件源分支(路径) | 分支名 |
 | 
					| `--branch-security` | 指定 Debian 的 security 软件源分支(路径) | 分支名 |
 | 
				
			||||||
| `--branch-vault` | 指定 CentOS/AlmaLinux 的 vault 软件源分支(路径) | 分支名 |
 | 
					| `--branch-vault` | 指定 CentOS/AlmaLinux 的 vault 软件源分支(路径) | 分支名 |
 | 
				
			||||||
| `--codename` | 指定 Debian 系操作系统的版本名称 | 版本名 |
 | 
					| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 |
 | 
				
			||||||
| `--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` |
 | 
				
			||||||
@@ -146,7 +146,7 @@ bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
 | 
				
			|||||||
bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
 | 
					bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
 | 
				
			||||||
  --codename bookworm
 | 
					  --codename bookworm
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
更换软件源后还需要执行系统更新命令才能实现更新操作,并且建议在更新完成并重启系统后重新执行本换源脚本,因为仅更换软件源配置中的系统版本名称可能会在后期使用时产生一些兼容性问题
 | 
					更换软件源后还需要执行系统更新命令才能实现更新操作,并且建议在更新完成并重启系统后重新执行本换源脚本,因为仅更换软件源配置中的系统版本代号可能会在后期使用时产生一些兼容性问题
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 无人值守
 | 
					## 无人值守
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user