@@ -68,6 +68,8 @@ File_ProxmoxVersion=/etc/pve/.version
6868File_AptSourceList=/etc/apt/sources.list
6969Dir_AptAdditionalSources=/etc/apt/sources.list.d
7070Dir_YumRepos=/etc/yum.repos.d
71+ File_DebianSources=$Dir_AptAdditionalSources /debian.sources
72+ File_UbuntuSources=$Dir_AptAdditionalSources /ubuntu.sources
7173
7274# # 定义 Docker 相关变量
7375Dir_Docker=/etc/docker
@@ -77,6 +79,7 @@ File_DockerVersionTmp=docker-version.txt
7779File_DockerCEVersionTmp=docker-ce-version.txt
7880File_DockerCECliVersionTmp=docker-ce-cli-version.txt
7981File_DockerSourceList=$Dir_AptAdditionalSources /docker.list
82+ File_DockerSources=$Dir_AptAdditionalSources /docker.sources
8083File_DockerRepo=$Dir_YumRepos /docker-ce.repo
8184
8285# # 定义颜色和样式变量
@@ -404,6 +407,33 @@ function collect_system_info() {
404407 SYSTEM_JUDGMENT=" ${SYSTEM_RASPBERRY_PI_OS} "
405408 SYSTEM_PRETTY_NAME=" ${SYSTEM_RASPBERRY_PI_OS} "
406409 fi
410+ # # 针对特定系统的判定
411+ if [[ " ${SYSTEM_JUDGMENT} " == " ${SYSTEM_DEBIAN} " ]]; then
412+ # # 尚未正式发布的版本
413+ if [[ -z " ${SYSTEM_VERSION_ID} " && " ${SYSTEM_VERSION_CODENAME} " == " forky" ]]; then
414+ SYSTEM_VERSION_ID=" 14"
415+ SYSTEM_VERSION_ID_MAJOR=" ${SYSTEM_VERSION_ID%% .* } "
416+ SYSTEM_VERSION_ID_MINOR=" ${SYSTEM_VERSION_ID#* .} "
417+ fi
418+ # # 是否使用 DEB822 格式
419+ if [[ " ${SYSTEM_VERSION_ID_MAJOR} " && " ${SYSTEM_VERSION_ID_MAJOR} " -ge 13 ]]; then
420+ USE_DEB822_FORMAT=" true"
421+ fi
422+ fi
423+ if [[ " ${SYSTEM_JUDGMENT} " == " ${SYSTEM_UBUNTU} " ]]; then
424+ # # 是否使用 DEB822 格式
425+ if [[ " ${SYSTEM_VERSION_ID_MAJOR} " && " ${SYSTEM_VERSION_ID_MAJOR} " -ge 24 ]]; then
426+ USE_DEB822_FORMAT=" true"
427+ fi
428+ fi
429+ # Debian DEB822 格式源文件
430+ if [[ " ${SYSTEM_JUDGMENT} " == " ${SYSTEM_DEBIAN} " ]] && [ -f " ${File_DebianSources} " ]; then
431+ USE_DEB822_FORMAT=" true"
432+ fi
433+ # Ubuntu DEB822 格式源文件
434+ if [[ " ${SYSTEM_JUDGMENT} " == " ${SYSTEM_UBUNTU} " ]] && [ -f " ${File_UbuntuSources} " ]; then
435+ USE_DEB822_FORMAT=" true"
436+ fi
407437 ;;
408438 " ${SYSTEM_REDHAT} " )
409439 SYSTEM_JUDGMENT=" $( awk ' {printf $1}' $File_RedHatRelease ) "
@@ -468,6 +498,7 @@ function collect_system_info() {
468498 " ${SYSTEM_KALI} " )
469499 SOURCE_BRANCH=" debian"
470500 SOURCE_BRANCH_CODENAME=" ${debian_codename_latest} "
501+ USE_DEB822_FORMAT=" true"
471502 ;;
472503 " ${SYSTEM_LINUX_MINT} " )
473504 if [[ " ${SYSTEM_NAME} " == * " LMDE" * ]]; then
@@ -699,8 +730,17 @@ function configure_docker_ce_mirror() {
699730 chmod a+r $file_keyring
700731 # # 添加源
701732 [ -d " ${Dir_AptAdditionalSources} " ] || mkdir -p $Dir_AptAdditionalSources
702- local apt_source_content=" deb [arch=$( dpkg --print-architecture) signed-by=${file_keyring} ] ${WEB_PROTOCOL} ://${SOURCE} /linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:- ${SOURCE_BRANCH_CODENAME:- ${SYSTEM_VERSION_CODENAME} } } stable"
703- echo " ${apt_source_content} " | tee $File_DockerSourceList > /dev/null 2>&1
733+ if [[ " ${USE_DEB822_FORMAT} " == " true" ]]; then
734+ echo " Types: deb
735+ URIs: ${WEB_PROTOCOL} ://${SOURCE} /linux/${SOURCE_BRANCH}
736+ Suites: ${DEBIAN_CODENAME:- ${SOURCE_BRANCH_CODENAME:- ${SYSTEM_VERSION_CODENAME} } }
737+ Components: stable
738+ Architectures: $( dpkg --print-architecture)
739+ Signed-By: ${file_keyring} " > $File_DockerSources
740+ else
741+ local apt_source_content=" deb [arch=$( dpkg --print-architecture) signed-by=${file_keyring} ] ${WEB_PROTOCOL} ://${SOURCE} /linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:- ${SOURCE_BRANCH_CODENAME:- ${SYSTEM_VERSION_CODENAME} } } stable"
742+ echo " ${apt_source_content} " | tee $File_DockerSourceList > /dev/null 2>&1
743+ fi
704744 commands+=(" apt-get update" )
705745 ;;
706746 " ${SYSTEM_REDHAT} " | " ${SYSTEM_OPENEULER} " | " ${SYSTEM_OPENCLOUDOS} " | " ${SYSTEM_ANOLISOS} " | " ${SYSTEM_TENCENTOS} " | " ${SYSTEM_KYLIN_SERVER} " )
0 commit comments