mirror of
				https://gitee.com/SuperManito/LinuxMirrors
				synced 2025-11-04 08:20:28 +08:00 
			
		
		
		
	优化 & bug fix
This commit is contained in:
		
							
								
								
									
										158
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							
							
						
						
									
										158
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2025-03-23
 | 
					## Modified: 2025-04-01
 | 
				
			||||||
## License: MIT
 | 
					## License: MIT
 | 
				
			||||||
## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
					## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Website: https://linuxmirrors.cn
 | 
					## Website: https://linuxmirrors.cn
 | 
				
			||||||
@@ -640,9 +640,9 @@ function collect_system_info() {
 | 
				
			|||||||
    SYSTEM_NAME="$(cat $File_LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_NAME="$(cat $File_LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    grep -q "PRETTY_NAME=" $File_LinuxRelease && SYSTEM_PRETTY_NAME="$(cat $File_LinuxRelease | grep -E "^PRETTY_NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    grep -q "PRETTY_NAME=" $File_LinuxRelease && SYSTEM_PRETTY_NAME="$(cat $File_LinuxRelease | grep -E "^PRETTY_NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    ## 定义系统版本号
 | 
					    ## 定义系统版本号
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_VERSION_ID="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER_MAJOR="${SYSTEM_VERSION_NUMBER%.*}"
 | 
					    SYSTEM_VERSION_ID_MAJOR="${SYSTEM_VERSION_ID%.*}"
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER_MINOR="${SYSTEM_VERSION_NUMBER#*.}"
 | 
					    SYSTEM_VERSION_ID_MINOR="${SYSTEM_VERSION_ID#*.}"
 | 
				
			||||||
    ## 定义系统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")"
 | 
				
			||||||
    ## 判定当前系统派系
 | 
					    ## 判定当前系统派系
 | 
				
			||||||
@@ -677,6 +677,7 @@ function collect_system_info() {
 | 
				
			|||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
 | 
					    "${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
 | 
				
			||||||
        if ! command -v lsb_release &>/dev/null; then
 | 
					        if ! command -v lsb_release &>/dev/null; then
 | 
				
			||||||
 | 
					            apt-get update
 | 
				
			||||||
            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\n本脚本依赖 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
					                output_error "lsb-release 软件包安装失败\n\n本脚本依赖 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
				
			||||||
@@ -689,6 +690,14 @@ function collect_system_info() {
 | 
				
			|||||||
            SYSTEM_JUDGMENT="${SYSTEM_RASPBERRY_PI_OS}"
 | 
					            SYSTEM_JUDGMENT="${SYSTEM_RASPBERRY_PI_OS}"
 | 
				
			||||||
            SYSTEM_PRETTY_NAME="${SYSTEM_RASPBERRY_PI_OS}"
 | 
					            SYSTEM_PRETTY_NAME="${SYSTEM_RASPBERRY_PI_OS}"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
 | 
					        # Debian 尚未正式发布的版本
 | 
				
			||||||
 | 
					        if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_DEBIAN}" ]] && [[ -z "${SYSTEM_VERSION_ID}" ]]; then
 | 
				
			||||||
 | 
					            if [[ "${SYSTEM_VERSION_CODENAME}" == "trixie" ]]; then
 | 
				
			||||||
 | 
					                SYSTEM_VERSION_ID="13"
 | 
				
			||||||
 | 
					                SYSTEM_VERSION_ID_MAJOR="${SYSTEM_VERSION_ID%.*}"
 | 
				
			||||||
 | 
					                SYSTEM_VERSION_ID_MINOR="${SYSTEM_VERSION_ID#*.}"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_REDHAT}")
 | 
					    "${SYSTEM_REDHAT}")
 | 
				
			||||||
        SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
 | 
					        SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
 | 
				
			||||||
@@ -706,59 +715,64 @@ function collect_system_info() {
 | 
				
			|||||||
    local is_supported="true"
 | 
					    local is_supported="true"
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" -lt 8 || "${SYSTEM_VERSION_NUMBER_MAJOR}" -gt 13 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" =~ ^[0-9]{1,2}$ ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            if [[ "${SYSTEM_VERSION_ID_MAJOR}" -lt 8 || "${SYSTEM_VERSION_ID_MAJOR}" -gt 13 ]]; then
 | 
				
			||||||
 | 
					                is_supported="false"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        if [[ "${SYSTEM_VERSION_CODENAME}" == "sid" ]]; then
 | 
				
			||||||
 | 
					            echo -e "\n${WARN} 检测到当前系统为 ${BLUE}unstable(sid)${PLAIN} 版本,可能会产生一些无法预料的问题。\n"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_UBUNTU}")
 | 
					    "${SYSTEM_UBUNTU}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" -lt 14 || "${SYSTEM_VERSION_NUMBER_MAJOR}" -gt 24 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" -lt 14 || "${SYSTEM_VERSION_ID_MAJOR}" -gt 24 ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_LINUX_MINT}")
 | 
					    "${SYSTEM_LINUX_MINT}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != 19 && "${SYSTEM_VERSION_NUMBER_MAJOR}" != 2[0-2] && "${SYSTEM_VERSION_NUMBER_MAJOR}" != 6 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != 19 && "${SYSTEM_VERSION_ID_MAJOR}" != 2[0-2] && "${SYSTEM_VERSION_ID_MAJOR}" != 6 ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_RHEL}")
 | 
					    "${SYSTEM_RHEL}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != [7-9] ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [7-9] ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_CENTOS}")
 | 
					    "${SYSTEM_CENTOS}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != [7-8] ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [7-8] ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}")
 | 
					    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != [8-9] && "${SYSTEM_VERSION_NUMBER_MAJOR}" != 10 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [8-9] && "${SYSTEM_VERSION_ID_MAJOR}" != 10 ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_FEDORA}")
 | 
					    "${SYSTEM_FEDORA}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER}" != [3-4][0-9] ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID}" != [3-4][0-9] ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENEULER}")
 | 
					    "${SYSTEM_OPENEULER}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != 2[1-4] ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != 2[1-4] ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENCLOUDOS}")
 | 
					    "${SYSTEM_OPENCLOUDOS}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != [8-9] && "${SYSTEM_VERSION_NUMBER_MAJOR}" != 23 ]] || [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" == 8 && "$SYSTEM_VERSION_NUMBER_MINOR" -lt 6 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [8-9] && "${SYSTEM_VERSION_ID_MAJOR}" != 23 ]] || [[ "${SYSTEM_VERSION_ID_MAJOR}" == 8 && "${SYSTEM_VERSION_ID_MINOR}" -lt 6 ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ANOLISOS}")
 | 
					    "${SYSTEM_ANOLISOS}")
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != 8 && "${SYSTEM_VERSION_NUMBER_MAJOR}" != 23 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" != 8 && "${SYSTEM_VERSION_ID_MAJOR}" != 23 ]]; then
 | 
				
			||||||
            is_supported="false"
 | 
					            is_supported="false"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENSUSE}")
 | 
					    "${SYSTEM_OPENSUSE}")
 | 
				
			||||||
        case "${SYSTEM_ID}" in
 | 
					        case "${SYSTEM_ID}" in
 | 
				
			||||||
        "opensuse-leap")
 | 
					        "opensuse-leap")
 | 
				
			||||||
            if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" != 15 ]]; then
 | 
					            if [[ "${SYSTEM_VERSION_ID_MAJOR}" != 15 ]]; then
 | 
				
			||||||
                is_supported="false"
 | 
					                is_supported="false"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
