@@ -55,21 +55,51 @@ check_os() {
5555 if grep -qs " ubuntu" /etc/os-release; then
5656 os=" ubuntu"
5757 os_version=$( grep ' VERSION_ID' /etc/os-release | cut -d ' "' -f 2 | tr -d ' .' )
58+ if [[ -z " $os_version " || ! " $os_version " =~ ^[0-9]+$ || " $os_version " -lt 2004 ]]; then
59+ ubuntu_codename=$( grep ' UBUNTU_CODENAME' /etc/os-release | cut -d ' =' -f 2 | tr -d ' "' )
60+ case " $ubuntu_codename " in
61+ focal) os_version=2004 ;;
62+ jammy) os_version=2204 ;;
63+ noble) os_version=2404 ;;
64+ esac
65+ fi
5866 elif [[ -e /etc/debian_version ]]; then
5967 os=" debian"
6068 os_version=$( grep -oE ' [0-9]+' /etc/debian_version | head -1)
69+ if [[ -z " $os_version " ]]; then
70+ debian_codename=$( grep ' ^DEBIAN_CODENAME' /etc/os-release 2> /dev/null | cut -d ' =' -f 2)
71+ case " $debian_codename " in
72+ buster) os_version=10 ;;
73+ bullseye) os_version=11 ;;
74+ bookworm) os_version=12 ;;
75+ trixie) os_version=13 ;;
76+ esac
77+ fi
78+ elif grep -qs " Alibaba Cloud Linux" /etc/system-release 2> /dev/null; then
79+ os=" centos"
80+ al_ver=$( grep -oE ' [0-9]+' /etc/system-release | head -1)
81+ if [[ " $al_ver " -ge 3 ]]; then
82+ os_version=9
83+ else
84+ os_version=7
85+ fi
6186 elif [[ -e /etc/almalinux-release || -e /etc/rocky-release || -e /etc/centos-release ]]; then
6287 os=" centos"
6388 os_version=$( grep -shoE ' [0-9]+' /etc/almalinux-release /etc/rocky-release /etc/centos-release | head -1)
64- elif [[ -e /etc/redhat-release ]]; then
65- os=" rhel"
66- os_version=$( grep -oE ' [0-9]+' /etc/redhat-release | head -1)
6789 elif [[ -e /etc/fedora-release ]]; then
6890 os=" fedora"
6991 os_version=$( grep -oE ' [0-9]+' /etc/fedora-release | head -1)
70- elif [[ -e /etc/SUSE-brand && " $( head -1 /etc/SUSE-brand) " == " openSUSE" ]]; then
92+ elif [[ -e /etc/redhat-release ]]; then
93+ os=" rhel"
94+ os_version=$( grep -oE ' [0-9]+' /etc/redhat-release | head -1)
95+ elif [[ -e /etc/SUSE-brand && " $( head -1 /etc/SUSE-brand) " == " openSUSE" ]] \
96+ || grep -qs ' ^ID=.*opensuse' /etc/os-release; then
7197 os=" openSUSE"
72- os_version=$( tail -1 /etc/SUSE-brand | grep -oE ' [0-9\\.]+' )
98+ if [[ -e /etc/SUSE-brand ]]; then
99+ os_version=$( tail -1 /etc/SUSE-brand | grep -oE ' [0-9\\.]+' )
100+ else
101+ os_version=$( grep ' VERSION_ID' /etc/os-release | cut -d ' "' -f 2)
102+ fi
73103 else
74104 exiterr " This installer seems to be running on an unsupported distribution.
75105Supported distros are Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, RHEL, Fedora and openSUSE."
0 commit comments