新增适配 Anolis OS 8 版本并修复了一些错误

This commit is contained in:
Super Manito
2024-12-05 06:02:06 +08:00
parent 365f1623de
commit 625f66756d
6 changed files with 485 additions and 222 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
## Author: SuperManito ## Author: SuperManito
## Modified: 2024-12-02 ## Modified: 2024-12-05
## 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,7 +73,7 @@ SYSTEM_ALMALINUX="AlmaLinux"
SYSTEM_FEDORA="Fedora" SYSTEM_FEDORA="Fedora"
SYSTEM_OPENCLOUDOS="OpenCloudOS" SYSTEM_OPENCLOUDOS="OpenCloudOS"
SYSTEM_OPENEULER="openEuler" SYSTEM_OPENEULER="openEuler"
SYSTEM_ANOLISOS="Anolis OS" SYSTEM_ANOLISOS="Anolis"
SYSTEM_OPENSUSE="openSUSE" SYSTEM_OPENSUSE="openSUSE"
SYSTEM_ARCH="Arch" SYSTEM_ARCH="Arch"
SYSTEM_ALPINE="Alpine" SYSTEM_ALPINE="Alpine"
@@ -112,13 +112,20 @@ PURPLE='\033[35m'
AZURE='\033[36m' AZURE='\033[36m'
PLAIN='\033[0m' PLAIN='\033[0m'
BOLD='\033[1m' BOLD='\033[1m'
SUCCESS="[\033[1;32m成功${PLAIN}]" SUCCESS="\033[1;32m${PLAIN}"
COMPLETE="[\033[1;32m完成${PLAIN}]" COMPLETE="\033[1;32m${PLAIN}"
WARN="[\033[1;5;33m注意${PLAIN}]" WARN="\033[1;43m 警告 ${PLAIN}"
ERROR="[\033[1;31m错误${PLAIN}]" ERROR="\033[1;31m${PLAIN}"
FAIL="[\033[1;31m失败${PLAIN}]" FAIL="\033[1;31m${PLAIN}"
TIP="[\033[1;32m提示${PLAIN}]" TIP="\033[1;44m 提示 ${PLAIN}"
WORKING="[\033[1;36m >_ ${PLAIN}]" WORKING="\033[1;36m>_${PLAIN}"
# SUCCESS="[\033[1;32m成功${PLAIN}]"
# COMPLETE="[\033[1;32m完成${PLAIN}]"
# WARN="[\033[1;5;33m注意${PLAIN}]"
# ERROR="[\033[1;31m错误${PLAIN}]"
# FAIL="[\033[1;31m失败${PLAIN}]"
# TIP="[\033[1;32m提示${PLAIN}]"
# WORKING="[\033[1;36m >_ ${PLAIN}]"
function main() { function main() {
permission_judgment permission_judgment
@@ -143,7 +150,8 @@ function handle_command_options() {
--source 指定 Docker CE 源地址 地址 --source 指定 Docker CE 源地址 地址
--source-registry 指定 Docker Registry 源地址 地址 --source-registry 指定 Docker Registry 源地址 地址
--codename 指定 Debian 系操作系统的版本代号 代号名称 --codename 指定 Debian 系操作系统的版本代号 代号名称
--install-latest 控制是否安装最新版本的 Docker Engine true 或 false --install-latest 是否安装最新版本的 Docker Engine true 或 false
--clean-screen 是否在运行前清除屏幕上的所有内容 true 或 false
--ignore-backup-tips 忽略覆盖备份提示 无 --ignore-backup-tips 忽略覆盖备份提示 无
问题报告 https://github.com/SuperManito/LinuxMirrors/issues 问题报告 https://github.com/SuperManito/LinuxMirrors/issues
@@ -210,6 +218,22 @@ function handle_command_options() {
--ignore-backup-tips) --ignore-backup-tips)
IGNORE_BACKUP_TIPS="true" IGNORE_BACKUP_TIPS="true"
;; ;;
## 清除屏幕上的所有内容
--clean-screen)
if [ "$2" ]; then
case "$2" in
[Tt]rue | [Ff]alse)
CLEAN_SCREEN="${2,,}"
shift
;;
*)
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false "
;;
esac
else
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false "
fi
;;
## 命令帮助 ## 命令帮助
--help) --help)
output_command_help output_command_help
@@ -226,7 +250,11 @@ function handle_command_options() {
} }
function run_start() { function run_start() {
[[ -z "${SOURCE}" || -z "${SOURCE_REGISTRY}" ]] && clear if [ -z "${CLEAN_SCREEN}" ]; then
[[ -z "${SOURCE}" || -z "${SOURCE_REGISTRY}" ]] && clear
elif [ "${CLEAN_SCREEN}" == "true" ]; then
clear
fi
echo -e ' +-----------------------------------+' echo -e ' +-----------------------------------+'
echo -e " | \033[0;1;35;95m⡇\033[0m \033[0;1;33;93m⠄\033[0m \033[0;1;32;92m⣀⡀\033[0m \033[0;1;36;96m⡀\033[0;1;34;94m⢀\033[0m \033[0;1;35;95m⡀⢀\033[0m \033[0;1;31;91m⡷\033[0;1;33;93m⢾\033[0m \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[0m \033[0;1;31;91m⢀⡀\033[0m \033[0;1;33;93m⡀\033[0;1;32;92m⣀\033[0m \033[0;1;36;96m⢀⣀\033[0m |" echo -e " | \033[0;1;35;95m⡇\033[0m \033[0;1;33;93m⠄\033[0m \033[0;1;32;92m⣀⡀\033[0m \033[0;1;36;96m⡀\033[0;1;34;94m⢀\033[0m \033[0;1;35;95m⡀⢀\033[0m \033[0;1;31;91m⡷\033[0;1;33;93m⢾\033[0m \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[0m \033[0;1;31;91m⢀⡀\033[0m \033[0;1;33;93m⡀\033[0;1;32;92m⣀\033[0m \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[0m \033[0;1;36;96m⠇⠸\033[0m \033[0;1;34;94m⠣\033[0;1;35;95m⠼\033[0m \033[0;1;31;91m⠜⠣\033[0m \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[0m \033[0;1;35;95m⠏\033[0m \033[0;1;33;93m⠣⠜\033[0m \033[0;1;32;92m⠏\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[0m \033[0;1;36;96m⠇⠸\033[0m \033[0;1;34;94m⠣\033[0;1;35;95m⠼\033[0m \033[0;1;31;91m⠜⠣\033[0m \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[0m \033[0;1;35;95m⠏\033[0m \033[0;1;33;93m⠣⠜\033[0m \033[0;1;32;92m⠏\033[0m \033[0;1;34;94m⠭⠕\033[0m |"
@@ -236,9 +264,8 @@ function run_start() {
## 运行结束 ## 运行结束
function run_end() { function run_end() {
echo -e "\n---------- 脚本执行结束 ----------" echo -e "\n✨️ \033[1;34mPowered by https://linuxmirrors.cn\033[0m\n"
echo -e "\n\033[1;34mPowered by https://linuxmirrors.cn\033[0m\n" # echo -e "\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'
@@ -268,6 +295,8 @@ function collect_system_info() {
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_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")"
SYSTEM_VERSION_NUMBER_MAJOR="${SYSTEM_VERSION_NUMBER%%.*}"
SYSTEM_VERSION_NUMBER_MINOR="${SYSTEM_VERSION_NUMBER#*.}"
## 定义系统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")"
## 判定当前系统派系 ## 判定当前系统派系
@@ -276,16 +305,21 @@ function collect_system_info() {
elif [ -s $File_RedHatRelease ]; then elif [ -s $File_RedHatRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_REDHAT}" SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
elif [ -s $File_OpenCloudOSRelease ]; then elif [ -s $File_OpenCloudOSRelease ]; then
if [[ "${SYSTEM_VERSION_NUMBER:0:1}" == 9 ]]; then # 拦截 OpenCloudOS 9 及以上版本,非红帽版本不支持从 Docker 官方仓库安装
if [[ "${SYSTEM_VERSION_NUMBER_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}" # 注RedHat 判断优先级需要高于 OpenCloudOS自 9.0 版本起不再基于红帽 SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 自 9.0 版本起不再基于红帽
elif [ -s $File_openEulerRelease ]; then elif [ -s $File_openEulerRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENEULER}" SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
elif [ -s $File_AnolisOSRelease ]; then elif [ -s $File_AnolisOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}" # 拦截 Anolis OS 8 版本,不支持从 Docker 官方仓库安装
if [[ "${SYSTEM_VERSION_NUMBER_MAJOR}" == 8 ]]; then
output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
fi
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}" # 自 8.8 版本起不再基于红帽
else else
output_error "无法判断当前运行环境或不支持当前操作系统!" output_error "当前操作系统不在本脚本的支持范围内,请前往官网查看支持列表"
fi fi
## 判定系统类型、版本、版本号 ## 判定系统类型、版本、版本号
case "${SYSTEM_FACTIONS}" in case "${SYSTEM_FACTIONS}" in
@@ -372,6 +406,10 @@ function collect_system_info() {
"${SYSTEM_RHEL}") "${SYSTEM_RHEL}")
SOURCE_BRANCH="rhel" SOURCE_BRANCH="rhel"
;; ;;
"${SYSTEM_ANOLISOS}")
# 拦截 Anolis OS 8 版本,不支持从 Docker 官方仓库安装
output_error "不支持当前操作系统,请参考如下命令自行安装:\n\ndnf install -y docker\nsystemctl enable --now docker"
;;
*) *)
SOURCE_BRANCH="centos" SOURCE_BRANCH="centos"
;; ;;
@@ -588,7 +626,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:0:1} in case "${SYSTEM_VERSION_NUMBER_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
;; ;;
@@ -605,7 +643,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:0:1} in case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
9) 9)
command="dnf" command="dnf"
;; ;;
@@ -685,9 +723,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:0:1} in case "${SYSTEM_VERSION_NUMBER_MAJOR}" in
7 | 8 | 9) 7 | 8 | 9)
target_version="${SYSTEM_VERSION_NUMBER:0:1}" target_version="${SYSTEM_VERSION_NUMBER_MAJOR}"
;; ;;
*) *)
target_version="9" # 使用较新的版本 target_version="9" # 使用较新的版本
@@ -813,6 +851,9 @@ function install_docker_engine() {
echo -e '{\n "registry-mirrors": ["https://SOURCE"]\n}' >$DockerConfig echo -e '{\n "registry-mirrors": ["https://SOURCE"]\n}' >$DockerConfig
sed -i "s|SOURCE|${SOURCE_REGISTRY}|g" $DockerConfig sed -i "s|SOURCE|${SOURCE_REGISTRY}|g" $DockerConfig
systemctl daemon-reload systemctl daemon-reload
if [[ $(systemctl is-active docker) == "active" ]]; then
systemctl restart docker
fi
fi fi
} }
@@ -834,9 +875,6 @@ function install_docker_engine() {
echo -e "\n$COMPLETE 检测到已安装 Docker Engine 最新版本,跳过安装" echo -e "\n$COMPLETE 检测到已安装 Docker Engine 最新版本,跳过安装"
rm -rf $DockerVersionFile rm -rf $DockerVersionFile
change_docker_registry_mirror change_docker_registry_mirror
if [[ $(systemctl is-active docker) == "active" ]]; then
systemctl restart docker
fi
systemctl enable --now docker >/dev/null 2>&1 systemctl enable --now docker >/dev/null 2>&1
check_version check_version
run_end run_end
@@ -857,6 +895,7 @@ function install_docker_engine() {
[Yy] | [Yy][Ee][Ss]) [Yy] | [Yy][Ee][Ss])
uninstall_original_version uninstall_original_version
install_main install_main
[ $? -ne 0 ] && output_error "安装 Docker Engine 失败"
;; ;;
[Nn] | [Nn][Oo]) ;; [Nn] | [Nn][Oo]) ;;
*) *)
@@ -867,9 +906,9 @@ function install_docker_engine() {
else else
uninstall_original_version uninstall_original_version
install_main install_main
[ $? -ne 0 ] && output_error "安装 Docker Engine 失败"
fi fi
change_docker_registry_mirror change_docker_registry_mirror
systemctl stop docker >/dev/null 2>&1
systemctl enable --now docker >/dev/null 2>&1 systemctl enable --now docker >/dev/null 2>&1
} }

