From f6b2f6c1f616d7a3b03feb74a4a96c45c68d1637 Mon Sep 17 00:00:00 2001 From: Super Manito <68613938+SuperManito@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=20Linux=20Mint=2022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeMirrors.sh | 50 ++++++++++++++++++++++++++++++++----------- DockerInstallation.sh | 4 ++-- README.md | 12 +++++------ docs/index.md | 12 +++++------ docs/use/index.md | 28 +++++++++++++----------- requirements.txt | 2 +- 6 files changed, 69 insertions(+), 39 deletions(-) diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh index b85a5963..df404e80 100755 --- a/ChangeMirrors.sh +++ b/ChangeMirrors.sh @@ -1,6 +1,6 @@ #!/bin/bash ## Author: SuperManito -## Modified: 2024-11-02 +## Modified: 2024-11-08 ## License: MIT ## GitHub: https://github.com/SuperManito/LinuxMirrors ## Website: https://linuxmirrors.cn @@ -254,20 +254,22 @@ function main() { function handle_command_options() { ## 命令帮助 function output_command_help() { - echo -e "\n命令选项(名称/含义/选项值): + echo -e "\n命令选项(名称/含义/值): - --abroad 使用海外软件源 无 + --abroad 使用境外以及海外软件源 无 --edu 使用中国大陆教育网软件源 无 --source 指定软件源地址(域名或IP) 地址 --source-epel 指定 EPEL 附加软件包仓库的软件源地址(域名或IP) 地址 --source-security 指定 Debian 系统 security 仓库的软件源地址(域名或IP) 地址 --source-vault 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) 地址 --source-portage 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) 地址 + --source-base-system 指定 Linux Mint 系统底层系统的软件源地址(域名或IP) 地址 --branch 指定软件源分支(路径) 分支名 --branch-epel 指定 EPEL 附加软件包仓库的软件源分支(路径) 分支名 --branch-security 指定 Debian 系统 security 仓库的软件源分支(路径) 分支名 --branch-vault 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源分支(路径) 分支名 --branch-portage 指定 Gentoo 系统 portage 仓库的软件源分支(路径) 分支名 + --branch-base-system 指定 Linux Mint 系统底层系统的软件源分支(路径) 分支名 --codename 指定 Debian 系操作系统的版本代号 代号名称 --protocol 指定 WEB 协议 http 或 https --use-intranet-source 是否优先使用内网软件源地址 true 或 false @@ -361,6 +363,19 @@ function handle_command_options() { output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址!" fi ;; + --source-base-system) + if [ "$2" ]; then + echo "$2" | grep -Eq "\(|\)|\[|\]|\{|\}" + if [ $? -eq 0 ]; then + output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定有效的地址!" + else + SOURCE_BASE_SYSTEM="$(echo "$2" | sed -e 's,^http[s]\?://,,g' -e 's,/$,,')" + shift + fi + else + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源地址!" + fi + ;; ## 指定软件源分支 --branch) if [ "$2" ]; then @@ -402,6 +417,14 @@ function handle_command_options() { output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" fi ;; + --branch-base-system) + if [ "$2" ]; then + SOURCE_BASE_SYSTEM_BRANCH="$2" + shift + else + output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定软件源分支!" + fi + ;; ## 指定 Debian 系操作系统的版本代号 --codename) if [ "$2" ]; then @@ -622,7 +645,7 @@ function collect_system_info() { elif [ -s $File_RedHatRelease ]; then SYSTEM_FACTIONS="${SYSTEM_REDHAT}" elif [ -s $File_OpenCloudOSRelease ]; then - SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,因为官方宣称8版本基于红帽而9版本不是 + SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,自 9.0 版本起不再基于红帽 elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}" else @@ -666,7 +689,7 @@ function collect_system_info() { fi ;; "${SYSTEM_LINUX_MINT}") - if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 19 && "${SYSTEM_VERSION_NUMBER:0:2}" != 2[0-1] && "${SYSTEM_VERSION_NUMBER:0:2}" != 6 ]]; then + if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 19 && "${SYSTEM_VERSION_NUMBER:0:2}" != 2[0-2] && "${SYSTEM_VERSION_NUMBER:0:2}" != 6 ]]; then is_supported="false" fi ;; @@ -1698,25 +1721,28 @@ deb ${base_url} ${repository_sections} deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections} " >>$File_LinuxMintSourceList ## 底层系统软件源 - local base_system_source_branch base_system_codename + local base_system_branch base_system_codename if [[ "${SYSTEM_VERSION_NUMBER}" == 6 ]]; then # Debian 版(LMDE) - base_system_source_branch="debian" + base_system_branch="debian" base_system_codename="bookworm" repository_sections="main contrib non-free non-free-firmware" - base_url="${WEB_PROTOCOL}://${SOURCE}/${base_system_source_branch}" + base_url="${WEB_PROTOCOL}://${SOURCE_BASE_SYSTEM:-"${SOURCE}"}/${SOURCE_BASE_SYSTEM_BRANCH:-"${base_system_branch}"}" echo "$(gen_debian_source "${base_url}" "${base_system_codename}" "${repository_sections}")" >>$File_LinuxMintSourceList # 处理 debian-security 仓库源 - base_url="${WEB_PROTOCOL}://${SOURCE_SECURITY:-"${SOURCE}"}/${SOURCE_SECURITY_BRANCH:-"${base_system_source_branch}-security"}" + base_url="${WEB_PROTOCOL}://${SOURCE_SECURITY:-${SOURCE_BASE_SYSTEM:-${SOURCE}}}/${SOURCE_SECURITY_BRANCH:-${SOURCE_BASE_SYSTEM_BRANCH:-${base_system_branch}-security}}" echo "$(gen_debian_security_source "${base_url}" "${base_system_codename}" "${repository_sections}")" >>$File_LinuxMintSourceList else # Ubuntu 版 if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then - base_system_source_branch="ubuntu" + base_system_branch="ubuntu" else - base_system_source_branch="ubuntu-ports" + base_system_branch="ubuntu-ports" fi case "${SYSTEM_VERSION_NUMBER:0:2}" in + 22) + base_system_codename="noble" + ;; 21) base_system_codename="jammy" ;; @@ -1728,7 +1754,7 @@ deb ${base_url} ${SYSTEM_VERSION_CODENAME} ${repository_sections} ;; esac repository_sections="main restricted universe multiverse" - base_url="${WEB_PROTOCOL}://${SOURCE}/${base_system_source_branch}" + base_url="${WEB_PROTOCOL}://${SOURCE_BASE_SYSTEM:-"${SOURCE}"}/${SOURCE_BASE_SYSTEM_BRANCH:-"${base_system_branch}"}" echo "$(gen_ubuntu_source "${base_url}" "${base_system_codename}" "${repository_sections}")" >>$File_LinuxMintSourceList fi ;; diff --git a/DockerInstallation.sh b/DockerInstallation.sh index b30fb78f..e73c9c23 100755 --- a/DockerInstallation.sh +++ b/DockerInstallation.sh @@ -138,7 +138,7 @@ function handle_command_options() { ## 命令帮助 function output_command_help() { echo -e " -命令选项(名称/含义/选项值): +命令选项(名称/含义/值): --source 指定 Docker CE 源地址 地址 --source-registry 指定 Docker Registry 源地址 地址 @@ -283,7 +283,7 @@ function collect_system_info() { if [[ "${SYSTEM_VERSION_NUMBER:0:1}" == 9 ]]; then output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker" fi - # SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,因为官方宣称8版本基于红帽而9版本不是 + # SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,自 9.0 版本起不再基于红帽 else output_error "无法判断当前运行环境或不支持当前操作系统!" fi diff --git a/README.md b/README.md index 28697516..fed14d66 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,11 @@ - + - + @@ -32,7 +32,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -76,7 +76,7 @@ - + diff --git a/docs/index.md b/docs/index.md index 7cdb5081..c220c6a8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -75,21 +75,21 @@ hide: | 操作系统 | 适配版本 | | --- | :---: | -| Debian | _8.0 ~ 13_ | -| Ubuntu :material-information-outline:{ title="支持乌班图家族衍生操作系统,例如 优麒麟Kubuntu
由于迭代速度较快并不直接支持所有非 LTS 的版本,具体详见使用文档中的高级用法" } | _14.04 ~ 24_ | +| Debian | _8 ~ 13_ | +| Ubuntu :material-information-outline:{ title="支持乌班图家族衍生操作系统,例如 优麒麟Kubuntu
由于迭代速度较快并不直接支持所有非 LTS 的版本,具体详见使用文档中的高级用法" } | _14 ~ 24_ | | Kali Linux | _all_ | -| Linux Mint | _19.0 ~ 21 / LMDE 6_ | +| Linux Mint | _19 ~ 22 / LMDE 6_ | | Deepin | _all_ | | Zorin OS | _all_ | | Armbian | _all_ | | Proxmox | _all_ | -| Red Hat Enterprise Linux :material-information-outline:{ title="使用 CentOS StreamCentOS 源" } | _7.0 ~ 9_ | +| Red Hat Enterprise Linux :material-information-outline:{ title="使用 CentOS StreamCentOS 源" } | _7 ~ 9_ | | Fedora | _30 ~ 41_ | -| CentOS | _7.0 ~ 8.5 / Stream 8 ~ 9_ | +| CentOS | _7 ~ 8 / Stream 8 ~ 9_ | | Rocky Linux | _8 ~ 9_ | | AlmaLinux | _8 ~ 9_ | | OpenCloudOS | _8 ~ 9_ | -| openEuler | _21.03 ~ 24_ | +| openEuler | _21 ~ 24_ | | Anolis OS | _23_ | | openSUSE | _Leep 15 / Tumbleweed_ | | Arch Linux | _all_ | diff --git a/docs/use/index.md b/docs/use/index.md index 72db6334..d95e0d08 100644 --- a/docs/use/index.md +++ b/docs/use/index.md @@ -281,19 +281,21 @@ hide: | 名称 | 含义 | 选项值 | | - | - | :-: | -| `--abroad` | 使用海外软件源 | 无 | +| `--abroad` | 使用境外以及海外软件源 | 无 | | `--edu` | 使用中国大陆教育网软件源 | 无 | -| `--source` | 指定软件源地址(域名或IP) | 地址 | -| `--source-epel` | 指定 EPEL 附加软件包仓库的软件源地址(域名或IP) | 地址 | -| `--source-security` | 指定 Debian 系统 security 仓库的软件源地址(域名或IP) | 地址 | -| `--source-vault` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) | 地址 | -| `--source-portage` | 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) | 地址 | -| `--branch` | 指定软件源分支(路径) | 分支名 | -| `--branch-epel` | 指定 EPEL 附加软件包仓库的软件源分支(路径) | 分支名 | -| `--branch-security` | 指定 Debian 系统 security 仓库的软件源分支(路径) | 分支名 | -| `--branch-vault` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源分支(路径) 分支名 | 分支名 | -| `--branch-portage` | 指定 Gentoo 系统 portage 仓库的软件源分支(路径) | 分支名 | -| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 | +| `--source` | 指定软件源地址(域名或IP) | `地址` | +| `--source-epel` | 指定 EPEL 附加软件包仓库的软件源地址(域名或IP) | `地址` | +| `--source-security` | 指定 Debian 系统 security 仓库的软件源地址(域名或IP) | `地址` | +| `--source-vault` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) | `地址` | +| `--source-portage` | 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) | `地址` | +| `--source-base-system` | 指定 Linux Mint 系统底层系统的软件源地址(域名或IP) | `地址` | +| `--branch` | 指定软件源分支(路径) | `分支名` | +| `--branch-epel` | 指定 EPEL 附加软件包仓库的软件源分支(路径) | `分支名` | +| `--branch-security` | 指定 Debian 系统 security 仓库的软件源分支(路径) | `分支名` | +| `--branch-vault` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源分支(路径) | `分支名` | +| `--branch-portage` | 指定 Gentoo 系统 portage 仓库的软件源分支(路径) | `分支名` | +| `--branch-base-system` | 指定 Linux Mint 系统底层系统的软件源分支(路径) | `分支名` | +| `--codename` | 指定 Debian 系操作系统的版本代号 | `代号名称` | | `--protocol` | 指定 WEB 协议 | `http` 或 `https` | | `--use-intranet-source` | 是否优先使用内网软件源地址 | `true` 或 `false` | | `--use-official-source` | 是否使用目标操作系统的官方软件源 | `true` 或 `false` | @@ -461,11 +463,13 @@ hide: | `SOURCE_SECURITY` | 指定 Debian 系统 security 仓库的软件源地址(域名或IP) | `地址` | | `SOURCE_VAULT` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源地址(域名或IP) | `地址` | | `SOURCE_PORTAGE` | 指定 Gentoo 系统 portage 仓库的软件源地址(域名或IP) | `地址` | +| `SOURCE_BASE_SYSTEM` | 指定 Linux Mint 系统底层系统的软件源地址(域名或IP) | `地址` | | `SOURCE_BRANCH` | 指定软件源分支(路径) | `分支名` | | `SOURCE_EPEL_BRANCH` | 指定 EPEL 附加软件包仓库的软件源分支(路径) | `分支名` | | `SOURCE_SECURITY_BRANCH` | 指定 Debian 系统 security 仓库的软件源分支(路径) | `分支名` | | `SOURCE_VAULT_BRANCH` | 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源分支(路径) | `分支名` | | `SOURCE_PORTAGE_BRANCH` | 指定 Gentoo 系统 portage 仓库的软件源分支(路径) | `分支名` | +| `SOURCE_BASE_SYSTEM_BRANCH` | 指定 Linux Mint 系统底层系统的软件源分支(路径) | `分支名` | | `DEBIAN_CODENAME` | 指定 Debian 系操作系统的版本代号 | `代号名称` | | `USE_OFFICIAL_SOURCE` | 是否使用目标操作系统的官方软件源 | `true` 或 `false` | | `USE_INTRANET_SOURCE` | 是否优先使用内网软件源地址 | `true` 或 `false` | diff --git a/requirements.txt b/requirements.txt index aa598df5..a3eb8cfd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -mkdocs-material==9.5.43 +mkdocs-material==9.5.44 mkdocs-glightbox==0.4.0 mkdocs-exclude-search==0.6.6 \ No newline at end of file
 Debian8.0 ~ 138 ~ 13
 Ubuntu14.04 ~ 2414 ~ 24
 Kali Linux
 Linux Mint19.0 ~ 21 / LMDE 619 ~ 22 / LMDE 6
 deepin
 Red Hat Enterprise Linux7.0 ~ 97 ~ 9
 Fedora
 CentOS7.0 ~ 8.5 / Stream 8 ~ 97 ~ 8 / Stream 8 ~ 9
 Rocky Linux
 openEuler21.03 ~ 2421 ~ 24
 Anolis OS