@@ -780,7 +794,7 @@ function collect_system_info() {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 判定系统处理器架构
 | 
					    ## 判定系统处理器架构
 | 
				
			||||||
    DEVICE_ARCH_RAW="$(uname -m)"
 | 
					    DEVICE_ARCH_RAW="$(uname -m)"
 | 
				
			||||||
    case "${DEVICE_ARCH_ORIGIN}" in
 | 
					    case "${DEVICE_ARCH_RAW}" in
 | 
				
			||||||
    x86_64)
 | 
					    x86_64)
 | 
				
			||||||
        DEVICE_ARCH="x86_64"
 | 
					        DEVICE_ARCH="x86_64"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
@@ -814,7 +828,7 @@ function collect_system_info() {
 | 
				
			|||||||
        ## 处理特殊的仓库名称
 | 
					        ## 处理特殊的仓库名称
 | 
				
			||||||
        case "${SYSTEM_JUDGMENT}" in
 | 
					        case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
        "${SYSTEM_DEBIAN}")
 | 
					        "${SYSTEM_DEBIAN}")
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            8 | 9 | 10)
 | 
					            8 | 9 | 10)
 | 
				
			||||||
                SOURCE_BRANCH="debian-archive" # EOF
 | 
					                SOURCE_BRANCH="debian-archive" # EOF
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -824,7 +838,7 @@ function collect_system_info() {
 | 
				
			|||||||
            esac
 | 
					            esac
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_UBUNTU}" | "${SYSTEM_ZORIN}")
 | 
					        "${SYSTEM_UBUNTU}" | "${SYSTEM_ZORIN}")
 | 
				
			||||||
            if [[ "${DEVICE_ARCH}" == "x86_64" || "${DEVICE_ARCH}" == *i?86* ]]; then
 | 
					            if [[ "${DEVICE_ARCH_RAW}" == "x86_64" || "${DEVICE_ARCH_RAW}" == *i?86* ]]; then
 | 
				
			||||||
                SOURCE_BRANCH="ubuntu"
 | 
					                SOURCE_BRANCH="ubuntu"
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                SOURCE_BRANCH="ubuntu-ports"
 | 
					                SOURCE_BRANCH="ubuntu-ports"
 | 
				
			||||||
@@ -834,7 +848,7 @@ function collect_system_info() {
 | 
				
			|||||||
            SOURCE_BRANCH="raspberrypi"
 | 
					            SOURCE_BRANCH="raspberrypi"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_RHEL}")
 | 
					        "${SYSTEM_RHEL}")
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            9)
 | 
					            9)
 | 
				
			||||||
                SOURCE_BRANCH="centos-stream" # 使用 CentOS Stream 仓库
 | 
					                SOURCE_BRANCH="centos-stream" # 使用 CentOS Stream 仓库
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -844,7 +858,7 @@ function collect_system_info() {
 | 
				
			|||||||
            esac
 | 
					            esac
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_CENTOS}")
 | 
					        "${SYSTEM_CENTOS}")
 | 
				
			||||||
            if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
 | 
					            if [[ "${DEVICE_ARCH_RAW}" == "x86_64" ]]; then
 | 
				
			||||||
                SOURCE_BRANCH="centos-vault" # EOF
 | 
					                SOURCE_BRANCH="centos-vault" # EOF
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                SOURCE_BRANCH="centos-altarch"
 | 
					                SOURCE_BRANCH="centos-altarch"
 | 
				
			||||||
@@ -852,9 +866,9 @@ function collect_system_info() {
 | 
				
			|||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_CENTOS_STREAM}")
 | 
					        "${SYSTEM_CENTOS_STREAM}")
 | 
				
			||||||
            # 自 CentOS Stream 9 开始使用 centos-stream 仓库,旧版本使用 centos 仓库
 | 
					            # 自 CentOS Stream 9 开始使用 centos-stream 仓库,旧版本使用 centos 仓库
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            8)
 | 
					            8)
 | 
				
			||||||
                if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then
 | 
					                if [[ "${DEVICE_ARCH_RAW}" == "x86_64" ]]; then
 | 
				
			||||||
                    SOURCE_BRANCH="centos-vault" # EOF
 | 
					                    SOURCE_BRANCH="centos-vault" # EOF
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    SOURCE_BRANCH="centos-altarch"
 | 
					                    SOURCE_BRANCH="centos-altarch"
 | 
				
			||||||
@@ -866,12 +880,12 @@ function collect_system_info() {
 | 
				
			|||||||
            esac
 | 
					            esac
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_FEDORA}")
 | 
					        "${SYSTEM_FEDORA}")
 | 
				
			||||||
            if [[ "${SYSTEM_VERSION_NUMBER}" -lt 39 ]]; then
 | 
					            if [[ "${SYSTEM_VERSION_ID}" -lt 39 ]]; then
 | 
				
			||||||
                SOURCE_BRANCH="fedora-archive"
 | 
					                SOURCE_BRANCH="fedora-archive"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        "${SYSTEM_ARCH}")
 | 
					        "${SYSTEM_ARCH}")
 | 
				
			||||||
            if [[ "${DEVICE_ARCH}" == "x86_64" || "${DEVICE_ARCH}" == *i?86* ]]; then
 | 
					            if [[ "${DEVICE_ARCH_RAW}" == "x86_64" || "${DEVICE_ARCH_RAW}" == *i?86* ]]; then
 | 
				
			||||||
                SOURCE_BRANCH="archlinux"
 | 
					                SOURCE_BRANCH="archlinux"
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                SOURCE_BRANCH="archlinuxarm"
 | 
					                SOURCE_BRANCH="archlinuxarm"
 | 
				
			||||||
