make_install.sh 19.7 KB
Newer Older
H
hzcheng 已提交
1 2
#!/bin/bash
#
3
# This file is used to install TAOS time-series database on linux systems. The operating system
H
hzcheng 已提交
4 5 6 7 8
# is required to use systemd to manage services at boot

set -e
# set -x

9
# -----------------------Variables definition
H
hzcheng 已提交
10 11
source_dir=$1
binary_dir=$2
S
slguan 已提交
12
osType=$3
H
Hui Li 已提交
13
verNumber=$4
S
slguan 已提交
14 15 16 17 18 19 20

if [ "$osType" != "Darwin" ]; then
    script_dir=$(dirname $(readlink -f "$0"))
else
    script_dir=${source_dir}/packaging/tools
fi

H
hzcheng 已提交
21
# Dynamic directory
22

H
hzcheng 已提交
23
data_dir="/var/lib/taos"
S
slguan 已提交
24 25 26 27

if [ "$osType" != "Darwin" ]; then
    log_dir="/var/log/taos"
else
S
TD-2837  
slguan 已提交
28
    log_dir=~/TDengine/log
S
slguan 已提交
29
fi
H
hzcheng 已提交
30 31 32

data_link_dir="/usr/local/taos/data"
log_link_dir="/usr/local/taos/log"
33 34 35 36 37
if [ "$osType" != "Darwin" ]; then
    cfg_install_dir="/etc/taos"
else
    cfg_install_dir="/usr/local/Cellar/tdengine/${verNumber}/taos"
fi
H
hzcheng 已提交
38

S
slguan 已提交
39 40 41
if [ "$osType" != "Darwin" ]; then
    bin_link_dir="/usr/bin"
    lib_link_dir="/usr/lib"
H
Hui Li 已提交
42
    lib64_link_dir="/usr/lib64"
S
slguan 已提交
43 44
    inc_link_dir="/usr/include"
fi
H
hzcheng 已提交
45 46

#install main path
47 48 49 50 51
if [ "$osType" != "Darwin" ]; then
    install_main_dir="/usr/local/taos"
else
    install_main_dir="/usr/local/Cellar/tdengine/${verNumber}"
fi
H
hzcheng 已提交
52

H
huili 已提交
53
# old bin dir
54 55 56 57 58
if [ "$osType" != "Darwin" ]; then
     bin_dir="/usr/local/taos/bin"
else
     bin_dir="/usr/local/Cellar/tdengine/${verNumber}/bin"
fi
H
hzcheng 已提交
59 60 61 62 63 64 65 66 67 68

service_config_dir="/etc/systemd/system"

# Color setting
RED='\033[0;31m'
GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'

P
plum-lihui 已提交
69 70
csudo=""

S
slguan 已提交
71
if [ "$osType" != "Darwin" ]; then
72 73 74
    if command -v sudo > /dev/null; then
    csudo="sudo"
    fi
S
slguan 已提交
75 76 77 78 79 80
    initd_mod=0
    service_mod=2
    if pidof systemd &> /dev/null; then
        service_mod=0
    elif $(which service &> /dev/null); then
        service_mod=1
81
        service_config_dir="/etc/init.d"
S
slguan 已提交
82
        if $(which chkconfig &> /dev/null); then
83
            initd_mod=1
S
slguan 已提交
84 85 86 87 88 89 90
        elif $(which insserv &> /dev/null); then
            initd_mod=2
        elif $(which update-rc.d &> /dev/null); then
            initd_mod=3
        else
            service_mod=2
        fi
L
lihui 已提交
91 92 93
    else
        service_mod=2
    fi
H
hzcheng 已提交
94

