Skip to content

Commit

Permalink
新增适配 Anolis OS
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperManito committed Oct 23, 2024
1 parent 2411586 commit 2c7a454
Show file tree
Hide file tree
Showing 9 changed files with 203 additions and 104 deletions.
218 changes: 153 additions & 65 deletions ChangeMirrors.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
## Modified: 2024-10-22
## Modified: 2024-10-24
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
Expand Down Expand Up @@ -163,6 +163,7 @@ SYSTEM_ALMALINUX="AlmaLinux"
SYSTEM_FEDORA="Fedora"
SYSTEM_OPENCLOUDOS="OpenCloudOS"
SYSTEM_OPENEULER="openEuler"
SYSTEM_ANOLISOS="Anolis OS"
SYSTEM_OPENSUSE="openSUSE"
SYSTEM_ARCH="Arch"
SYSTEM_ALPINE="Alpine"
Expand All @@ -175,6 +176,7 @@ File_DebianVersion=/etc/debian_version
File_ArmbianRelease=/etc/armbian-release
File_OpenCloudOSRelease=/etc/opencloudos-release
File_openEulerRelease=/etc/openEuler-release
File_AnolisOSRelease=/etc/anolis-release
File_ArchLinuxRelease=/etc/arch-release
File_AlpineRelease=/etc/alpine-release
File_GentooRelease=/etc/gentoo-release
Expand Down Expand Up @@ -603,6 +605,8 @@ function collect_system_info() {
SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
elif [ -s $File_openEulerRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
elif [ -s $File_AnolisOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}"
elif [ -f $File_ArchLinuxRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ARCH}"
elif [ -f $File_AlpineRelease ]; then
Expand Down Expand Up @@ -685,6 +689,11 @@ function collect_system_info() {
is_supported="false"
fi
;;
"${SYSTEM_ANOLISOS}")
if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 23 ]]; then
is_supported="false"
fi
;;
"${SYSTEM_OPENSUSE}")
case "${SYSTEM_ID}" in
"opensuse-leap")
Expand Down Expand Up @@ -799,7 +808,7 @@ function collect_system_info() {
"${SYSTEM_DEBIAN}" | "${SYSTEM_ALPINE}")
SYNC_MIRROR_TEXT="更新软件源"
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
SYNC_MIRROR_TEXT="生成软件源缓存"
;;
"${SYSTEM_OPENSUSE}")
Expand All @@ -822,9 +831,16 @@ function check_command_options() {
fi
fi
if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]] || [[ "${SYSTEM_FACTIONS}" != "${SYSTEM_REDHAT}" && "${SYSTEM_FACTIONS}" && "${SYSTEM_OPENCLOUDOS}" || "${SYSTEM_FACTIONS}" && "${SYSTEM_OPENEULER}" ]]; then
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}")
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]]; then
output_error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
fi
;;
*)
output_error "当前系统不支持安装 EPEL 附件软件包故无法使用相关命令选项,请确认后重试!"
fi
;;
esac
fi
if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_SECURITY_BRANCH}" == "true" ]]; then
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_DEBIAN}" ]]; then
Expand Down Expand Up @@ -1028,7 +1044,7 @@ function choose_install_epel_packages() {
## 判断是否支持且需要处理 EPEL 附加软件包
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}")
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_FEDORA}" ]] || [[ "${INSTALL_EPEL}" == "false" ]]; then
INSTALL_EPEL="false"
return
Expand Down Expand Up @@ -1206,7 +1222,7 @@ function backup_original_mirrors() {
backup_file $File_LinuxMintSourceList $File_LinuxMintSourceListBackup "official-package-repositories.list"
fi
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
# /etc/yum.repos.d
backup_dir $Dir_YumRepos $Dir_YumReposBackup
;;
Expand Down Expand Up @@ -1335,6 +1351,9 @@ function remove_original_mirrors() {
"${SYSTEM_OPENEULER}")
[ -d $Dir_YumRepos ] && rm -rf $Dir_YumRepos/openEuler.repo
;;
"${SYSTEM_ANOLISOS}")
[ -d $Dir_YumRepos ] && rm -rf $Dir_YumRepos/AnolisOS*
;;
"${SYSTEM_OPENSUSE}")
[ -d $Dir_openSUSERepos ] && ls $Dir_openSUSERepos/ | grep -E "^repo-" | grep -Ev "openh264" | xargs rm -rf
;;
Expand Down Expand Up @@ -1393,7 +1412,7 @@ function change_mirrors_main() {
diff_file $File_LinuxMintSourceListBackup $File_LinuxMintSourceList
fi
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
diff_dir $Dir_YumReposBackup $Dir_YumRepos
;;
"${SYSTEM_OPENSUSE}")
Expand Down Expand Up @@ -1427,6 +1446,9 @@ function change_mirrors_main() {
"${SYSTEM_OPENEULER}")
change_mirrors_openEuler
;;
"${SYSTEM_ANOLISOS}")
change_mirrors_AnolisOS
;;
"${SYSTEM_OPENSUSE}")
change_mirrors_openSUSE
;;
Expand All @@ -1450,20 +1472,8 @@ function change_mirrors_main() {
"${SYSTEM_DEBIAN}")
apt-get update
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
local package_manager="yum"
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
case ${SYSTEM_VERSION_NUMBER:0:1} in
9)
package_manager="dnf"
;;
esac
;;
"${SYSTEM_FEDORA}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
package_manager="dnf"
;;
esac
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
local package_manager="$(get_package_manager)"
$package_manager makecache
;;
"${SYSTEM_OPENSUSE}")
Expand Down Expand Up @@ -1520,20 +1530,8 @@ function upgrade_software() {
apt-get autoremove -y >/dev/null 2>&1
apt-get clean >/dev/null 2>&1
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
local package_manager="yum"
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
case ${SYSTEM_VERSION_NUMBER:0:1} in
9)
package_manager="dnf"
;;
esac
;;
"${SYSTEM_FEDORA}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
package_manager="dnf"
;;
esac
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
local package_manager="$(get_package_manager)"
$package_manager autoremove -y >/dev/null 2>&1
$package_manager clean packages -y >/dev/null 2>&1
;;
Expand Down Expand Up @@ -1584,20 +1582,8 @@ function upgrade_software() {
"${SYSTEM_DEBIAN}")
apt-get upgrade -y
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
local package_manager="yum"
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
case ${SYSTEM_VERSION_NUMBER:0:1} in
9)
package_manager="dnf"
;;
esac
;;
"${SYSTEM_FEDORA}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
package_manager="dnf"
;;
esac
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
local package_manager="$(get_package_manager)"
$package_manager update -y --skip-broken
;;
"${SYSTEM_OPENSUSE}")
Expand Down Expand Up @@ -2011,6 +1997,31 @@ function change_mirrors_openEuler() {
change_mirrors_or_install_EPEL # EPEL 附加软件包
}
## 更换 Anolis OS 发行版软件源
function change_mirrors_AnolisOS() {
## 生成官方 repo 源文件
gen_repo_files_AnolisOS "${SYSTEM_VERSION_NUMBER}"
## 使用官方源
if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
change_mirrors_or_install_EPEL # EPEL 附加软件包
return
fi
## 修改源
cd $Dir_YumRepos
case ${SYSTEM_VERSION_NUMBER:0:1} in
23)
sed -e "s|https://mirrors.openanolis.cn/anolis|${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}|g" \
-i \
AnolisOS-Debuginfo.repo \
AnolisOS.repo \
AnolisOS-Source.repo
;;
esac
change_mirrors_or_install_EPEL # EPEL 附加软件包
}
## 更换 openSUSE 发行版软件源
function change_mirrors_openSUSE() {
## 生成官方 repo 源文件
Expand Down Expand Up @@ -2159,9 +2170,6 @@ function change_mirrors_or_install_EPEL() {
target_version="${SYSTEM_VERSION_NUMBER:0:1}"
fi
;;
"${SYSTEM_OPENEULER}")
target_version="9"
;;
*)
return
;;
Expand All @@ -2173,19 +2181,7 @@ function change_mirrors_or_install_EPEL() {
## 安装 EPEL 软件包
if [ "${VERIFICATION_EPEL}" -ne 0 ]; then
echo -e "\n${WORKING} 安装 epel-release 软件包...\n"
local package_manager="yum"
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
case ${SYSTEM_VERSION_NUMBER:0:1} in
9)
package_manager="dnf"
;;
esac
;;
"${SYSTEM_FEDORA}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}")
package_manager="dnf"
;;
esac
local package_manager="$(get_package_manager)"
$package_manager install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-${target_version}.noarch.rpm
rm -rf $Dir_YumRepos/epel*
fi
Expand All @@ -2206,6 +2202,24 @@ function change_mirrors_or_install_EPEL() {
$Dir_YumRepos/epel*
}
## 选择系统包管理器
function get_package_manager() {
local command="yum"
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_RHEL}")
case ${SYSTEM_VERSION_NUMBER:0:1} in
9)
command="dnf"
;;
esac
;;
"${SYSTEM_FEDORA}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
command="dnf"
;;
esac
echo "${command}"
}
##############################################################################
## 生成 CentOS 官方 repo 源文件
Expand Down Expand Up @@ -5040,6 +5054,80 @@ gpgkey=http://repo.openeuler.org/openEuler-version/source/RPM-GPG-KEY-openEuler
EOF
}
## 生成 Anolis OS 官方 repo 源文件
function gen_repo_files_AnolisOS() {
case "$1" in
23)
cat <<'EOF' >$Dir_YumRepos/AnolisOS.repo
[os]
name=AnolisOS-$releasever - os
baseurl=http://mirrors.openanolis.cn/anolis/$releasever/os/$basearch/os
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[updates]
name=AnolisOS-$releasever - updates
baseurl=http://mirrors.openanolis.cn/anolis/$releasever/updates/$basearch/os
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[kernel-6]
name=AnolisOS-$releasever - kernel-6
baseurl=http://mirrors.openanolis.cn/anolis/$releasever/kernel-6/$basearch/os
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS
gpgcheck=1
EOF
cat <<'EOF' >$Dir_YumRepos/AnolisOS-Source.repo
[os-source]
name=AnolisOS-$releasever - os Source
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/os/source/
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[updates-source]
name=AnolisOS-$releasever - updates Source
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/updates/source/
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[kernel-source]
name=AnolisOS-$releasever - kernel-6 Source
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/kernel-6/source/
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
EOF
cat <<'EOF' >$Dir_YumRepos/AnolisOS-Debuginfo.repo
[os-debuginfo]
name=AnolisOS-$releasever - os Debuginfo
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/os/$basearch/debug
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[updates-debuginfo]
name=AnolisOS-$releasever - updates Debuginfo
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/updates/$basearch/debug
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
[kernel-6-debuginfo]
name=AnolisOS-$releasever - kernel-6 Debuginfo
baseurl=https://mirrors.openanolis.cn/anolis/$releasever/kernel-6/$basearch/debug
enabled=0
gpgkey=https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS
gpgcheck=1
EOF
;;
esac
}
## 生成 openSUSE 官方 repo 源文件
function gen_repo_files_openSUSE() {
case "$1" in
Expand Down
Loading

0 comments on commit 2c7a454

Please sign in to comment.