@@ -1045,7 +1059,7 @@ function choose_mirrors() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function print_title() {
 | 
					    function print_title() {
 | 
				
			||||||
        local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
 | 
					        local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_ID}"}"
 | 
				
			||||||
        local arch="${DEVICE_ARCH}"
 | 
					        local arch="${DEVICE_ARCH}"
 | 
				
			||||||
        local date_time time_zone
 | 
					        local date_time time_zone
 | 
				
			||||||
        date_time="$(date "+%Y-%m-%d %H:%M")"
 | 
					        date_time="$(date "+%Y-%m-%d %H:%M")"
 | 
				
			||||||
@@ -1215,7 +1229,6 @@ function backup_original_mirrors() {
 | 
				
			|||||||
        ## 判断是否存在源文件
 | 
					        ## 判断是否存在源文件
 | 
				
			||||||
        [ -f "${target_file}" ] || touch "${target_file}"
 | 
					        [ -f "${target_file}" ] || touch "${target_file}"
 | 
				
			||||||
        if [ ! -s "${target_file}" ]; then
 | 
					        if [ ! -s "${target_file}" ]; then
 | 
				
			||||||
            echo -e ''
 | 
					 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ## 判断是否存在已备份的源文件
 | 
					        ## 判断是否存在已备份的源文件
 | 
				
			||||||
@@ -1420,7 +1433,7 @@ function remove_original_mirrors() {
 | 
				
			|||||||
            fi
 | 
					            fi
 | 
				
			||||||
            case "${SYSTEM_JUDGMENT}" in
 | 
					            case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
            "${SYSTEM_RHEL}")
 | 
					            "${SYSTEM_RHEL}")
 | 
				
			||||||
                case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					                case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
                9)
 | 
					                9)
 | 
				
			||||||
                    rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
 | 
					                    rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
@@ -1441,7 +1454,7 @@ function remove_original_mirrors() {
 | 
				
			|||||||
                fi
 | 
					                fi
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
            "${SYSTEM_CENTOS_STREAM}")
 | 
					            "${SYSTEM_CENTOS_STREAM}")
 | 
				
			||||||
                case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					                case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
                9 | 10)
 | 
					                9 | 10)
 | 
				
			||||||
                    rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
 | 
					                    rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
@@ -1451,7 +1464,7 @@ function remove_original_mirrors() {
 | 
				
			|||||||
                esac
 | 
					                esac
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
            "${SYSTEM_ROCKY}")
 | 
					            "${SYSTEM_ROCKY}")
 | 
				
			||||||
                case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					                case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
                9)
 | 
					                9)
 | 
				
			||||||
                    rm -rf $Dir_YumRepos/rocky*
 | 
					                    rm -rf $Dir_YumRepos/rocky*
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
@@ -1832,7 +1845,7 @@ deb ${1} ${2}-security ${3}
 | 
				
			|||||||
    local base_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}"
 | 
					    local base_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}"
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER}" in
 | 
					        case "${SYSTEM_VERSION_ID}" in
 | 
				
			||||||
        8 | 9 | 10 | 11)
 | 
					        8 | 9 | 10 | 11)
 | 
				
			||||||
            repository_sections="main contrib non-free"
 | 
					            repository_sections="main contrib non-free"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
@@ -1847,7 +1860,8 @@ $(gen_debian_source "${base_url}" "${SYSTEM_VERSION_CODENAME}" "${repository_sec
 | 
				
			|||||||
            base_url="${WEB_PROTOCOL}://${SOURCE_SECURITY:-"${SOURCE}"}/${SOURCE_SECURITY_BRANCH:-"${SOURCE_BRANCH}-security"}"
 | 
					            base_url="${WEB_PROTOCOL}://${SOURCE_SECURITY:-"${SOURCE}"}/${SOURCE_SECURITY_BRANCH:-"${SOURCE_BRANCH}-security"}"
 | 
				
			||||||
            echo "$(gen_debian_security_source "${base_url}" "${SYSTEM_VERSION_CODENAME}" "${repository_sections}")" >>$File_DebianSourceList
 | 
					            echo "$(gen_debian_security_source "${base_url}" "${SYSTEM_VERSION_CODENAME}" "${repository_sections}")" >>$File_DebianSourceList
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            echo "deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
					            echo "${tips}
 | 
				
			||||||
 | 
					deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
				
			||||||
# deb-src ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_DebianSourceList
 | 
					# deb-src ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_DebianSourceList
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
@@ -1863,9 +1877,13 @@ deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
				
			|||||||
# deb-src ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_DebianSourceList
 | 
					# deb-src ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_DebianSourceList
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_DEEPIN}")
 | 
					    "${SYSTEM_DEEPIN}")
 | 
				
			||||||
        repository_sections="apricot main contrib non-free"
 | 
					        if [[ "${SYSTEM_VERSION_ID}" == "25" ]]; then
 | 
				
			||||||
 | 
					            repository_sections="main commercial community"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            repository_sections="main contrib non-free"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
        echo "${tips}
 | 
					        echo "${tips}
 | 
				
			||||||
deb ${base_url} ${repository_sections}
 | 
					deb ${base_url}/${SYSTEM_VERSION_CODENAME} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
				
			||||||
# deb-src ${base_url} ${repository_sections}" >>$File_DebianSourceList
 | 
					# deb-src ${base_url} ${repository_sections}" >>$File_DebianSourceList
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_LINUX_MINT}")
 | 
					    "${SYSTEM_LINUX_MINT}")
 | 
				
			||||||
@@ -1875,7 +1893,7 @@ deb ${base_url} ${repository_sections}
 | 
				
			|||||||
deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_LinuxMintSourceList
 | 
					deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_LinuxMintSourceList
 | 
				
			||||||
        ## 底层系统软件源
 | 
					        ## 底层系统软件源
 | 
				
			||||||
        local base_system_branch base_system_codename
 | 
					        local base_system_branch base_system_codename
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER}" == 6 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID}" == 6 ]]; then
 | 
				
			||||||
            # Debian 版(LMDE)
 | 
					            # Debian 版(LMDE)
 | 
				
			||||||
            base_system_branch="debian"
 | 
					            base_system_branch="debian"
 | 
				
			||||||
            base_system_codename="bookworm"
 | 
					            base_system_codename="bookworm"
 | 
				
			||||||
