Skip to content

Commit

Permalink
新增适配 openKylin 开放麒麟操作系统
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperManito committed Dec 2, 2024
1 parent 01c6afa commit 5dcdc2b
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 68 deletions.
61 changes: 45 additions & 16 deletions ChangeMirrors.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
## Modified: 2024-11-14
## Modified: 2024-12-02
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
Expand Down Expand Up @@ -170,6 +170,7 @@ SYSTEM_FEDORA="Fedora"
SYSTEM_OPENCLOUDOS="OpenCloudOS"
SYSTEM_OPENEULER="openEuler"
SYSTEM_ANOLISOS="Anolis OS"
SYSTEM_OPENKYLIN="openKylin"
SYSTEM_OPENSUSE="openSUSE"
SYSTEM_ARCH="Arch"
SYSTEM_ALPINE="Alpine"
Expand All @@ -183,6 +184,7 @@ File_ArmbianRelease=/etc/armbian-release
File_OpenCloudOSRelease=/etc/opencloudos-release
File_openEulerRelease=/etc/openEuler-release
File_AnolisOSRelease=/etc/anolis-release
File_openKylinVersion=/etc/kylin-version/kylin-system-version.conf
File_ArchLinuxRelease=/etc/arch-release
File_AlpineRelease=/etc/alpine-release
File_GentooRelease=/etc/gentoo-release
Expand Down Expand Up @@ -270,7 +272,7 @@ function handle_command_options() {
--branch-vault 指定 CentOS/AlmaLinux 系统 vault 仓库的软件源分支(路径) 分支名
--branch-portage 指定 Gentoo 系统 portage 仓库的软件源分支(路径) 分支名
--branch-base-system 指定 Linux Mint 系统底层系统的软件源分支(路径) 分支名
--codename 指定 Debian 系操作系统的版本代号 代号名称
--codename 指定 Debian 系/openKylin 操作系统的版本代号 代号名称
--protocol 指定 WEB 协议 http 或 https
--use-intranet-source 是否优先使用内网软件源地址 true 或 false
--use-official-source 是否使用目标操作系统的官方软件源 true 或 false
Expand Down Expand Up @@ -632,28 +634,30 @@ function collect_system_info() {
## 判定当前系统派系
if [ -s $File_DebianVersion ]; then
SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
elif [ -s $File_RedHatRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
elif [ -s $File_OpenCloudOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,自 9.0 版本起不再基于红帽
elif [ -s $File_openEulerRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
elif [ -s $File_AnolisOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}"
elif [ -s $File_openKylinVersion ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENKYLIN}"
elif [ -f $File_ArchLinuxRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ARCH}"
elif [ -f $File_AlpineRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ALPINE}"
elif [ -f $File_GentooRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_GENTOO}"
elif [ -s $File_RedHatRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
elif [ -s $File_OpenCloudOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENCLOUDOS}" # 注:RedHat 判断优先级需要高于 OpenCloudOS,自 9.0 版本起不再基于红帽
elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then
SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}"
else
output_error "无法判断当前运行环境!"
fi
## 判定系统类型、版本、版本号
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
if [ ! -x /usr/bin/lsb_release ]; then
apt-get install -y lsb-release
if [ $? -ne 0 ]; then
Expand Down Expand Up @@ -736,7 +740,7 @@ function collect_system_info() {
;;
esac
;;
"${SYSTEM_KALI}" | "${SYSTEM_DEEPIN}" | "${SYSTEM_ZORIN}" | "${SYSTEM_ARCH}" | "${SYSTEM_ALPINE}" | "${SYSTEM_GENTOO}")
"${SYSTEM_KALI}" | "${SYSTEM_DEEPIN}" | "${SYSTEM_ZORIN}" | "${SYSTEM_ARCH}" | "${SYSTEM_ALPINE}" | "${SYSTEM_GENTOO}" | "${SYSTEM_OPENKYLIN}")
# 理论全部支持或不作判断
;;
*)
Expand Down Expand Up @@ -834,7 +838,7 @@ function collect_system_info() {
fi
## 定义软件源更新文字
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}" | "${SYSTEM_ALPINE}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_ALPINE}" | "${SYSTEM_OPENKYLIN}")
SYNC_MIRROR_TEXT="更新软件源"
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
Expand All @@ -855,7 +859,7 @@ function check_command_options() {
output_error "两种模式不可同时使用!"
fi
if [[ "${DEBIAN_CODENAME}" ]]; then
if [[ "${SYSTEM_FACTIONS}" != "${SYSTEM_DEBIAN}" ]]; then
if [[ "${SYSTEM_FACTIONS}" != "${SYSTEM_DEBIAN}" && "${SYSTEM_FACTIONS}" != "${SYSTEM_OPENKYLIN}" ]]; then
output_error "当前系统不支持使用指定版本代号命令选项,请确认后重试!"
fi
fi
Expand Down Expand Up @@ -1216,7 +1220,7 @@ function backup_original_mirrors() {
BACKED_UP="false" # 是否已备份
if [[ "${BACKUP}" == "true" ]]; then
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_LINUX_MINT}" ]]; then
# /etc/apt/sources.list
backup_file $File_DebianSourceList $File_DebianSourceListBackup "sources.list"
Expand Down Expand Up @@ -1273,7 +1277,7 @@ function backup_original_mirrors() {
## 移除原有软件源
function remove_original_mirrors() {
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_LINUX_MINT}" ]]; then
[ -f $File_DebianSourceList ] && sed -i '1,$d' $File_DebianSourceList
fi
Expand Down Expand Up @@ -1416,7 +1420,7 @@ function change_mirrors_main() {
if [[ -x /usr/bin/diff && "${BACKED_UP}" == "true" ]]; then
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_LINUX_MINT}" ]]; then
diff_file $File_DebianSourceListBackup $File_DebianSourceList
fi
Expand Down Expand Up @@ -1482,6 +1486,9 @@ function change_mirrors_main() {
"${SYSTEM_GENTOO}")
change_mirrors_Gentoo
;;
"${SYSTEM_OPENKYLIN}")
change_mirrors_openKylin
;;
esac
## 比较差异
if [[ "${PRINT_DIFF}" == "true" ]]; then
Expand All @@ -1490,7 +1497,7 @@ function change_mirrors_main() {
## 更新软件源
echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n"
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
apt-get update
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
Expand Down Expand Up @@ -1549,7 +1556,7 @@ function upgrade_software() {
fi
## 调用系统命令
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
apt-get autoremove -y >/dev/null 2>&1
apt-get clean >/dev/null 2>&1
;;
Expand Down Expand Up @@ -1601,7 +1608,7 @@ function upgrade_software() {
echo -e ''
## 调用系统命令
case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}")
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
apt-get upgrade -y
;;
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_ANOLISOS}")
Expand Down Expand Up @@ -2172,6 +2179,28 @@ sync-uri = rsync://${SOURCE_PORTAGE:-"${SOURCE}"}/${SOURCE_PORTAGE_BRANCH:-"gent
auto-sync = yes" >$File_GentooReposConf
}
## 更换 openKylin 发行版软件源
function change_mirrors_openKylin() {
function gen_source() {
echo "deb ${1} ${2} ${3}
# deb-src ${1} ${2} ${3}
deb ${1} ${2}-security ${3}
# deb-src ${1} ${2}-security ${3}
deb ${1} ${2}-updates ${3}
# deb-src ${1} ${2}-updates ${3}"
}
## 使用官方源
if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
SOURCE="archive.build.openkylin.top"
fi
local repository_sections="main cross pty" # 仓库区域
local tips="## 默认禁用源码镜像以提高速度,如需启用请自行取消注释"
local base_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}"
echo "${tips}
$(gen_source "${base_url}" "${SYSTEM_VERSION_CODENAME}" "${repository_sections}")" >>$File_DebianSourceList
}
## EPEL (Extra Packages for Enterprise Linux) 附加软件包 - 安装或更换软件源
function change_mirrors_or_install_EPEL() {
if [[ "${INSTALL_EPEL}" != "true" ]]; then
Expand Down
10 changes: 5 additions & 5 deletions DockerInstallation.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
## Modified: 2024-11-02
## Modified: 2024-12-02
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
Expand Down Expand Up @@ -273,17 +273,17 @@ function collect_system_info() {
## 判定当前系统派系
if [ -s $File_DebianVersion ]; then
SYSTEM_FACTIONS="${SYSTEM_DEBIAN}"
elif [ -s $File_openEulerRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
elif [ -s $File_AnolisOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}"
elif [ -s $File_RedHatRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_REDHAT}"
elif [ -s $File_OpenCloudOSRelease ]; then
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,自 9.0 版本起不再基于红帽
elif [ -s $File_openEulerRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_OPENEULER}"
elif [ -s $File_AnolisOSRelease ]; then
SYSTEM_FACTIONS="${SYSTEM_ANOLISOS}"
else
output_error "无法判断当前运行环境或不支持当前操作系统!"
fi
Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<td align="center">19 ~ 22 / LMDE 6</td>
</tr>
<tr>
<td><a href="https://www.deepin.org" target="_blank"><img src="./docs/assets/images/icon/deepin.png" width="16" height="16" style="vertical-align: -0.15em"></a>&nbsp;deepin</td>
<td><a href="https://www.deepin.org" target="_blank"><img src="./docs/assets/images/icon/deepin.png" width="16" height="16" style="vertical-align: -0.15em"></a>&nbsp;Deepin(深度)</td>
<td align="center">all</td>
</tr>
<tr>
Expand Down Expand Up @@ -71,17 +71,21 @@
<td align="center">8 ~ 9</td>
</tr>
<tr>
<td><a href="https://www.opencloudos.org" target="_blank"><img src="./docs/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a>&nbsp;OpenCloudOS</td>
<td><a href="https://www.opencloudos.org" target="_blank"><img src="./docs/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a>&nbsp;OpenCloudOS(鸥栖)</td>
<td align="center">8 ~ 9</td>
</tr>
<tr>
<td><a href="https://www.openeuler.org/zh" target="_blank"><img src="./docs/assets/images/icon/openeuler.ico" width="16" height="16" style="vertical-align: -0.2em"></a>&nbsp;openEuler</td>
<td><a href="https://www.openeuler.org/zh" target="_blank"><img src="./docs/assets/images/icon/openeuler.ico" width="16" height="16" style="vertical-align: -0.2em"></a>&nbsp;openEuler(开源欧拉)</td>
<td align="center">21 ~ 24</td>
</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>
</tr>
<tr>
<td><a href="https://www.openkylin.top" target="_blank"><img src="./docs/assets/images/icon/openkylin.ico" width="16" height="16" style="vertical-align: -0.25em"></a>&nbsp;openKylin(开放麒麟)</td>
<td align="center">all</td>
</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 align="center">Leep 15 / Tumbleweed</td>
Expand All @@ -102,7 +106,7 @@

<p align="center">
<strong>
<a href="https://linuxmirrors.cn/use" style="text-decoration: none;">使用方法</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://linuxmirrors.cn/mirrors" style="text-decoration: none;">软件源列表</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://linuxmirrors.cn/help" style="text-decoration: none;">常见问题</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://linuxmirrors.cn/other" style="text-decoration: none;">Docker 安装(额外脚本)</a>
<a href="https://linuxmirrors.cn/use" style="text-decoration: none;">使用方法</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://linuxmirrors.cn/mirrors" style="text-decoration: none;">软件源列表</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://linuxmirrors.cn/other" style="text-decoration: none;">Docker 安装(额外脚本)</a>
</strong>
</p>

Expand Down
Binary file added docs/assets/images/icon/openkylin.ico
Binary file not shown.
9 changes: 5 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ hide:
| <a href="https://cn.ubuntu.com" target="_blank"><img src="/assets/images/icon/ubuntu.svg" width="16" height="16" style="vertical-align: -0.1em"></a> Ubuntu :material-information-outline:{ title="支持乌班图家族衍生操作系统,例如 <code>优麒麟</code> <code>Kubuntu</code> 等<br/>由于迭代速度较快并不直接支持所有非 LTS 的版本,具体详见使用文档中的高级用法" } | _14 ~ 24_ |
| <a href="https://www.kali.org" target="_blank"><img src="/assets/images/icon/kali-linux.svg" width="16" height="16"></a> Kali Linux | _all_ |
| <a href="https://linuxmint.com" target="_blank"><img src="/assets/images/icon/linux-mint.ico" width="16" height="16" style="vertical-align: -0.2em"></a> Linux Mint | _19 ~ 22 / LMDE 6_ |
| <a href="https://www.deepin.org" target="_blank"><img src="/assets/images/icon/deepin.png" width="16" height="16" style="vertical-align: -0.25em"></a> Deepin | _all_ |
| <a href="https://www.deepin.org" target="_blank"><img src="/assets/images/icon/deepin.png" width="16" height="16" style="vertical-align: -0.25em"></a> Deepin(深度) | _all_ |
| <a href="https://zorin.com/os" target="_blank"><img src="/assets/images/icon/zorin-os.png" width="16" height="16" style="vertical-align: -0.15em"></a> Zorin OS | _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_ |
Expand All @@ -88,9 +88,10 @@ hide:
| <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://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://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS | _8 ~ 9_ |
| <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://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://www.opencloudos.org" target="_blank"><img src="/assets/images/icon/opencloudos.png" width="16" height="16" style="vertical-align: -0.25em"></a> OpenCloudOS(鸥栖) | _8 ~ 9_ |
| <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://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://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.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://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_ |
Expand Down
Loading

0 comments on commit 5dcdc2b

Please sign in to comment.