From 564f521e98842c029be625ae6be3f40d0fe218bb Mon Sep 17 00:00:00 2001 From: Hongyu Shi Date: Fri, 7 Nov 2025 17:04:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96=20o?= =?UTF-8?q?penEuler=20=E7=89=88=E6=9C=AC=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=BC=BA=E7=89=88=E6=9C=AC=E5=8F=B7=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E7=9A=84=E9=B2=81=E6=A3=92=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hongyu Shi --- scripts/deploy/1-check-env/check_env.sh | 41 ++++++++++++------- .../install_openEulerIntelligence.sh | 41 ++++++++++++------- 2 files changed, 52 insertions(+), 30 deletions(-) diff --git a/scripts/deploy/1-check-env/check_env.sh b/scripts/deploy/1-check-env/check_env.sh index e848cfc..da11e19 100644 --- a/scripts/deploy/1-check-env/check_env.sh +++ b/scripts/deploy/1-check-env/check_env.sh @@ -14,22 +14,25 @@ get_el_version() { # 首先检查是否为 openEuler 系统 if [ -f "/etc/openEuler-release" ]; then local openeuler_version - openeuler_version=$(grep -oP 'openEuler release \K[0-9]+\.[0-9]+' /etc/openEuler-release) + openeuler_version=$(grep -Eo 'openEuler release [0-9]+\.[0-9]+' /etc/openEuler-release | awk '{print $3}' | tail -n 1) if [ -n "$openeuler_version" ]; then # 将版本号转换为可比较的数字格式(如 22.03 -> 2203) local major minor major=$(echo "$openeuler_version" | cut -d'.' -f1) minor=$(echo "$openeuler_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 - if [ $version_num -le 2203 ]; then - echo "8" - return 0 - else - echo "9" - return 0 + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 + if [ $version_num -le 2203 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi fi fi @@ -43,14 +46,22 @@ get_el_version() { local major minor major=$(echo "$kernel_version" | cut -d'.' -f1) minor=$(echo "$kernel_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 - if [ $version_num -lt 514 ]; then - echo "8" - else - echo "9" + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 + if [ $version_num -lt 514 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi + + echo -e "${COLOR_ERROR}[Error] 无法确定兼容的 el 版本,请检查系统信息${COLOR_RESET}" >&2 + return 1 } # 安装wget工具 diff --git a/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh b/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh index e2eaf1e..c6e8816 100644 --- a/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh +++ b/scripts/deploy/2-install-dependency/install_openEulerIntelligence.sh @@ -18,22 +18,25 @@ get_el_version() { # 首先检查是否为 openEuler 系统 if [ -f "/etc/openEuler-release" ]; then local openeuler_version - openeuler_version=$(grep -oP 'openEuler release \K[0-9]+\.[0-9]+' /etc/openEuler-release) + openeuler_version=$(grep -Eo 'openEuler release [0-9]+\.[0-9]+' /etc/openEuler-release | awk '{print $3}' | tail -n 1) if [ -n "$openeuler_version" ]; then # 将版本号转换为可比较的数字格式(如 22.03 -> 2203) local major minor major=$(echo "$openeuler_version" | cut -d'.' -f1) minor=$(echo "$openeuler_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 - if [ $version_num -le 2203 ]; then - echo "8" - return 0 - else - echo "9" - return 0 + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # openEuler 22.03 及之前使用 el8,24.03 及之后使用 el9 + if [ $version_num -le 2203 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi fi fi @@ -47,14 +50,22 @@ get_el_version() { local major minor major=$(echo "$kernel_version" | cut -d'.' -f1) minor=$(echo "$kernel_version" | cut -d'.' -f2) - local version_num=$((major * 100 + minor)) - # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 - if [ $version_num -lt 514 ]; then - echo "8" - else - echo "9" + if [[ "$major" =~ ^[0-9]+$ && "$minor" =~ ^[0-9]+$ ]]; then + local version_num=$((10#$major * 100 + 10#$minor)) + + # 内核版本 < 5.14 使用 el8,>= 5.14 使用 el9 + if [ $version_num -lt 514 ]; then + echo "8" + return 0 + else + echo "9" + return 0 + fi fi + + echo -e "${COLOR_ERROR}[Error] 无法确定兼容的 el 版本,请检查系统信息${COLOR_RESET}" >&2 + return 1 } # 初始化本地仓库 -- Gitee