@@ -1887,12 +1905,12 @@ deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}" >>$File_Linux
 | 
				
			|||||||
            echo "$(gen_debian_security_source "${base_url}" "${base_system_codename}" "${repository_sections}")" >>$File_LinuxMintSourceList
 | 
					            echo "$(gen_debian_security_source "${base_url}" "${base_system_codename}" "${repository_sections}")" >>$File_LinuxMintSourceList
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            # Ubuntu 版
 | 
					            # Ubuntu 版
 | 
				
			||||||
            if [[ "${DEVICE_ARCH}" == "x86_64" || "${DEVICE_ARCH}" == *i?86* ]]; then
 | 
					            if [[ "${DEVICE_ARCH_RAW}" == "x86_64" || "${DEVICE_ARCH_RAW}" == *i?86* ]]; then
 | 
				
			||||||
                base_system_branch="ubuntu"
 | 
					                base_system_branch="ubuntu"
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                base_system_branch="ubuntu-ports"
 | 
					                base_system_branch="ubuntu-ports"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            22)
 | 
					            22)
 | 
				
			||||||
                base_system_codename="noble"
 | 
					                base_system_codename="noble"
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -1926,7 +1944,7 @@ deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
				
			|||||||
        local base_system_branch base_system_codename
 | 
					        local base_system_branch base_system_codename
 | 
				
			||||||
        case "${DEVICE_ARCH_RAW}" in
 | 
					        case "${DEVICE_ARCH_RAW}" in
 | 
				
			||||||
        x86_64 | aarch64)
 | 
					        x86_64 | aarch64)
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            8 | 9 | 10)
 | 
					            8 | 9 | 10)
 | 
				
			||||||
                base_system_branch="debian-archive" # EOF
 | 
					                base_system_branch="debian-archive" # EOF
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -1935,7 +1953,7 @@ deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections}
 | 
				
			|||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
            esac
 | 
					            esac
 | 
				
			||||||
            base_system_codename="${SYSTEM_VERSION_CODENAME}"
 | 
					            base_system_codename="${SYSTEM_VERSION_CODENAME}"
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER}" in
 | 
					            case "${SYSTEM_VERSION_ID}" in
 | 
				
			||||||
            8 | 9 | 10 | 11)
 | 
					            8 | 9 | 10 | 11)
 | 
				
			||||||
                repository_sections="main contrib non-free"
 | 
					                repository_sections="main contrib non-free"
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
@@ -1992,35 +2010,35 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
    ## 生成 repo 源文件
 | 
					    ## 生成 repo 源文件
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_RHEL}")
 | 
					    "${SYSTEM_RHEL}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9 | 10)
 | 
					        9 | 10)
 | 
				
			||||||
            gen_repo_files_CentOSStream "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					            gen_repo_files_CentOSStream "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            gen_repo_files_CentOS "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					            gen_repo_files_CentOS "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_CENTOS}")
 | 
					    "${SYSTEM_CENTOS}")
 | 
				
			||||||
        gen_repo_files_CentOS "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        gen_repo_files_CentOS "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_CENTOS_STREAM}")
 | 
					    "${SYSTEM_CENTOS_STREAM}")
 | 
				
			||||||
        gen_repo_files_CentOSStream "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        gen_repo_files_CentOSStream "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ROCKY}")
 | 
					    "${SYSTEM_ROCKY}")
 | 
				
			||||||
        gen_repo_files_RockyLinux "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        gen_repo_files_RockyLinux "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ALMALINUX}")
 | 
					    "${SYSTEM_ALMALINUX}")
 | 
				
			||||||
        gen_repo_files_AlmaLinux "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        gen_repo_files_AlmaLinux "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_FEDORA}")
 | 
					    "${SYSTEM_FEDORA}")
 | 
				
			||||||
        gen_repo_files_Fedora "${SYSTEM_VERSION_NUMBER}"
 | 
					        gen_repo_files_Fedora "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENCLOUDOS}")
 | 
					    "${SYSTEM_OPENCLOUDOS}")
 | 
				
			||||||
        gen_repo_files_OpenCloudOS "${SYSTEM_VERSION_NUMBER}"
 | 
					        gen_repo_files_OpenCloudOS "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ANOLISOS}")
 | 
					    "${SYSTEM_ANOLISOS}")
 | 
				
			||||||
        gen_repo_files_AnolisOS "${SYSTEM_VERSION_NUMBER}"
 | 
					        gen_repo_files_AnolisOS "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 使用官方源
 | 
					    ## 使用官方源
 | 
				
			||||||
@@ -2033,7 +2051,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
    cd $Dir_YumRepos
 | 
					    cd $Dir_YumRepos
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_RHEL}")
 | 
					    "${SYSTEM_RHEL}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9)
 | 
					        9)
 | 
				
			||||||
            sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
					            sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
                -e "s|^metalink=|#metalink=|g" \
 | 
					                -e "s|^metalink=|#metalink=|g" \
 | 
				
			||||||
@@ -2050,7 +2068,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        *)
 | 
					        *)
 | 
				
			||||||
            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-*
 | 
					            sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            8)
 | 
					            8)
 | 
				
			||||||
                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/\$releasever/8.5.2111/g" CentOS-*
 | 
					                sed -i "s/\$releasever/8.5.2111/g" CentOS-*
 | 
				
			||||||
@@ -2072,7 +2090,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        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-*
 | 
					        sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
 | 
				
			||||||
        ## CentOS 7/8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本
 | 
					        ## CentOS 7/8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        8)
 | 
					        8)
 | 
				
			||||||
            # 最终版本为 8.5.2011,从 2022-02 开始切换至 centos-vault 仓库
 | 
					            # 最终版本为 8.5.2011,从 2022-02 开始切换至 centos-vault 仓库
 | 
				
			||||||
            sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH:-"centos-vault"}|g" CentOS-*
 | 
					            sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH:-"centos-vault"}|g" CentOS-*
 | 
				
			||||||
@@ -2089,7 +2107,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
 | 
					        sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-*
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_CENTOS_STREAM}")
 | 
					    "${SYSTEM_CENTOS_STREAM}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9 | 10)
 | 
					        9 | 10)
 | 
				
			||||||
            sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
					            sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
                -e "s|^metalink=|#metalink=|g" \
 | 
					                -e "s|^metalink=|#metalink=|g" \
 | 
				
			||||||
@@ -2109,7 +2127,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        esac
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ROCKY}")
 | 
					    "${SYSTEM_ROCKY}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9)
 | 
					        9)
 | 
				
			||||||
            sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
 | 
					            sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
                -e "s|^mirrorlist=|#mirrorlist=|g" \
 | 
					                -e "s|^mirrorlist=|#mirrorlist=|g" \
 | 
				
			||||||
@@ -2130,7 +2148,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        esac
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ALMALINUX}")
 | 
					    "${SYSTEM_ALMALINUX}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9)
 | 
					        9)
 | 
				
			||||||
            sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
 | 
					            sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
                -e "s|^mirrorlist=|#mirrorlist=|g" \
 | 
					                -e "s|^mirrorlist=|#mirrorlist=|g" \
 | 
				
			||||||