S
slguan 已提交
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
    # get the operating system type for using the corresponding init file
    # ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
    #osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
    osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2)
    #echo "osinfo: ${osinfo}"
    os_type=0
    if echo $osinfo | grep -qwi "ubuntu" ; then
        echo "this is ubuntu system"
        os_type=1
    elif echo $osinfo | grep -qwi "debian" ; then
        echo "this is debian system"
        os_type=1
    elif echo $osinfo | grep -qwi "Kylin" ; then
        echo "this is Kylin system"
        os_type=1
    elif  echo $osinfo | grep -qwi "centos" ; then
        echo "this is centos system"
        os_type=2
    elif echo $osinfo | grep -qwi "fedora" ; then
        echo "this is fedora system"
        os_type=2
    else
L
lihui 已提交
117 118 119
        echo "${osinfo}: This is an officially unverified linux system, If there are any problems with the installation and operation, "
        echo "please feel free to contact taosdata.com for support."
        os_type=1
S
slguan 已提交
120
    fi
L
lihui 已提交
121 122
fi

H
huili 已提交
123
function kill_taosd() {
S
slguan 已提交
124 125 126 127
    pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}')
    if [ -n "$pid" ]; then
        ${csudo} kill -9 $pid   || :
    fi
H
huili 已提交
128 129
}

H
hzcheng 已提交
130 131
function install_main_path() {
    #create install main dir and all sub dir
P
plum-lihui 已提交
132
    ${csudo} rm -rf ${install_main_dir}    || :
133
    ${csudo} mkdir -p ${install_main_dir}
P
plum-lihui 已提交
134
    ${csudo} mkdir -p ${install_main_dir}/cfg
135
    ${csudo} mkdir -p ${install_main_dir}/bin
P
plum-lihui 已提交
136 137 138 139
    ${csudo} mkdir -p ${install_main_dir}/connector
    ${csudo} mkdir -p ${install_main_dir}/driver
    ${csudo} mkdir -p ${install_main_dir}/examples
    ${csudo} mkdir -p ${install_main_dir}/include
S
slguan 已提交
140 141 142
    if [ "$osType" != "Darwin" ]; then
        ${csudo} mkdir -p ${install_main_dir}/init.d
    fi
H
hzcheng 已提交
143 144 145 146
}