View File

@@ -55,11 +55,11 @@
<td align="center">7 ~ 9</td> <td align="center">7 ~ 9</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="./docs/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.2em"></a>&nbsp;Fedora</td> <td><a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="./docs/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.15em"></a>&nbsp;Fedora</td>
<td align="center">30 ~ 41</td> <td align="center">30 ~ 41</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://www.centos.org" target="_blank"><img src="./docs/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.2em"></a>&nbsp;CentOS</td> <td><a href="https://www.centos.org" target="_blank"><img src="./docs/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.1em"></a>&nbsp;CentOS</td>
<td align="center">7 ~ 8 / Stream 8 ~ 9</td> <td align="center">7 ~ 8 / Stream 8 ~ 9</td>
</tr> </tr>
<tr> <tr>
@@ -84,7 +84,7 @@
</tr> </tr>
<tr> <tr>
<td><a href="https://openanolis.cn" target="_blank"><img src="./docs/assets/images/icon/anolis.png" width="16" height="16" style="vertical-align: -0.1em"></a>&nbsp;Anolis OS龙蜥</td> <td><a href="https://openanolis.cn" target="_blank"><img src="./docs/assets/images/icon/anolis.png" width="16" height="16" style="vertical-align: -0.1em"></a>&nbsp;Anolis OS龙蜥</td>
<td align="center">23</td> <td align="center">8 / 23</td>
</tr> </tr>
<tr> <tr>
<td><a href="https://www.opensuse.org" target="_blank"><img src="./docs/assets/images/icon/opensuse.svg" width="16" height="16" style="vertical-align: -0.15em"></a>&nbsp;openSUSE</td> <td><a href="https://www.opensuse.org" target="_blank"><img src="./docs/assets/images/icon/opensuse.svg" width="16" height="16" style="vertical-align: -0.15em"></a>&nbsp;openSUSE</td>