@@ -2160,7 +2178,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
    "${SYSTEM_FEDORA}")
 | 
					    "${SYSTEM_FEDORA}")
 | 
				
			||||||
        # 自 Fedora 39 起不再使用 modular 仓库
 | 
					        # 自 Fedora 39 起不再使用 modular 仓库
 | 
				
			||||||
        local fedora_repo_files="fedora.repo fedora-updates.repo fedora-updates-testing.repo"
 | 
					        local fedora_repo_files="fedora.repo fedora-updates.repo fedora-updates-testing.repo"
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER}" -lt 39 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID}" -lt 39 ]]; then
 | 
				
			||||||
            fedora_repo_files="${fedora_repo_files} fedora-modular.repo fedora-updates-modular.repo fedora-updates-testing-modular.repo"
 | 
					            fedora_repo_files="${fedora_repo_files} fedora-modular.repo fedora-updates-modular.repo fedora-updates-testing-modular.repo"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        sed -e "s|^metalink=|#metalink=|g" \
 | 
					        sed -e "s|^metalink=|#metalink=|g" \
 | 
				
			||||||
@@ -2170,7 +2188,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
            $fedora_repo_files
 | 
					            $fedora_repo_files
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_OPENCLOUDOS}")
 | 
					    "${SYSTEM_OPENCLOUDOS}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        8)
 | 
					        8)
 | 
				
			||||||
            sed -e "s|^baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
					            sed -e "s|^baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
                -e "s|mirrors.opencloudos.tech/opencloudos|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
					                -e "s|mirrors.opencloudos.tech/opencloudos|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
				
			||||||
@@ -2183,7 +2201,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_ANOLISOS}")
 | 
					    "${SYSTEM_ANOLISOS}")
 | 
				
			||||||
        # Anolis OS 仓库配置特殊,baseurl 同时使用 http 和 https 协议,gpgkey 同时使用软件源仓库远程路径和本地路径
 | 
					        # Anolis OS 仓库配置特殊,baseurl 同时使用 http 和 https 协议,gpgkey 同时使用软件源仓库远程路径和本地路径
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        8)
 | 
					        8)
 | 
				
			||||||
            sed -e "s|http\(s\)\?://mirrors.openanolis.cn/anolis|${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
					            sed -e "s|http\(s\)\?://mirrors.openanolis.cn/anolis|${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
				
			||||||
                -i \
 | 
					                -i \
 | 
				
			||||||
@@ -2199,7 +2217,7 @@ function change_mirrors_RedHat() {
 | 
				
			|||||||
## 更换 OpenCloudOS 发行版软件源
 | 
					## 更换 OpenCloudOS 发行版软件源
 | 
				
			||||||
function change_mirrors_OpenCloudOS() {
 | 
					function change_mirrors_OpenCloudOS() {
 | 
				
			||||||
    ## 生成 repo 源文件
 | 
					    ## 生成 repo 源文件
 | 
				
			||||||
    gen_repo_files_OpenCloudOS "${SYSTEM_VERSION_NUMBER}"
 | 
					    gen_repo_files_OpenCloudOS "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
    ## 使用官方源
 | 
					    ## 使用官方源
 | 
				
			||||||
    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
					    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
@@ -2207,7 +2225,7 @@ function change_mirrors_OpenCloudOS() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ## 修改源
 | 
					    ## 修改源
 | 
				
			||||||
    cd $Dir_YumRepos
 | 
					    cd $Dir_YumRepos
 | 
				
			||||||
    if [[ "${SYSTEM_VERSION_NUMBER}" == 23 ]]; then
 | 
					    if [[ "${SYSTEM_VERSION_ID}" == 23 ]]; then
 | 
				
			||||||
        sed -e "s|^baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
					        sed -e "s|^baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
 | 
				
			||||||
            -e "s|mirrors.opencloudos.tech/opencloudos-stream|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
					            -e "s|mirrors.opencloudos.tech/opencloudos-stream|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
				
			||||||
            -i \
 | 
					            -i \
 | 
				
			||||||
@@ -2245,7 +2263,7 @@ function change_mirrors_openEuler() {
 | 
				
			|||||||
## 更换 Anolis OS 发行版软件源
 | 
					## 更换 Anolis OS 发行版软件源
 | 
				
			||||||
function change_mirrors_AnolisOS() {
 | 
					function change_mirrors_AnolisOS() {
 | 
				
			||||||
    ## 生成 repo 源文件
 | 
					    ## 生成 repo 源文件
 | 
				
			||||||
    gen_repo_files_AnolisOS "${SYSTEM_VERSION_NUMBER}"
 | 
					    gen_repo_files_AnolisOS "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
    ## 使用官方源
 | 
					    ## 使用官方源
 | 
				
			||||||
    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
					    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
@@ -2254,7 +2272,7 @@ function change_mirrors_AnolisOS() {
 | 
				
			|||||||
    ## 修改源
 | 
					    ## 修改源
 | 
				
			||||||
    cd $Dir_YumRepos
 | 
					    cd $Dir_YumRepos
 | 
				
			||||||
    # Anolis OS 仓库配置特殊,baseurl 同时使用 http 和 https 协议,gpgkey 同时使用软件源仓库远程路径和本地路径
 | 
					    # Anolis OS 仓库配置特殊,baseurl 同时使用 http 和 https 协议,gpgkey 同时使用软件源仓库远程路径和本地路径
 | 
				
			||||||
    case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					    case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
    23)
 | 
					    23)
 | 
				
			||||||
        sed -e "s|http\(s\)\?://mirrors.openanolis.cn/anolis|${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
					        sed -e "s|http\(s\)\?://mirrors.openanolis.cn/anolis|${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
				
			||||||
            -i \
 | 
					            -i \
 | 
				
			||||||
@@ -2275,7 +2293,7 @@ function change_mirrors_openSUSE() {
 | 
				
			|||||||
    ## 生成 repo 源文件
 | 
					    ## 生成 repo 源文件
 | 
				
			||||||
    case "${SYSTEM_ID}" in
 | 
					    case "${SYSTEM_ID}" in
 | 
				
			||||||
    "opensuse-leap")
 | 
					    "opensuse-leap")
 | 
				
			||||||
        gen_repo_files_openSUSE "leap" "${SYSTEM_VERSION_NUMBER}"
 | 
					        gen_repo_files_openSUSE "leap" "${SYSTEM_VERSION_ID}"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "opensuse-tumbleweed")
 | 
					    "opensuse-tumbleweed")
 | 
				
			||||||
        gen_repo_files_openSUSE "tumbleweed"
 | 
					        gen_repo_files_openSUSE "tumbleweed"
 | 
				
			||||||
@@ -2292,7 +2310,7 @@ function change_mirrors_openSUSE() {
 | 
				
			|||||||
    sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" repo-*
 | 
					    sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" repo-*
 | 
				
			||||||
    case "${SYSTEM_ID}" in
 | 
					    case "${SYSTEM_ID}" in
 | 
				
			||||||
    opensuse-leap)
 | 
					    opensuse-leap)
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER}" in
 | 
					        case "${SYSTEM_VERSION_ID}" in
 | 
				
			||||||
        15.[0-2])
 | 
					        15.[0-2])
 | 
				
			||||||
            sed -i "s|download.opensuse.org|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
					            sed -i "s|download.opensuse.org|${SOURCE}/${SOURCE_BRANCH}|g" \
 | 
				
			||||||
                repo-debug-non-oss.repo \
 | 
					                repo-debug-non-oss.repo \
 | 
				
			||||||