function install_bin() {
    # Remove links
S
slguan 已提交
147
    if [ "$osType" != "Darwin" ]; then
148
        ${csudo} rm -f ${bin_link_dir}/taos     || :
S
slguan 已提交
149 150
        ${csudo} rm -f ${bin_link_dir}/taosd    || :
        ${csudo} rm -f ${bin_link_dir}/taosdemo || :
151
        ${csudo} rm -f ${bin_link_dir}/perfMonitor || :
S
slguan 已提交
152
        ${csudo} rm -f ${bin_link_dir}/taosdump || :
H
Hui Li 已提交
153
        ${csudo} rm -f ${bin_link_dir}/set_core || :
154
        ${csudo} rm -f ${bin_link_dir}/rmtaos   || :
S
slguan 已提交
155
    fi
156
    
S
slguan 已提交
157
    ${csudo} cp -r ${binary_dir}/build/bin/* ${install_main_dir}/bin
158
    ${csudo} cp -r ${script_dir}/taosd-dump-cfg.gdb   ${install_main_dir}/bin
S
slguan 已提交
159 160

    if [ "$osType" != "Darwin" ]; then
161
        ${csudo} cp -r ${script_dir}/remove.sh     ${install_main_dir}/bin
H
Hui Li 已提交
162
        ${csudo} cp -r ${script_dir}/set_core.sh   ${install_main_dir}/bin
163
        ${csudo} cp -r ${script_dir}/startPre.sh   ${install_main_dir}/bin
S
slguan 已提交
164 165 166
    else
        ${csudo} cp -r ${script_dir}/remove_client.sh   ${install_main_dir}/bin
    fi
P
plum-lihui 已提交
167
    ${csudo} chmod 0555 ${install_main_dir}/bin/*
H
hzcheng 已提交
168 169

    #Make link
S
slguan 已提交
170
    if [ "$osType" != "Darwin" ]; then
171
        [ -x ${install_main_dir}/bin/taos ]      && ${csudo} ln -s ${install_main_dir}/bin/taos ${bin_link_dir}/taos    || :
S
slguan 已提交
172 173 174
        [ -x ${install_main_dir}/bin/taosd ]     && ${csudo} ln -s ${install_main_dir}/bin/taosd ${bin_link_dir}/taosd   || :
        [ -x ${install_main_dir}/bin/taosdump ]  && ${csudo} ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || :
        [ -x ${install_main_dir}/bin/taosdemo ]  && ${csudo} ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || :
175
        [ -x ${install_main_dir}/bin/perfMonitor ]  && ${csudo} ln -s ${install_main_dir}/bin/perfMonitor ${bin_link_dir}/perfMonitor || :
H
Hui Li 已提交
176
        [ -x ${install_main_dir}/set_core.sh ]  && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || :
S
slguan 已提交
177
    fi
178
    
S
slguan 已提交
179
    if [ "$osType" != "Darwin" ]; then
180
       [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/rmtaos  || :
S
slguan 已提交
181
    fi
H
hzcheng 已提交
182
}
183

184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
function install_jemalloc() {
    if [ "$osType" != "Darwin" ]; then
        /usr/bin/install -c -d /usr/local/bin

        if [ -f ${binary_dir}/build/bin/jemalloc-config ]; then
            /usr/bin/install -c -m 755 ${binary_dir}/build/bin/jemalloc-config /usr/local/bin
        fi
        if [ -f ${binary_dir}/build/bin/jemalloc.sh ]; then
            /usr/bin/install -c -m 755 ${binary_dir}/build/bin/jemalloc.sh /usr/local/bin
        fi
        if [ -f ${binary_dir}/build/bin/jeprof ]; then
            /usr/bin/install -c -m 755 ${binary_dir}/build/bin/jeprof /usr/local/bin
        fi
        if [ -f ${binary_dir}/build/include/jemalloc/jemalloc.h ]; then
            /usr/bin/install -c -d /usr/local/include/jemalloc
            /usr/bin/install -c -m 644 ${binary_dir}/build/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
        fi
        if [ -f ${binary_dir}/build/lib/libjemalloc.so.2 ]; then
            /usr/bin/install -c -d /usr/local/lib
            /usr/bin/install -c -m 755 ${binary_dir}/build/lib/libjemalloc.so.2 /usr/local/lib
            ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
            /usr/bin/install -c -d /usr/local/lib
            if [ -f ${binary_dir}/build/lib/libjemalloc.a ]; then
                /usr/bin/install -c -m 755 ${binary_dir}/build/lib/libjemalloc.a /usr/local/lib
            fi
            if [ -f ${binary_dir}/build/lib/libjemalloc_pic.a ]; then
                /usr/bin/install -c -m 755 ${binary_dir}/build/lib/libjemalloc_pic.a /usr/local/lib
            fi
212
            if [ -f ${binary_dir}/build/lib/pkgconfig/jemalloc.pc ]; then
213 214 215 216 217 218 219 220 221 222 223 224
                /usr/bin/install -c -d /usr/local/lib/pkgconfig
                /usr/bin/install -c -m 644 ${binary_dir}/build/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
            fi
        fi
        if [ -f ${binary_dir}/build/share/doc/jemalloc/jemalloc.html ]; then
            /usr/bin/install -c -d /usr/local/share/doc/jemalloc
            /usr/bin/install -c -m 644 ${binary_dir}/build/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
        fi
        if [ -f ${binary_dir}/build/share/man/man3/jemalloc.3 ]; then
            /usr/bin/install -c -d /usr/local/share/man/man3
            /usr/bin/install -c -m 644 ${binary_dir}/build/share/man/man3/jemalloc.3 /usr/local/share/man/man3
        fi
225 226

        if [ -d /etc/ld.so.conf.d ]; then
227
            echo "/usr/local/lib" | ${csudo} tee /etc/ld.so.conf.d/jemalloc.conf
228 229 230 231
            ${csudo} ldconfig
        else
            echo "/etc/ld.so.conf.d not found!"
        fi
232 233
    fi
}
H
hzcheng 已提交
234 235 236

function install_lib() {
    # Remove links
S
slguan 已提交
237
    ${csudo} rm -f ${lib_link_dir}/libtaos.*     || :
238 239 240
    if [ "$osType" != "Darwin" ]; then
      ${csudo} rm -f ${lib64_link_dir}/libtaos.*   || :
    fi
241

S
slguan 已提交
242
    if [ "$osType" != "Darwin" ]; then
H
Hui Li 已提交
243
        ${csudo} cp ${binary_dir}/build/lib/libtaos.so.${verNumber} ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
244
        ${csudo} ln -sf ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
S
slguan 已提交
245
        ${csudo} ln -sf ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
246

H
Hui Li 已提交
247
        if [ -d "${lib64_link_dir}" ]; then
248
          ${csudo} ln -sf ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1
H
Hui Li 已提交
249 250
          ${csudo} ln -sf ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so
        fi
S
slguan 已提交
251
    else
252
        ${csudo} cp -Rf ${binary_dir}/build/lib/libtaos.* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
S
slguan 已提交
253
    fi
254
    
255 256
    install_jemalloc

257 258 259
    if [ "$osType" != "Darwin" ]; then
        ${csudo} ldconfig
    fi
H
hzcheng 已提交
260 261 262 263
}

function install_header() {

264 265 266
    if [ "$osType" != "Darwin" ]; then
        ${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h    || :
    fi
267
    ${csudo} cp -f ${source_dir}/src/inc/taos.h ${source_dir}/src/inc/taoserror.h ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
268 269 270 271
    if [ "$osType" != "Darwin" ]; then
        ${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
        ${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
    fi
H
hzcheng 已提交
272 273 274
}

function install_config() {
P
plum-lihui 已提交
275
    #${csudo} rm -f ${install_main_dir}/cfg/taos.cfg     || :
276 277

    if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
P
plum-lihui 已提交
278
        ${csudo} mkdir -p ${cfg_install_dir}
279 280
        [ -f ${script_dir}/../cfg/taos.cfg ] &&
        ${csudo} cp ${script_dir}/../cfg/taos.cfg ${cfg_install_dir}
P
plum-lihui 已提交
281
        ${csudo} chmod 644 ${cfg_install_dir}/*
282 283
    fi

P
plum-lihui 已提交
284
    ${csudo} cp -f ${script_dir}/../cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
285 286 287
    
    if [ "$osType" != "Darwin" ]; then ${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
    fi
H
hzcheng 已提交
288 289
}

290
function install_log() {
S
slguan 已提交
291
    if [ "$osType" != "Darwin" ]; then
292 293 294
            ${csudo} rm -rf ${log_dir}  || :
            ${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
            ${csudo} ln -s ${log_dir} ${install_main_dir}/log
S
slguan 已提交
295
    fi
H
hzcheng 已提交
296 297 298
}

function install_data() {
299 300 301 302
    if [ "$osType" != "Darwin" ]; then
        ${csudo} mkdir -p ${data_dir}
        ${csudo} ln -s ${data_dir} ${install_main_dir}/data
    fi
H
hzcheng 已提交
303 304 305
}

function install_connector() {
306 307 308 309 310 311 312 313 314 315
    if [ -d "${source_dir}/src/connector/grafanaplugin/dist" ]; then
        ${csudo} cp -rf ${source_dir}/src/connector/grafanaplugin/dist ${install_main_dir}/connector/grafanaplugin
    else
        echo "WARNING: grafanaplugin bundled dir not found, please check if want to use it!"
    fi
    if find ${source_dir}/src/connector/go -mindepth 1 -maxdepth 1 | read; then
        ${csudo} cp -r ${source_dir}/src/connector/go ${install_main_dir}/connector
    else
        echo "WARNING: go connector not found, please check if want to use it!"
    fi
P
plum-lihui 已提交
316
    ${csudo} cp -rf ${source_dir}/src/connector/python ${install_main_dir}/connector
317
    ${csudo} cp ${binary_dir}/build/lib/*.jar ${install_main_dir}/connector &> /dev/null && ${csudo} chmod 777 ${install_main_dir}/connector/*.jar || echo &> /dev/null
H
hzcheng 已提交
318 319 320
}

function install_examples() {
P
plum-lihui 已提交
321
    ${csudo} cp -rf ${source_dir}/tests/examples/* ${install_main_dir}/examples
H
hzcheng 已提交
322 323 324
}

function clean_service_on_sysvinit() {
L
lihui 已提交
325
    #restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
326 327
    #${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :

H
hzcheng 已提交
328
    if pidof taosd &> /dev/null; then
P
plum-lihui 已提交
329
        ${csudo} service taosd stop || :
H
hzcheng 已提交
330
    fi
H
huili 已提交
331 332

    if ((${initd_mod}==1)); then
L
lihui 已提交
333
        ${csudo} chkconfig --del taosd || :
H
huili 已提交
334
    elif ((${initd_mod}==2)); then
L
lihui 已提交
335 336 337 338
        ${csudo} insserv -r taosd || :
    elif ((${initd_mod}==3)); then
        ${csudo} update-rc.d -f taosd remove || :
    fi
339

L
lihui 已提交
340
    ${csudo} rm -f ${service_config_dir}/taosd || :
341

L
lihui 已提交
342 343
    if $(which init &> /dev/null); then
        ${csudo} init q || :
H
huili 已提交
344
    fi
H
hzcheng 已提交
345 346 347 348 349 350 351 352
}

function install_service_on_sysvinit() {
    clean_service_on_sysvinit

    sleep 1

    # Install taosd service
L
lihui 已提交
353
    if ((${os_type}==1)); then
P
plum-lihui 已提交
354 355
    ${csudo} cp -f ${script_dir}/../deb/taosd ${install_main_dir}/init.d
    ${csudo} cp    ${script_dir}/../deb/taosd ${service_config_dir} && ${csudo} chmod a+x ${service_config_dir}/taosd
L
lihui 已提交
356
    elif ((${os_type}==2)); then
P
plum-lihui 已提交
357 358
    ${csudo} cp -f ${script_dir}/../rpm/taosd ${install_main_dir}/init.d
    ${csudo} cp    ${script_dir}/../rpm/taosd ${service_config_dir} && ${csudo} chmod a+x ${service_config_dir}/taosd
L
lihui 已提交
359
    fi
360

L
lihui 已提交
361 362
    #restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
    #${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
363

H
huili 已提交
364
    if ((${initd_mod}==1)); then
L
lihui 已提交
365 366
        ${csudo} chkconfig --add taosd || :
        ${csudo} chkconfig --level 2345 taosd on || :
H
huili 已提交
367
    elif ((${initd_mod}==2)); then
L
lihui 已提交
368 369 370
        ${csudo} insserv taosd || :
        ${csudo} insserv -d taosd || :
    elif ((${initd_mod}==3)); then
H
huili 已提交
371 372
        ${csudo} update-rc.d taosd defaults || :
    fi
H
hzcheng 已提交
373 374 375 376 377 378 379
}

function clean_service_on_systemd() {
    taosd_service_config="${service_config_dir}/taosd.service"

    if systemctl is-active --quiet taosd; then
        echo "TDengine is running, stopping it..."
P
plum-lihui 已提交
380
        ${csudo} systemctl stop taosd &> /dev/null || echo &> /dev/null
H
hzcheng 已提交
381
    fi
P
plum-lihui 已提交
382
    ${csudo} systemctl disable taosd &> /dev/null || echo &> /dev/null
H
hzcheng 已提交
383

P
plum-lihui 已提交
384
    ${csudo} rm -f ${taosd_service_config}
385
}
H
hzcheng 已提交
386 387 388 389 390 391 392 393

# taos:2345:respawn:/etc/init.d/taosd start

function install_service_on_systemd() {
    clean_service_on_systemd

    taosd_service_config="${service_config_dir}/taosd.service"

P
plum-lihui 已提交
394 395 396 397 398 399 400 401
    ${csudo} bash -c "echo '[Unit]'                             >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'Description=TDengine server service' >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'After=network-online.target'        >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'Wants=network-online.target'        >> ${taosd_service_config}"
    ${csudo} bash -c "echo                                      >> ${taosd_service_config}"
    ${csudo} bash -c "echo '[Service]'                          >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'Type=simple'                        >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'ExecStart=/usr/bin/taosd'           >> ${taosd_service_config}"
402
    ${csudo} bash -c "echo 'ExecStartPre=/usr/local/taos/bin/startPre.sh'           >> ${taosd_service_config}"
403
    ${csudo} bash -c "echo 'TimeoutStopSec=1000000s'            >> ${taosd_service_config}"
P
plum-lihui 已提交
404 405 406 407 408 409 410 411 412 413 414 415
    ${csudo} bash -c "echo 'LimitNOFILE=infinity'               >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'LimitNPROC=infinity'                >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'LimitCORE=infinity'                 >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'TimeoutStartSec=0'                  >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'StandardOutput=null'                >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'Restart=always'                     >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'StartLimitBurst=3'                  >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'StartLimitInterval=60s'             >> ${taosd_service_config}"
    ${csudo} bash -c "echo                                      >> ${taosd_service_config}"
    ${csudo} bash -c "echo '[Install]'                          >> ${taosd_service_config}"
    ${csudo} bash -c "echo 'WantedBy=multi-user.target'         >> ${taosd_service_config}"
    ${csudo} systemctl enable taosd
H
hzcheng 已提交
416 417 418
}

function install_service() {
H
huili 已提交
419
    if ((${service_mod}==0)); then
H
hzcheng 已提交
420
        install_service_on_systemd
H
huili 已提交
421
    elif ((${service_mod}==1)); then
H
hzcheng 已提交
422
        install_service_on_sysvinit
H
huili 已提交
423
    else
L
lihui 已提交
424
        # must manual stop taosd
H
huili 已提交
425
        kill_taosd
H
hzcheng 已提交
426 427 428 429
    fi
}

function update_TDengine() {
430
    echo -e "${GREEN}Start to update TDengine...${NC}"
H
hzcheng 已提交
431
    # Stop the service if running
S
slguan 已提交
432 433 434

    if [ "$osType" != "Darwin" ]; then
      if pidof taosd &> /dev/null; then
H
huili 已提交
435
        if ((${service_mod}==0)); then
P
plum-lihui 已提交
436
            ${csudo} systemctl stop taosd || :
H
huili 已提交
437
        elif ((${service_mod}==1)); then
P
plum-lihui 已提交
438
            ${csudo} service taosd stop || :
H
huili 已提交
439 440
        else
            kill_taosd
H
hzcheng 已提交
441 442
        fi
        sleep 1
S
slguan 已提交
443
      fi
H
hzcheng 已提交
444
    fi
445

H
hzcheng 已提交
446 447 448 449 450 451 452
    install_main_path

    install_log
    install_header
    install_lib
    install_connector
    install_examples
H
huili 已提交
453
    install_bin
S
slguan 已提交
454 455 456 457 458

    if [ "$osType" != "Darwin" ]; then
        install_service
    fi

H
huili 已提交
459
    install_config
H
hzcheng 已提交
460

S
slguan 已提交
461 462 463 464 465 466 467 468 469
    if [ "$osType" != "Darwin" ]; then
        echo
        echo -e "\033[44;32;1mTDengine is updated successfully!${NC}"
        echo

        echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
        if ((${service_mod}==0)); then
            echo -e "${GREEN_DARK}To start TDengine     ${NC}: ${csudo} systemctl start taosd${NC}"
        elif ((${service_mod}==1)); then
H
huili 已提交
470
            echo -e "${GREEN_DARK}To start TDengine     ${NC}: ${csudo} service taosd start${NC}"
S
slguan 已提交
471 472 473 474 475 476 477 478 479 480 481
        else
            echo -e "${GREEN_DARK}To start TDengine     ${NC}: ./taosd${NC}"
        fi

        echo -e "${GREEN_DARK}To access TDengine    ${NC}: use ${GREEN_UNDERLINE}taos${NC} in shell${NC}"
        echo
        echo -e "\033[44;32;1mTDengine is updated successfully!${NC}"
    else
        echo
        echo -e "\033[44;32;1mTDengine Client is updated successfully!${NC}"
        echo
H
huili 已提交
482

S
slguan 已提交
483 484 485 486
        echo -e "${GREEN_DARK}To access TDengine Client   ${NC}: use ${GREEN_UNDERLINE}taos${NC} in shell${NC}"
        echo
        echo -e "\033[44;32;1mTDengine Client is updated successfully!${NC}"
    fi
H
hzcheng 已提交
487 488 489 490
}

function install_TDengine() {
    # Start to install
S
slguan 已提交
491 492
    if [ "$osType" != "Darwin" ]; then
        echo -e "${GREEN}Start to install TDEngine...${NC}"
493 494
    else
        echo -e "${GREEN}Start to install TDEngine Client ...${NC}"
S
slguan 已提交
495
    fi
496
    
497
    install_main_path
S
slguan 已提交
498

499
    if [ "$osType" != "Darwin" ]; then
S
slguan 已提交
500 501
        install_data
    fi
502

503
    install_log
H
hzcheng 已提交
504 505 506 507
    install_header
    install_lib
    install_connector
    install_examples
H
huili 已提交
508
    install_bin
509
    
S
slguan 已提交
510 511 512
    if [ "$osType" != "Darwin" ]; then
        install_service
    fi
513
    
514
    install_config
S
slguan 已提交
515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532

    if [ "$osType" != "Darwin" ]; then
        # Ask if to start the service
        echo
        echo -e "\033[44;32;1mTDengine is installed successfully!${NC}"
        echo
        echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
        if ((${service_mod}==0)); then
            echo -e "${GREEN_DARK}To start TDengine     ${NC}: ${csudo} systemctl start taosd${NC}"
        elif ((${service_mod}==1)); then
                echo -e "${GREEN_DARK}To start TDengine    ${NC}: ${csudo} service taosd start${NC}"
        else
            echo -e "${GREEN_DARK}To start TDengine     ${NC}: ./taosd${NC}"
        fi

        echo -e "${GREEN_DARK}To access TDengine    ${NC}: use ${GREEN_UNDERLINE}taos${NC} in shell${NC}"
        echo
        echo -e "\033[44;32;1mTDengine is installed successfully!${NC}"
H
huili 已提交
533
    else
S
slguan 已提交
534 535 536
        echo -e "${GREEN_DARK}To access TDengine    ${NC}: use ${GREEN_UNDERLINE}taos${NC} in shell${NC}"
        echo
        echo -e "\033[44;32;1mTDengine Client is installed successfully!${NC}"
H
huili 已提交
537
    fi
H
hzcheng 已提交
538 539 540 541 542
}

## ==============================Main program starts from here============================
echo source directory: $1
echo binary directory: $2
S
slguan 已提交
543
if [ -x ${bin_dir}/taos ]; then
H
hzcheng 已提交
544 545 546 547
    update_TDengine
else
    install_TDengine
fi