View File

@@ -84,14 +84,14 @@ hide:
| <a href="https://www.armbian.com" target="_blank"><img src="/assets/images/icon/armbian.png" width="16" height="16" style="vertical-align: -0.2em"></a> Armbian | _all_ | | <a href="https://www.armbian.com" target="_blank"><img src="/assets/images/icon/armbian.png" width="16" height="16" style="vertical-align: -0.2em"></a> Armbian | _all_ |
| <a href="https://www.proxmox.com" target="_blank"><img src="/assets/images/icon/proxmox.svg" width="16" height="16" style="vertical-align: -0.2em"></a> Proxmox | _all_ | | <a href="https://www.proxmox.com" target="_blank"><img src="/assets/images/icon/proxmox.svg" width="16" height="16" style="vertical-align: -0.2em"></a> Proxmox | _all_ |
| <a href="https://access.redhat.com/products/red-hat-enterprise-linux" target="_blank"><img src="/assets/images/icon/redhat.svg" width="16" height="16" style="vertical-align: -0.1em"></a> Red Hat Enterprise Linux :material-information-outline:{ title="使用 <code>CentOS Stream</code><code>CentOS</code> 源" } | _7 ~ 9_ | | <a href="https://access.redhat.com/products/red-hat-enterprise-linux" target="_blank"><img src="/assets/images/icon/redhat.svg" width="16" height="16" style="vertical-align: -0.1em"></a> Red Hat Enterprise Linux :material-information-outline:{ title="使用 <code>CentOS Stream</code><code>CentOS</code> 源" } | _7 ~ 9_ |
| <a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.2em"></a> Fedora | _30 ~ 41_ | | <a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.15em"></a> Fedora | _30 ~ 41_ |
| <a href="https://www.centos.org" target="_blank"><img src="/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.2em"></a> CentOS | _7 ~ 8 / Stream 8 ~ 9_ | | <a href="https://www.centos.org" target="_blank"><img src="/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.1em"></a> CentOS | _7 ~ 8 / Stream 8 ~ 9_ |
| <a href="https://rockylinux.org" target="_blank"><img src="/assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"></a> Rocky Linux | _8 ~ 9_ | | <a href="https://rockylinux.org" target="_blank"><img src="/assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"></a> Rocky Linux | _8 ~ 9_ |
| <a href="https://almalinux.org/zh-hans" target="_blank"><img src="/assets/images/icon/almalinux.svg" width="16" height="16" style="vertical-align: -0.15em"></a> AlmaLinux | _8 ~ 9_ | | <a href="https://almalinux.org/zh-hans" target="_blank"><img src="/assets/images/icon/almalinux.svg" width="16" height="16" style="vertical-align: -0.15em"></a> AlmaLinux | _8 ~ 9_ |
| <a href="https://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS鸥栖 | _8.6 ~ 9 / Stream 23_ | | <a href="https://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS鸥栖 | _8.6 ~ 9 / Stream 23_ |
| <a href="https://www.openeuler.org/zh" target="_blank"><img src="/assets/images/icon/openeuler.ico" width="16" height="16" style="vertical-align: -0.2em"></a> openEuler开源欧拉 | _21 ~ 24_ | | <a href="https://www.openeuler.org/zh" target="_blank"><img src="/assets/images/icon/openeuler.ico" width="16" height="16" style="vertical-align: -0.2em"></a> openEuler开源欧拉 | _21 ~ 24_ |
| <a href="https://www.openkylin.top" target="_blank"><img src="/assets/images/icon/openkylin.ico" width="16" height="16" style="vertical-align: -0.25em"></a> openKylin开放麒麟 | _all_ | | <a href="https://www.openkylin.top" target="_blank"><img src="/assets/images/icon/openkylin.ico" width="16" height="16" style="vertical-align: -0.25em"></a> openKylin开放麒麟 | _all_ |
| <a href="https://openanolis.cn" target="_blank"><img src="/assets/images/icon/anolis.png" width="16" height="16" style="vertical-align: -0.1em"></a> Anolis OS龙蜥 | _23_ | | <a href="https://openanolis.cn" target="_blank"><img src="/assets/images/icon/anolis.png" width="16" height="16" style="vertical-align: -0.1em"></a> Anolis OS龙蜥 | _8 / 23_ |
| <a href="https://www.opensuse.org" target="_blank"><img src="/assets/images/icon/opensuse.svg" width="16" height="16"></a> openSUSE | _Leep 15 / Tumbleweed_ | | <a href="https://www.opensuse.org" target="_blank"><img src="/assets/images/icon/opensuse.svg" width="16" height="16"></a> openSUSE | _Leep 15 / Tumbleweed_ |
| <a href="https://archlinux.org" target="_blank"><img src="/assets/images/icon/arch-linux.ico" width="16" height="16" style="vertical-align: -0.15em"></a> Arch Linux | _all_ | | <a href="https://archlinux.org" target="_blank"><img src="/assets/images/icon/arch-linux.ico" width="16" height="16" style="vertical-align: -0.15em"></a> Arch Linux | _all_ |
| <a href="https://www.alpinelinux.org" target="_blank"><img src="/assets/images/icon/alpine.png" width="16" height="16" style="vertical-align: -0.15em"></a> Alpine Linux | _v3 / edge_ | | <a href="https://www.alpinelinux.org" target="_blank"><img src="/assets/images/icon/alpine.png" width="16" height="16" style="vertical-align: -0.15em"></a> Alpine Linux | _v3 / edge_ |