@@ -2369,7 +2387,7 @@ function change_mirrors_Alpine() {
 | 
				
			|||||||
    if [ $? -eq 0 ]; then
 | 
					    if [ $? -eq 0 ]; then
 | 
				
			||||||
        version_name="edge"
 | 
					        version_name="edge"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        version_name="v${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        version_name="v${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 修改源
 | 
					    ## 修改源
 | 
				
			||||||
    echo "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/${version_name}/main
 | 
					    echo "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/${version_name}/main
 | 
				
			||||||
@@ -2439,7 +2457,7 @@ function change_mirrors_NixOS() {
 | 
				
			|||||||
    # binary cache
 | 
					    # binary cache
 | 
				
			||||||
    sed -i "s|^substituters.*|substituters = ${binary_cache_source}|g" $File_NixConf
 | 
					    sed -i "s|^substituters.*|substituters = ${binary_cache_source}|g" $File_NixConf
 | 
				
			||||||
    # channel
 | 
					    # channel
 | 
				
			||||||
    nix-channel --add "${channel_source}/nixos-${SYSTEM_VERSION_NUMBER}" nixos
 | 
					    nix-channel --add "${channel_source}/nixos-${SYSTEM_VERSION_ID}" nixos
 | 
				
			||||||
    nix-channel --update >/dev/null 2>&1
 | 
					    nix-channel --update >/dev/null 2>&1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2455,7 +2473,7 @@ function change_mirrors_or_install_EPEL() {
 | 
				
			|||||||
        if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]]; then
 | 
					        if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]]; then
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            epel_version="${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					            epel_version="${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
@@ -2497,9 +2515,9 @@ function change_mirrors_or_install_EPEL() {
 | 
				
			|||||||
        [ $? -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
 | 
					        [ $? -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 生成 repo 源文件
 | 
					    ## 生成 repo 源文件
 | 
				
			||||||
    gen_repo_files_EPEL "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					    gen_repo_files_EPEL "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
    if [[ "${epel_version}" == 9 ]] && [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_CENTOS_STREAM}" || "${SYSTEM_JUDGMENT}" == "${SYSTEM_RHEL}" ]]; then
 | 
					    if [[ "${epel_version}" == 9 ]] && [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_CENTOS_STREAM}" || "${SYSTEM_JUDGMENT}" == "${SYSTEM_RHEL}" ]]; then
 | 
				
			||||||
        gen_repo_files_EPEL_NEXT "${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					        gen_repo_files_EPEL_NEXT "${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
					    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
@@ -2526,7 +2544,7 @@ function get_package_manager() {
 | 
				
			|||||||
    local command="yum"
 | 
					    local command="yum"
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
 | 
					    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9 | 10)
 | 
					        9 | 10)
 | 
				
			||||||
            command="dnf"
 | 
					            command="dnf"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2025-03-20
 | 
					## Modified: 2025-04-01
 | 
				
			||||||
## License: MIT
 | 
					## License: MIT
 | 
				
			||||||
## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
					## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Website: https://linuxmirrors.cn
 | 
					## Website: https://linuxmirrors.cn
 | 
				
			||||||
@@ -73,11 +73,15 @@ SYSTEM_ROCKY="Rocky"
 | 
				
			|||||||
SYSTEM_ALMALINUX="AlmaLinux"
 | 
					SYSTEM_ALMALINUX="AlmaLinux"
 | 
				
			||||||
SYSTEM_FEDORA="Fedora"
 | 
					SYSTEM_FEDORA="Fedora"
 | 
				
			||||||
SYSTEM_OPENCLOUDOS="OpenCloudOS"
 | 
					SYSTEM_OPENCLOUDOS="OpenCloudOS"
 | 
				
			||||||
 | 
					SYSTEM_OPENCLOUDOS_STREAM="OpenCloudOS Stream"
 | 
				
			||||||
SYSTEM_OPENEULER="openEuler"
 | 
					SYSTEM_OPENEULER="openEuler"
 | 
				
			||||||
SYSTEM_ANOLISOS="Anolis"
 | 
					SYSTEM_ANOLISOS="Anolis"
 | 
				
			||||||
 | 
					SYSTEM_OPENKYLIN="openKylin"
 | 
				
			||||||
SYSTEM_OPENSUSE="openSUSE"
 | 
					SYSTEM_OPENSUSE="openSUSE"
 | 
				
			||||||
SYSTEM_ARCH="Arch"
 | 
					SYSTEM_ARCH="Arch"
 | 
				
			||||||
SYSTEM_ALPINE="Alpine"
 | 
					SYSTEM_ALPINE="Alpine"
 | 
				
			||||||
 | 
					SYSTEM_GENTOO="Gentoo"
 | 
				
			||||||
 | 
					SYSTEM_NIXOS="NixOS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 定义系统版本文件
 | 
					## 定义系统版本文件
 | 
				
			||||||
File_LinuxRelease=/etc/os-release
 | 
					File_LinuxRelease=/etc/os-release
 | 
				
			||||||
@@ -88,6 +92,7 @@ File_RaspberryPiOSRelease=/etc/rpi-issue
 | 
				
			|||||||
File_openEulerRelease=/etc/openEuler-release
 | 
					File_openEulerRelease=/etc/openEuler-release
 | 
				
			||||||
File_OpenCloudOSRelease=/etc/opencloudos-release
 | 
					File_OpenCloudOSRelease=/etc/opencloudos-release
 | 
				
			||||||
File_AnolisOSRelease=/etc/anolis-release
 | 
					File_AnolisOSRelease=/etc/anolis-release
 | 
				
			||||||
 | 
					File_OracleLinuxRelease=/etc/oracle-release
 | 
				
			||||||
File_ArchLinuxRelease=/etc/arch-release
 | 
					File_ArchLinuxRelease=/etc/arch-release
 | 
				
			||||||
File_AlpineRelease=/etc/alpine-release
 | 
					File_AlpineRelease=/etc/alpine-release
 | 
				
			||||||
File_ProxmoxVersion=/etc/pve/.version
 | 
					File_ProxmoxVersion=/etc/pve/.version
 | 
				
			||||||
@@ -352,27 +357,29 @@ function collect_system_info() {
 | 
				
			|||||||
    SYSTEM_NAME="$(cat $File_LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_NAME="$(cat $File_LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    grep -q "PRETTY_NAME=" $File_LinuxRelease && SYSTEM_PRETTY_NAME="$(cat $File_LinuxRelease | grep -E "^PRETTY_NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    grep -q "PRETTY_NAME=" $File_LinuxRelease && SYSTEM_PRETTY_NAME="$(cat $File_LinuxRelease | grep -E "^PRETTY_NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    ## 定义系统版本号
 | 
					    ## 定义系统版本号
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
					    SYSTEM_VERSION_ID="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER_MAJOR="${SYSTEM_VERSION_NUMBER%%.*}"
 | 
					    SYSTEM_VERSION_ID_MAJOR="${SYSTEM_VERSION_ID%.*}"
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER_MINOR="${SYSTEM_VERSION_NUMBER#*.}"
 | 
					    SYSTEM_VERSION_ID_MINOR="${SYSTEM_VERSION_ID#*.}"
 | 
				
			||||||
    ## 定义系统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")"
 | 
				
			||||||
    ## 判定当前系统派系
 | 
					    ## 判定当前系统派系
 | 
				
			||||||
    if [ -s "${File_DebianVersion}" ]; then
 | 
					    if [ -s "${File_DebianVersion}" ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
 | 
				
			||||||
 | 
					    elif [ -s "${File_OracleLinuxRelease}" ]; then
 | 
				
			||||||
 | 
					        output_error "当前操作系统(Oracle Linux)不在本脚本的支持范围内,请前往官网查看支持列表!"
 | 
				
			||||||
    elif [ -s "${File_RedHatRelease}" ]; then
 | 
					    elif [ -s "${File_RedHatRelease}" ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
 | 
				
			||||||
    elif [ -s "${File_openEulerRelease}" ]; then
 | 
					    elif [ -s "${File_openEulerRelease}" ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
 | 
				
			||||||
    elif [ -s "${File_OpenCloudOSRelease}" ]; then
 | 
					    elif [ -s "${File_OpenCloudOSRelease}" ]; then
 | 
				
			||||||
        # 拦截 OpenCloudOS 9 及以上版本,不支持从 Docker 官方仓库安装
 | 
					        # 拦截 OpenCloudOS 9 及以上版本,不支持从 Docker 官方仓库安装
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" -ge 9 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" -ge 9 ]]; then
 | 
				
			||||||
            output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
 | 
					            output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 自 9.0 版本起不再基于红帽
 | 
					        SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 自 9.0 版本起不再基于红帽
 | 
				
			||||||
    elif [ -s "${File_AnolisOSRelease}" ]; then
 | 
					    elif [ -s "${File_AnolisOSRelease}" ]; then
 | 
				
			||||||
        # 拦截 Anolis OS 8.8 及以上版本,不支持从 Docker 官方仓库安装,23 版本支持
 | 
					        # 拦截 Anolis OS 8.8 及以上版本,不支持从 Docker 官方仓库安装,23 版本支持
 | 
				
			||||||
        if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" == 8 ]]; then
 | 
					        if [[ "${SYSTEM_VERSION_ID_MAJOR}" == 8 ]]; then
 | 
				
			||||||
            output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
 | 
					            output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}" # 自 8.8 版本起不再基于红帽
 | 
					        SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}" # 自 8.8 版本起不再基于红帽
 | 
				
			||||||
@@ -383,6 +390,7 @@ function collect_system_info() {
 | 
				
			|||||||
    case "${SYSTEM_FACTIONS}" in
 | 
					    case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
    "${SYSTEM_DEBIAN}")
 | 
					    "${SYSTEM_DEBIAN}")
 | 
				
			||||||
        if ! command -v lsb_release &>/dev/null; then
 | 
					        if ! command -v lsb_release &>/dev/null; then
 | 
				
			||||||
 | 
					            apt-get update
 | 
				
			||||||
            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\n本脚本依赖 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
					                output_error "lsb-release 软件包安装失败\n\n本脚本依赖 lsb_release 指令判断系统具体类型和版本,当前系统可能为精简安装,请自行安装后重新执行脚本!"
 | 
				
			||||||
@@ -558,8 +566,8 @@ function choose_mirrors() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function print_title() {
 | 
					    function print_title() {
 | 
				
			||||||
        local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
 | 
					        local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_ID}"}"
 | 
				
			||||||
        local arch=""${DEVICE_ARCH}""
 | 
					        local arch="${DEVICE_ARCH}"
 | 
				
			||||||
        local date_time time_zone
 | 
					        local date_time time_zone
 | 
				
			||||||
        date_time="$(date "+%Y-%m-%d %H:%M")"
 | 
					        date_time="$(date "+%Y-%m-%d %H:%M")"
 | 
				
			||||||
        timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
 | 
					        timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
 | 
				
			||||||
@@ -608,7 +616,7 @@ function choose_mirrors() {
 | 
				
			|||||||
            sleep 1 >/dev/null 2>&1
 | 
					            sleep 1 >/dev/null 2>&1
 | 
				
			||||||
            eval "interactive_select_mirror \"\${${mirror_list_name}[@]}\" \"\\n \${BOLD}请选择你想使用的 Docker Registry 源:\${PLAIN}\\n\""
 | 
					            eval "interactive_select_mirror \"\${${mirror_list_name}[@]}\" \"\\n \${BOLD}请选择你想使用的 Docker Registry 源:\${PLAIN}\\n\""
 | 
				
			||||||
            SOURCE_REGISTRY="${_SELECT_RESULT#*@}"
 | 
					            SOURCE_REGISTRY="${_SELECT_RESULT#*@}"
 | 
				
			||||||
            echo -e "\n${GREEN}➜${PLAIN}  ${BOLD}Docker Registry: ${_SELECT_RESULT%@*}${PLAIN}"
 | 
					            echo -e "\n${GREEN}➜${PLAIN}  ${BOLD}Docker Registry: $(echo "${_SELECT_RESULT%@*}" | sed 's|(推荐)||g')${PLAIN}"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            print_mirrors_list "${mirror_list_name}" 44
 | 
					            print_mirrors_list "${mirror_list_name}" 44
 | 
				
			||||||
            local CHOICE_C=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的 Docker Registry 源 [ 1-$(eval echo \${#$mirror_list_name[@]}) ]:${PLAIN}")
 | 
					            local CHOICE_C=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的 Docker Registry 源 [ 1-$(eval echo \${#$mirror_list_name[@]}) ]:${PLAIN}")
 | 
				
			||||||
@@ -740,7 +748,7 @@ function install_dependency_packages() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}")
 | 
					    "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}")
 | 
				
			||||||
        # 注:红帽 8 版本才发布了 dnf 包管理工具,为了兼容性而优先选择安装 dnf-utils
 | 
					        # 注:红帽 8 版本才发布了 dnf 包管理工具,为了兼容性而优先选择安装 dnf-utils
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        7)
 | 
					        7)
 | 
				
			||||||
            $package_manager install -y yum-utils device-mapper-persistent-data lvm2
 | 
					            $package_manager install -y yum-utils device-mapper-persistent-data lvm2
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
@@ -758,7 +766,7 @@ function get_package_manager() {
 | 
				
			|||||||
    local command="yum"
 | 
					    local command="yum"
 | 
				
			||||||
    case "${SYSTEM_JUDGMENT}" in
 | 
					    case "${SYSTEM_JUDGMENT}" in
 | 
				
			||||||
    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
 | 
					    "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
 | 
				
			||||||
        case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					        case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
        9 | 10)
 | 
					        9 | 10)
 | 
				
			||||||
            command="dnf"
 | 
					            command="dnf"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
@@ -826,9 +834,9 @@ function configure_docker_ce_mirror() {
 | 
				
			|||||||
        ## 兼容处理版本号
 | 
					        ## 兼容处理版本号
 | 
				
			||||||
        if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_FEDORA}" ]]; then
 | 
					        if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_FEDORA}" ]]; then
 | 
				
			||||||
            local target_version
 | 
					            local target_version
 | 
				
			||||||
            case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
 | 
					            case "${SYSTEM_VERSION_ID_MAJOR}" in
 | 
				
			||||||
            7 | 8 | 9 | 10)
 | 
					            7 | 8 | 9 | 10)
 | 
				
			||||||
                target_version="${SYSTEM_VERSION_NUMBER_MAJOR}"
 | 
					                target_version="${SYSTEM_VERSION_ID_MAJOR}"
 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
            *)
 | 
					            *)
 | 
				
			||||||
                ## 目前红帽系衍生系统还没有普及 10 版本
 | 
					                ## 目前红帽系衍生系统还没有普及 10 版本
 | 
				
			||||||
@@ -922,11 +930,11 @@ function install_docker_engine() {
 | 
				
			|||||||
            rm -rf $DockerVersionFile
 | 
					            rm -rf $DockerVersionFile
 | 
				
			||||||
            case "${SYSTEM_FACTIONS}" in
 | 
					            case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
            "${SYSTEM_DEBIAN}")
 | 
					            "${SYSTEM_DEBIAN}")
 | 
				
			||||||
                check_version="$(echo ${target_docker_version} | cut -c1-2)"
 | 
					                local major_version="$(echo ${target_docker_version} | cut -c1-2)"
 | 
				
			||||||
                CheckSubversion="$(echo ${target_docker_version} | cut -c4-5)"
 | 
					                local minor_version="$(echo ${target_docker_version} | cut -c4-5)"
 | 
				
			||||||
                case "${check_version}" in
 | 
					                case "${major_version}" in
 | 
				
			||||||
                18)
 | 
					                18)
 | 
				
			||||||
                    if [ ${CheckSubversion} == "09" ]; then
 | 
					                    if [ "${minor_version}" == "09" ]; then
 | 
				
			||||||
                        INSTALL_JUDGMENT="5:"
 | 
					                        INSTALL_JUDGMENT="5:"
 | 
				
			||||||
                    else
 | 
					                    else
 | 
				
			||||||
                        INSTALL_JUDGMENT=""
 | 
					                        INSTALL_JUDGMENT=""
 | 
				
			||||||
