wangrong
2026-08-30 761e5c5fa871959f60e15c971c8d83f2b53d0af5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
if [[ -x "$(command -v python)" ]];then
  py_cmd='python'
elif [[ -x "$(command -v python3)" ]]; then
  py_cmd='python3'
fi
 
server_url="github.com"
 
echo -ne "检测 ${server_url} ... "
curl -m 5 -kIs https://${server_url} >/dev/null
 
if [ $? != 0 ];then
    echo "failed"
    echo "没有找到稳定的下载服务器,请稍候重试"
    exit 1
else
    echo "ok"
fi
 
rm -f /tmp/de_latest_release
 
$py_cmd - <<EOF
# -*- coding: UTF-8 -*-
import os
import json
import re
 
latest_release=""
release_pattern="v2\.\d+\.\d+$"
 
def get_releases(page):
   try:
      releases=os.popen("curl -s https://api.github.com/repos/dataease/dataease/releases?page=%d" % (page)).read()
      releases=[ x["name"] for x in json.loads(releases) if x["prerelease"] == False ]
   except Exception as e:
      print(str(e))
      print("Failed to obtain Release information, please check the network.")
      exit(1)
   else:
      for release in releases:
         if re.search(release_pattern,release) != None:
            return release
 
page = 1
while (page <= 3):
   latest_release = get_releases(page)
   if (latest_release != "" and latest_release != None):
      break
   page += 1
 
if latest_release == None or latest_release == "":
   print("Failed to obtain latest version, please try again.")
   exit(1)
 
# 记录最新版本号
os.popen("echo "+latest_release+" > /tmp/de_latest_release")
EOF
 
if [ ! -f /tmp/de_latest_release ]; then
  echo "获取最新版本失败,请检查网络连接是否正常"
  exit 1
fi
latest_version=$(cat /tmp/de_latest_release)
 
echo "开始下载 DataEase ${latest_version} 版本在线安装包"
 
installer_file="dataease-online-installer-${latest_version}-ce.tar.gz"
download_url="https://${server_url}/dataease/dataease/releases/download/${latest_version}/$installer_file"
echo "下载地址: ${download_url}"
curl -LOk -m 60 -o $installer_file $download_url
 
if [ ! -f ${installer_file} ];then
    echo "下载在线安装包失败,请试试重新执行一次安装命令。"
    exit 1
fi
 
tar zxvf ${installer_file}
if [ $? != 0 ];then
    echo "下载在线安装包失败,请试试重新执行一次安装命令。"
    rm -f ${installer_file}
    exit 1
fi
 
cd ${installer_file%.tar.gz}
/bin/bash install.sh