View File

@@ -79,10 +79,11 @@ hide:
| `--source` | 指定 `Docker CE` 源地址(域名或IP) | 地址 | | `--source` | 指定 `Docker CE` 源地址(域名或IP) | 地址 |
| `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 | | `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 |
| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 | | `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 |
| `--install-latest` | 控制是否安装最新版本的 Docker Engine | `true` 或 `false` | | `--install-latest` | 是否安装最新版本的 Docker Engine | `true` 或 `false` |
| `--clean-screen` | 是否在运行前清除屏幕上的所有内容 | `true` 或 `false` |
| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 | | `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
> 软件源格式 `<指定WEB协议>://<软件源地址>/<软件源分支>` > 软件源格式 `<WEB协议>://<软件源地址>/<软件源分支>`
### 关于服务报错无法启动 ### 关于服务报错无法启动

View File

@@ -304,12 +304,13 @@ hide:
| `--backup` | 是否备份原有软件源 | `true` 或 `false` | | `--backup` | 是否备份原有软件源 | `true` 或 `false` |
| `--upgrade-software` | 是否更新软件包 | `true` 或 `false` | | `--upgrade-software` | 是否更新软件包 | `true` 或 `false` |
| `--clean-cache` | 是否清理下载缓存 | `true` 或 `false` | | `--clean-cache` | 是否清理下载缓存 | `true` 或 `false` |
| `--clean-screen` | 是否在运行前清除屏幕上的所有内容 | `true` 或 `false` |
| `--print-diff` | 是否打印源文件修改前后差异 | `true` 或 `false` | | `--print-diff` | 是否打印源文件修改前后差异 | `true` 或 `false` |
| `--only-epel` | 仅更换 EPEL 软件源模式 | 无 | | `--only-epel` | 仅更换 EPEL 软件源模式 | 无 |
| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 | | `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
| `--help` | 查看帮助菜单 | 无 | | `--help` | 查看帮助菜单 | 无 |
> 软件源格式 `<指定WEB协议>://<软件源地址>/<软件源分支>` > 软件源格式 `<WEB协议>://<软件源地址>/<软件源分支>`
接下来是一些高级用法的举例 接下来是一些高级用法的举例
@@ -339,8 +340,8 @@ hide:
| <a href="https://www.armbian.com" target="_blank"><img src="/assets/images/icon/armbian.png" width="16" height="16" style="vertical-align: -0.2em"></a> Armbian | armbian | | <a href="https://www.armbian.com" target="_blank"><img src="/assets/images/icon/armbian.png" width="16" height="16" style="vertical-align: -0.2em"></a> Armbian | armbian |
| <a href="https://www.proxmox.com" target="_blank"><img src="/assets/images/icon/proxmox.svg" width="16" height="16" style="vertical-align: -0.2em"></a> Proxmox | proxmox | | <a href="https://www.proxmox.com" target="_blank"><img src="/assets/images/icon/proxmox.svg" width="16" height="16" style="vertical-align: -0.2em"></a> Proxmox | proxmox |
| <a href="https://access.redhat.com/products/red-hat-enterprise-linux" target="_blank"><img src="/assets/images/icon/redhat.svg" width="16" height="16" style="vertical-align: -0.1em"></a> Red Hat Enterprise Linux :material-information-outline:{ title="9版本使用 <code>CentOS Stream</code> 7、8版本使用<code>CentOS</code>" } | centos / centos-stream / centos-altarch / centos-vault | | <a href="https://access.redhat.com/products/red-hat-enterprise-linux" target="_blank"><img src="/assets/images/icon/redhat.svg" width="16" height="16" style="vertical-align: -0.1em"></a> Red Hat Enterprise Linux :material-information-outline:{ title="9版本使用 <code>CentOS Stream</code> 7、8版本使用<code>CentOS</code>" } | centos / centos-stream / centos-altarch / centos-vault |
| <a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.2em"></a> Fedora | fedora | | <a href="https://fedoraproject.org/zh-Hans" target="_blank"><img src="/assets/images/icon/fedora.ico" width="16" height="16" style="vertical-align: -0.15em"></a> Fedora | fedora |
| <a href="https://www.centos.org" target="_blank"><img src="/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.2em"></a> CentOS | centos / centos-stream / centos-altarch / centos-vault | | <a href="https://www.centos.org" target="_blank"><img src="/assets/images/icon/centos.svg" width="16" height="16" style="vertical-align: -0.1em"></a> CentOS | centos / centos-stream / centos-altarch / centos-vault |
| <a href="https://rockylinux.org" target="_blank"><img src="/assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"></a> Rocky Linux | rocky | | <a href="https://rockylinux.org" target="_blank"><img src="/assets/images/icon/rocky-linux.svg" width="16" height="16" style="vertical-align: -0.25em"></a> Rocky Linux | rocky |
| <a href="https://almalinux.org/zh-hans" target="_blank"><img src="/assets/images/icon/almalinux.svg" width="16" height="16" style="vertical-align: -0.15em"></a> AlmaLinux | almalinux / almalinux-vault | | <a href="https://almalinux.org/zh-hans" target="_blank"><img src="/assets/images/icon/almalinux.svg" width="16" height="16" style="vertical-align: -0.15em"></a> AlmaLinux | almalinux / almalinux-vault |
| <a href="https://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS鸥栖 | opencloudos | | <a href="https://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS鸥栖 | opencloudos |
@@ -451,11 +452,17 @@ hide:
## 定制脚本 ## 定制脚本
如果你是其它项目的开发者希望通过本项目来制作专属脚本,目前已经有国内教育单位镜像站的维护者这样做了,下面简单介绍一下具体定制方法 如果你是其它项目的开发者希望通过本项目来制作专属脚本那么请参考下面提到的内容,目前已经有国内教育单位镜像站的维护者这样做了。
1. 首先不建议修改代码的底层逻辑,应尽量与本项目源码保持同步,脚本内容执行顺序由 `main` 函数控制,代码逻辑清晰 1. 首先不建议修改代码的底层逻辑,应尽量与本项目源码保持同步,脚本内容执行顺序由 `main` 函数控制,代码逻辑清晰
2. 你可以简单去除一些无关内容,例如将三个软件源列表(数组)中的内容删除 `例:mirror_list_default=()` 2. 你可以简单去除一些无关内容,例如将软件源列表(数组)`mirror_list_(default|edu|abroad|extranet|intranet)` 中的内容删除,例:`mirror_list_default=()`
3. 脚本主要功能配置是由统一的变量控制的,命令选项亦是如此,这些全局变量由全大写字母构成并遵循下划线命名法,具体变量详见如下表格,你只需要将这些变量声明在脚本头部(预留注释区域)即可快速完成定制 3. 如果你想定制脚本打印内容可直接修改 `run_start` `run_end` `print_title` 这三个函数中的内容
4. 如果你想添加自定义 Shell 内容详见 `main` 函数中脚本执行顺序,可以在对应位置直接插入内容也可以封装函数后调用
5. 如果你想要缩减脚本体积那么可以删除一些不必要的内容,除了上面提到的软件源列表还有一些涉及脚本工作的部分模块内容,具体如下:
1. 首先在删除内容时应尽可能保留脚本原始结构,直接把涉及函数中的内容删除即可,使其保留为空函数
2. 可以删除一些不使用(操作系统)的软件源原始内容 `gen_repo_files_xxx`,这些内容占据了脚本 `60%` 以上的体积
3. 如果你不使用某些功能那么可以删除对应功能模块函数中的内容,`命令选项 handle_command_options`、`关闭防火墙 close_firewall_service`、`备份原有软件源 backup_original_mirrors`、`更新软件包 upgrade_software`
6. 脚本主要功能配置是由统一的变量控制的,命令选项亦是如此,这些全局变量由全大写字母构成并遵循下划线命名法,具体变量详见如下表格,你只需要将这些变量声明在脚本头部(预留注释区域)即可快速完成定制
| 变量名 | 含义 | 值类型 | | 变量名 | 含义 | 值类型 |
| :-: | :-: | :-: | | :-: | :-: | :-: |
@@ -482,6 +489,7 @@ hide:
| `IGNORE_BACKUP_TIPS` | 忽略覆盖备份提示(即不覆盖备份) | `true` 或 `false` | | `IGNORE_BACKUP_TIPS` | 忽略覆盖备份提示(即不覆盖备份) | `true` 或 `false` |
| `UPGRADE_SOFTWARE` | 是否更新软件包 | `true` 或 `false` | | `UPGRADE_SOFTWARE` | 是否更新软件包 | `true` 或 `false` |
| `CLEAN_CACHE` | 是否清理下载缓存 | `true` 或 `false` | | `CLEAN_CACHE` | 是否清理下载缓存 | `true` 或 `false` |
| `CLEAN_SCREEN` | 是否在运行前清除屏幕上的所有内容 | `true` 或 `false` |
| `PRINT_DIFF` | 是否打印源文件修改前后差异 | `true` 或 `false` | | `PRINT_DIFF` | 是否打印源文件修改前后差异 | `true` 或 `false` |
> 部分变量存在默认值,未涉及的变量无需声明为空值(空字符串),另外如果对应功能配置不存在那么就可能会出现交互 > 部分变量存在默认值,未涉及的变量无需声明为空值(空字符串),另外如果对应功能配置不存在那么就可能会出现交互