@@ -980,7 +988,7 @@ function install_docker_engine() {
 | 
				
			|||||||
            else
 | 
					            else
 | 
				
			||||||
                echo ''
 | 
					                echo ''
 | 
				
			||||||
                cp -rvf $DockerConfig $DockerConfigBackup 2>&1
 | 
					                cp -rvf $DockerConfig $DockerConfigBackup 2>&1
 | 
				
			||||||
                echo -e "\n$COMPLETE 已备份原有 Docker 配置文件至 $DockerConfigBackup"
 | 
					                echo -e "\n$COMPLETE 已备份原有 Docker 配置文件"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            sleep 2s
 | 
					            sleep 2s
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -1040,7 +1048,7 @@ function install_docker_engine() {
 | 
				
			|||||||
        local latest_docker_version="$(cat $DockerVersionFile | head -n 1)"
 | 
					        local latest_docker_version="$(cat $DockerVersionFile | head -n 1)"
 | 
				
			||||||
        rm -rf $DockerVersionFile
 | 
					        rm -rf $DockerVersionFile
 | 
				
			||||||
        if [[ "${current_docker_version}" == "${latest_docker_version}" ]] && [[ "${INSTALL_LATESTED_DOCKER}" == "true" ]]; then
 | 
					        if [[ "${current_docker_version}" == "${latest_docker_version}" ]] && [[ "${INSTALL_LATESTED_DOCKER}" == "true" ]]; then
 | 
				
			||||||
            echo -e "\n$TIP 检测到系统中的 Docker Engine 已经是最新的版本,跳过安装"
 | 
					            echo -e "\n$TIP 检测到系统已安装 Docker Engine 且是最新版本,跳过安装"
 | 
				
			||||||
            change_docker_registry_mirror
 | 
					            change_docker_registry_mirror
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
@@ -1059,7 +1067,7 @@ function check_version() {
 | 
				
			|||||||
        docker -v
 | 
					        docker -v
 | 
				
			||||||
        if [ $? -eq 0 ]; then
 | 
					        if [ $? -eq 0 ]; then
 | 
				
			||||||
            echo -e "              $(docker compose version 2>&1)"
 | 
					            echo -e "              $(docker compose version 2>&1)"
 | 
				
			||||||
            echo -e "\n$COMPLETE 安装完成"
 | 
					            # echo -e "\n$COMPLETE 安装完成"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            echo -e "\n$ERROR 安装失败"
 | 
					            echo -e "\n$ERROR 安装失败"
 | 
				
			||||||
            case "${SYSTEM_FACTIONS}" in
 | 
					            case "${SYSTEM_FACTIONS}" in
 | 
				
			||||||
@@ -1087,7 +1095,7 @@ function check_version() {
 | 
				
			|||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e "\n$ERROR 安装失败\n"
 | 
					        echo -e "\n$ERROR 安装失败"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -333,6 +333,7 @@ hide:
 | 
				
			|||||||
        !!! quote ""
 | 
					        !!! quote ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            - 如果提示 `bash: /proc/self/fd/11: No such file or directory`,请切换至 `Root` 用户执行,切换命令为 `sudo -i` 或 `su root`
 | 
					            - 如果提示 `bash: /proc/self/fd/11: No such file or directory`,请切换至 `Root` 用户执行,切换命令为 `sudo -i` 或 `su root`
 | 
				
			||||||
 | 
					            - 如果交互打印界面发现是输入而不是新式的方向键交互,那么请自行安装 `ncurses` 或 `nano` 软件包,新式的方向键交互依赖 `tput` 指令实现。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- ### 关于备份原有软件源
 | 
					- ### 关于备份原有软件源
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user