From 88a938d00822cf4ad27b46b8f81905e84382db72 Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Tue, 31 Dec 2024 01:10:39 +0800 Subject: [PATCH 1/5] feat: add source msg to cleanup function when exit --- packaging/setup_env.sh | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/packaging/setup_env.sh b/packaging/setup_env.sh index 42ae6b3814..3899ddc4fd 100644 --- a/packaging/setup_env.sh +++ b/packaging/setup_env.sh @@ -1,4 +1,8 @@ #!/bin/bash + +# Run cleanup function on exit +trap cleanup EXIT + # define default timezone DEFAULT_TIMEZONE="Asia/Shanghai" @@ -64,6 +68,9 @@ PROCESS_EXPORTER_BINARY="/usr/local/bin/process-exporter" # Define fstab input FSTAB_LINE="share-server.platform.tdengine.dev:/mnt/share_server /mnt/share_server nfs rw,sync,_netdev 0 0" +# Results need to be stored when source +SOURCE_RESULTS="" + # ANSI color codes GREEN='\033[0;32m' # Green color RED='\033[0;31m' # Red color @@ -917,6 +924,7 @@ install_java() { INSTALLED_VERSION=$("$JAVA_HOME"/bin/java --version 2>&1) if echo "$INSTALLED_VERSION" | grep -q "openjdk $DEFAULT_JDK_VERSION"; then echo -e "${GREEN}Java installed successfully.${NO_COLOR}" + SOURCE_RESULTS+="Java: source /root/.bashrc\n" else echo -e "${YELLOW}Java version not match.${NO_COLOR}" exit 1 @@ -952,6 +960,7 @@ install_maven() { fi mvn -version check_status "Failed to install maven" "Maven installed successfully." $? + SOURCE_RESULTS+="Sdkman: source $HOME/.sdkman/bin/sdkman-init.sh\n" } # Install Go @@ -987,6 +996,7 @@ deploy_go() { # Apply the environment variables $GO_INSTALL_DIR/bin/go version check_status "Failed to install GO" "Install GO successfully" $? + SOURCE_RESULTS+="Golang: source $BASH_RC\n" } # Function to install Rust and Cargo @@ -1037,6 +1047,7 @@ deploy_rust() { # Install cargo-make cargo install cargo-make check_status "Failed to install Rust" "Install Rust successfully" $? + SOURCE_RESULTS+="Rust: source $BASH_RC && source $HOME/.cargo/env\n" else echo "Rust is already installed." fi @@ -1121,6 +1132,7 @@ install_node_via_nvm () { [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" echo -e "${GREEN}NVM installed successfully.${NO_COLOR}" + SOURCE_RESULTS+="NVM: source $NVM_DIR/nvm.sh && source $NVM_DIR/bash_completion\n" else echo -e "${GREEN}NVM is already installed.${NO_COLOR}" fi @@ -1655,6 +1667,15 @@ config_cloud_init() { # cloud-init clean --logs } +cleanup() { + echo -e "${GREEN}===========================================\n${NO_COLOR}" + echo -e "${GREEN}Installation complete! \n${NO_COLOR}" + echo -e "${GREEN}Some tools require you to manually source${NO_COLOR}" + echo -e "${GREEN}or restart your terminal to take effect.\n${NO_COLOR}" + echo -e "${GREEN}===========================================\n${NO_COLOR}" + echo -e "${GREEN}$SOURCE_RESULTS${NO_COLOR}" +} + # Clone a repository with a specified target directory clone_repo_with_rename() { local repo_url="$1" @@ -1752,9 +1773,10 @@ clone_repos() { new_funcs() { echo "Adding test..." install_python 3.10.12 - # install_java 21 - # install_node 16.20.2 - # install_maven 3.2.5 + install_java 21 + install_node 16.20.2 + install_maven 3.2.5 + deploy_rust } # deploy TDasset @@ -1908,6 +1930,9 @@ main() { replace_sources) replace_sources ;; + update) + update + ;; upgrade) upgrade ;; From 77566ebc29d248afb331701c891bdb89ce74afe5 Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Tue, 31 Dec 2024 11:26:32 +0800 Subject: [PATCH 2/5] enh: add pkg manager for java/go --- packaging/setup_env.sh | 122 ++++++++++++++++++++++++++++++++--------- 1 file changed, 96 insertions(+), 26 deletions(-) diff --git a/packaging/setup_env.sh b/packaging/setup_env.sh index 3899ddc4fd..30e3b9cda3 100644 --- a/packaging/setup_env.sh +++ b/packaging/setup_env.sh @@ -154,8 +154,11 @@ help() { echo " disable_service - Disable specified services" echo " install_python - Install Python and pip" echo " install_java - Install Java" - echo " install_maven - Install Maven" + echo " install_java_via_sdkman - Install Java via sdkman" + echo " install_maven_via_sdkman - Install Maven via sdkman" echo " deploy_go - Deploy Go environment" + echo " install_gvm - Install GVM" + echo " install_go_via_gvm - Install Go via GVM" echo " deploy_rust - Deploy Rust environment" echo " install_node - Install Node via package manager or binary" echo " install_node_via_nvm - Install Node via NVM" @@ -793,7 +796,7 @@ update_redhat_gcc() { update_redhat_tmux() { echo "Downloading the latest version of tmux..." cd /usr/local/src || exit - latest_tmux_version=$(curl -s https://api.github.com/repos/tmux/tmux/releases/latest | grep -Po '"tag_name": "\K.*?(?=")') + latest_tmux_version=$(curl --retry 10 --retry-delay 5 --retry-max-time 120 -s https://api.github.com/repos/tmux/tmux/releases/latest | grep -Po '"tag_name": "\K.*?(?=")') wget https://github.com/tmux/tmux/releases/download/"${latest_tmux_version}"/tmux-"${latest_tmux_version}".tar.gz echo "Extracting tmux ${latest_tmux_version}..." @@ -845,6 +848,7 @@ deploy_tmux() { # } # Install Java +# shellcheck disable=SC2120 install_java() { echo -e "${YELLOW}Installing Java...${NO_COLOR}" # Specify the major JDK version to search for; default is set to 17 if not specified @@ -933,33 +937,62 @@ install_java() { # Install sdkman install_sdkman() { + echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}" install_package zip unzip if [ -d "$HOME/.sdkman" ]; then echo -e "${GREEN}SDKMAN is already installed.${NO_COLOR}" else echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}" - curl -s "https://get.sdkman.io" | bash + curl --retry 10 --retry-delay 5 --retry-max-time 120 -s "https://get.sdkman.io" | bash fi +} +# Install gvm +install_gvm() { + echo -e "${YELLOW}Installing GVM...${NO_COLOR}" + install_package bison gcc make + bash < <(curl --retry 10 --retry-delay 5 --retry-max-time 120 -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) + source $HOME/.gvm/scripts/gvm + gvm version + check_status "Failed to install GVM" "GVM installed successfully." $? + add_config_if_not_exist "export GO111MODULE=on" "$BASH_RC" + add_config_if_not_exist "export GOPROXY=https://goproxy.cn,direct" "$BASH_RC" + add_config_if_not_exist "export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/" "$BASH_RC" + add_config_if_not_exist "export GOROOT_BOOTSTRAP=$GOROOT" "$BASH_RC" + SOURCE_RESULTS+="GVM: source $HOME/.gvm/scripts/gvm\n" } # Install Maven # shellcheck disable=SC2120 -install_maven() { +install_maven_via_sdkman() { echo -e "${YELLOW}Installing maven...${NO_COLOR}" if [ -n "$1" ]; then DEFAULT_MVN_VERSION="$1" install_sdkman - if [ -f "$HOME/.sdkman/bin/sdkman-init.sh" ]; then - source "$HOME/.sdkman/bin/sdkman-init.sh" - fi + [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" # 3.2.5 - sdk install maven "$DEFAULT_MVN_VERSION" + yes | sdk install maven "$DEFAULT_MVN_VERSION" else install_package "maven" fi + [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" mvn -version check_status "Failed to install maven" "Maven installed successfully." $? +} + +install_java_via_sdkman() { + echo -e "${YELLOW}Installing java...${NO_COLOR}" + if [ -n "$1" ]; then + DEFAULT_JDK_VERSION="$1" + else + DEFAULT_JDK_VERSION="17" + fi + install_sdkman + [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" + yes | sdk install java "$DEFAULT_JDK_VERSION-open" + [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" + java -version + check_status "Failed to install java" "Java installed successfully." $? SOURCE_RESULTS+="Sdkman: source $HOME/.sdkman/bin/sdkman-init.sh\n" } @@ -999,6 +1032,29 @@ deploy_go() { SOURCE_RESULTS+="Golang: source $BASH_RC\n" } +# Install Go via gvm +install_go_via_gvm() { + echo -e "${YELLOW}Installing Go...${NO_COLOR}" + if [ -n "$1" ]; then + DEFAULT_GO_VERSION="$1" + else + DEFAULT_GO_VERSION="1.23.0" + fi + install_gvm + export GO111MODULE=on + export GOPROXY=https://goproxy.cn,direct + export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/ + export GOROOT_BOOTSTRAP=$GOROOT + + gvm install go"$DEFAULT_GO_VERSION" -B + gvm use go"$DEFAULT_GO_VERSION" + gvm use go"$DEFAULT_GO_VERSION" --default + + go version + check_status "Failed to install Go" "Go installed successfully." $? + SOURCE_RESULTS+="Golang: source $BASH_RC\n" +} + # Function to install Rust and Cargo deploy_rust() { # Check if Rust is already installed @@ -1074,7 +1130,7 @@ install_node_in_ubuntu18.04() { NODE_DISTRO="node-v$DEFAULT_NODE_VERSION-linux-x64" update_ubuntu_gcc_18.04 echo "Installing Node..." - curl -O https://nodejs.org/dist/v22.0.0/node-v22.0.0.tar.gz + curl --retry 10 --retry-delay 5 --retry-max-time 120 -O https://nodejs.org/dist/v22.0.0/node-v22.0.0.tar.gz tar -xzf node-v22.0.0.tar.gz cd node-v22.0.0 || exit ./configure @@ -1126,8 +1182,8 @@ install_node_via_nvm () { # Install NVM if ! command -v nvm &> /dev/null; then - NVM_VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/"$NVM_VERSION"/install.sh | bash + NVM_VERSION=$(curl --retry 10 --retry-delay 5 --retry-max-time 120 -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') + curl --retry 10 --retry-delay 5 --retry-max-time 120 -o- https://raw.githubusercontent.com/nvm-sh/nvm/"$NVM_VERSION"/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" @@ -1668,12 +1724,16 @@ config_cloud_init() { } cleanup() { - echo -e "${GREEN}===========================================\n${NO_COLOR}" - echo -e "${GREEN}Installation complete! \n${NO_COLOR}" - echo -e "${GREEN}Some tools require you to manually source${NO_COLOR}" - echo -e "${GREEN}or restart your terminal to take effect.\n${NO_COLOR}" - echo -e "${GREEN}===========================================\n${NO_COLOR}" - echo -e "${GREEN}$SOURCE_RESULTS${NO_COLOR}" + if [ -n "$SOURCE_RESULTS" ]; then + echo -e "${YELLOW}===========================================\n${NO_COLOR}" + echo -e "${YELLOW}Installation complete! \n${NO_COLOR}" + echo -e "${YELLOW}Some tools require you to manually source${NO_COLOR}" + echo -e "${YELLOW}or restart your terminal to take effect.\n${NO_COLOR}" + echo -e "${YELLOW}===========================================\n${NO_COLOR}" + echo -e "${YELLOW}$SOURCE_RESULTS${NO_COLOR}" + else + echo -e "${YELLOW}Installation complete \n${NO_COLOR}" + fi } # Clone a repository with a specified target directory @@ -1773,16 +1833,16 @@ clone_repos() { new_funcs() { echo "Adding test..." install_python 3.10.12 - install_java 21 + install_java_via_sdkman 21.0.2 install_node 16.20.2 - install_maven 3.2.5 + install_maven_via_sdkman 3.2.5 deploy_rust } # deploy TDasset TDasset() { - install_java 21 - install_maven 3.9.9 + install_java_via_sdkman 21.0.2 + install_maven_via_sdkman 3.9.9 # not supported in centos7/ubuntu18 because of the old version of glibc install_node_via_nvm 22.0.0 install_pnpm @@ -1790,9 +1850,10 @@ TDasset() { # deploy TDinternal/TDengine/taosx TDinternal() { - deploy_go + install_go_via_gvm 1.23.3 deploy_rust - install_java 17 + install_java_via_sdkman 17 + install_maven_via_sdkman 3.9.9 install_node_via_nvm 16.20.2 install_python 3.10.12 } @@ -1874,7 +1935,7 @@ deploy_dev() { install_python install_pip_pkg install_java - install_maven + install_maven_via_sdkman deploy_go deploy_rust install_node @@ -1966,8 +2027,11 @@ main() { install_java) install_java ;; - install_maven) - install_maven + install_java_via_sdkman) + install_java_via_sdkman + ;; + install_maven_via_sdkman) + install_maven_via_sdkman ;; deploy_cmake) deploy_cmake @@ -1984,6 +2048,12 @@ main() { deploy_go) deploy_go ;; + install_gvm) + install_gvm + ;; + install_go_via_gvm) + install_go_via_gvm + ;; deploy_rust) deploy_rust ;; From 626dec071855ee09f0a4d106184b1b64d252a343 Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Tue, 31 Dec 2024 12:55:42 +0800 Subject: [PATCH 3/5] enh: add pkg manager for java/go/python --- packaging/setup_env.sh | 88 ++++++++++++++++++++++++++++++++---------- 1 file changed, 68 insertions(+), 20 deletions(-) diff --git a/packaging/setup_env.sh b/packaging/setup_env.sh index 30e3b9cda3..07c5d45337 100644 --- a/packaging/setup_env.sh +++ b/packaging/setup_env.sh @@ -928,7 +928,7 @@ install_java() { INSTALLED_VERSION=$("$JAVA_HOME"/bin/java --version 2>&1) if echo "$INSTALLED_VERSION" | grep -q "openjdk $DEFAULT_JDK_VERSION"; then echo -e "${GREEN}Java installed successfully.${NO_COLOR}" - SOURCE_RESULTS+="Java: source /root/.bashrc\n" + SOURCE_RESULTS+="source /root/.bashrc # For OpenJDK\n" else echo -e "${YELLOW}Java version not match.${NO_COLOR}" exit 1 @@ -938,11 +938,11 @@ install_java() { # Install sdkman install_sdkman() { echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}" - install_package zip unzip if [ -d "$HOME/.sdkman" ]; then echo -e "${GREEN}SDKMAN is already installed.${NO_COLOR}" else echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}" + install_package zip unzip curl --retry 10 --retry-delay 5 --retry-max-time 120 -s "https://get.sdkman.io" | bash fi } @@ -950,16 +950,64 @@ install_sdkman() { # Install gvm install_gvm() { echo -e "${YELLOW}Installing GVM...${NO_COLOR}" - install_package bison gcc make - bash < <(curl --retry 10 --retry-delay 5 --retry-max-time 120 -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) - source $HOME/.gvm/scripts/gvm - gvm version - check_status "Failed to install GVM" "GVM installed successfully." $? - add_config_if_not_exist "export GO111MODULE=on" "$BASH_RC" - add_config_if_not_exist "export GOPROXY=https://goproxy.cn,direct" "$BASH_RC" - add_config_if_not_exist "export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/" "$BASH_RC" - add_config_if_not_exist "export GOROOT_BOOTSTRAP=$GOROOT" "$BASH_RC" - SOURCE_RESULTS+="GVM: source $HOME/.gvm/scripts/gvm\n" + if [ -d "$HOME/.gvm" ]; then + echo -e "${GREEN}GVM is already installed.${NO_COLOR}" + else + install_package bison gcc make + bash < <(curl --retry 10 --retry-delay 5 --retry-max-time 120 -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) + source $HOME/.gvm/scripts/gvm + gvm version + check_status "Failed to install GVM" "GVM installed successfully." $? + add_config_if_not_exist "export GO111MODULE=on" "$BASH_RC" + add_config_if_not_exist "export GOPROXY=https://goproxy.cn,direct" "$BASH_RC" + add_config_if_not_exist "export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/" "$BASH_RC" + add_config_if_not_exist "export GOROOT_BOOTSTRAP=$GOROOT" "$BASH_RC" + SOURCE_RESULTS+="source $HOME/.gvm/scripts/gvm # For GVM\n" + fi +} + +# Install pyvenv +install_pyenv() { + echo -e "${YELLOW}Installing Pyenv...${NO_COLOR}" + if [ -d "$HOME/.pyenv" ]; then + echo -e "${GREEN}Pyenv is already installed.${NO_COLOR}" + else + curl -L https://gitee.com/xinghuipeng/pyenv-installer/raw/master/bin/pyenv-installer | bash + export PATH="$HOME/.pyenv/bin:$PATH" + eval "$(pyenv init --path)" + eval "$(pyenv init -)" + add_config_if_not_exist "export PATH=\"\$HOME/.pyenv/bin:\$PATH\"" "$BASH_RC" + add_config_if_not_exist "eval \"\$(pyenv init --path)\"" "$BASH_RC" + add_config_if_not_exist "eval \"\$(pyenv init -)\"" "$BASH_RC" + pyenv --version + check_status "Failed to install Pyenv" "Pyenv installed successfully." $? + SOURCE_RESULTS+="source $BASH_RC For: Pyenv/python\n" + fi +} + +# Install python via pyenv +install_python_via_pyenv() { + echo -e "${YELLOW}Installing Python via Pyenv...${NO_COLOR}" + if [ -f /etc/debian_version ]; then + install_package gcc make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev + elif [ -f /etc/redhat-release ]; then + install_package gcc zlib zlib-devel libffi libffi-devel readline-devel openssl-devel openssl11 openssl11-devel + else + echo "Unsupported Linux distribution." + exit 1 + fi + + if [ -n "$1" ]; then + DEFAULT_PYTHON_VERSION="$1" + else + DEFAULT_PYTHON_VERSION="3.10.12" + fi + install_pyenv + + pyenv install "$DEFAULT_PYTHON_VERSION" + pyenv global "$DEFAULT_PYTHON_VERSION" + python --version + check_status "Failed to install Python" "Python installed successfully." $? } # Install Maven @@ -993,7 +1041,7 @@ install_java_via_sdkman() { [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" java -version check_status "Failed to install java" "Java installed successfully." $? - SOURCE_RESULTS+="Sdkman: source $HOME/.sdkman/bin/sdkman-init.sh\n" + SOURCE_RESULTS+="source $HOME/.sdkman/bin/sdkman-init.sh # For Sdkman/java/maven\n" } # Install Go @@ -1029,7 +1077,7 @@ deploy_go() { # Apply the environment variables $GO_INSTALL_DIR/bin/go version check_status "Failed to install GO" "Install GO successfully" $? - SOURCE_RESULTS+="Golang: source $BASH_RC\n" + SOURCE_RESULTS+="source $BASH_RC # For Golang\n" } # Install Go via gvm @@ -1052,7 +1100,7 @@ install_go_via_gvm() { go version check_status "Failed to install Go" "Go installed successfully." $? - SOURCE_RESULTS+="Golang: source $BASH_RC\n" + SOURCE_RESULTS+="source $BASH_RC # For Golang\n" } # Function to install Rust and Cargo @@ -1103,7 +1151,7 @@ deploy_rust() { # Install cargo-make cargo install cargo-make check_status "Failed to install Rust" "Install Rust successfully" $? - SOURCE_RESULTS+="Rust: source $BASH_RC && source $HOME/.cargo/env\n" + SOURCE_RESULTS+="source $BASH_RC && source $HOME/.cargo/env # For Rust\n" else echo "Rust is already installed." fi @@ -1188,7 +1236,7 @@ install_node_via_nvm () { [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" echo -e "${GREEN}NVM installed successfully.${NO_COLOR}" - SOURCE_RESULTS+="NVM: source $NVM_DIR/nvm.sh && source $NVM_DIR/bash_completion\n" + SOURCE_RESULTS+="source $NVM_DIR/nvm.sh && source $NVM_DIR/bash_completion # For NVM/node/npm/yarn/pnpm\n" else echo -e "${GREEN}NVM is already installed.${NO_COLOR}" fi @@ -1832,7 +1880,7 @@ clone_repos() { new_funcs() { echo "Adding test..." - install_python 3.10.12 + install_python_via_pyenv 3.10.12 install_java_via_sdkman 21.0.2 install_node 16.20.2 install_maven_via_sdkman 3.2.5 @@ -1855,12 +1903,12 @@ TDinternal() { install_java_via_sdkman 17 install_maven_via_sdkman 3.9.9 install_node_via_nvm 16.20.2 - install_python 3.10.12 + install_python_via_pyenv 3.10.12 } # deploy TDgpt TDgpt() { - install_python 3.10.12 + install_python_via_pyenv 3.10.12 } # deploy taos-test-framework From fd31350f2a24700e06c3f3bdae90dd530be285a0 Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Tue, 31 Dec 2024 12:58:01 +0800 Subject: [PATCH 4/5] enh: update --- packaging/setup_env.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packaging/setup_env.sh b/packaging/setup_env.sh index 07c5d45337..d84e40294d 100644 --- a/packaging/setup_env.sh +++ b/packaging/setup_env.sh @@ -153,6 +153,8 @@ help() { echo " config_coredump - Configure core dump settings" echo " disable_service - Disable specified services" echo " install_python - Install Python and pip" + echo " install_pyenv - Install Pyenv" + echo " install_python_via_pyenv - Install Python via pyenv" echo " install_java - Install Java" echo " install_java_via_sdkman - Install Java via sdkman" echo " install_maven_via_sdkman - Install Maven via sdkman" @@ -2069,6 +2071,12 @@ main() { install_python) install_python ;; + install_pyenv) + install_pyenv + ;; + install_python_via_pyenv) + install_python_via_pyenv + ;; install_pip_pkg) install_pip_pkg ;; From fcab40ad958fea42996871678fdc2fc7848c6f4c Mon Sep 17 00:00:00 2001 From: jiajingbin Date: Tue, 31 Dec 2024 14:10:39 +0800 Subject: [PATCH 5/5] enh: update --- packaging/setup_env.sh | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/packaging/setup_env.sh b/packaging/setup_env.sh index d84e40294d..e8b69c964e 100644 --- a/packaging/setup_env.sh +++ b/packaging/setup_env.sh @@ -930,7 +930,7 @@ install_java() { INSTALLED_VERSION=$("$JAVA_HOME"/bin/java --version 2>&1) if echo "$INSTALLED_VERSION" | grep -q "openjdk $DEFAULT_JDK_VERSION"; then echo -e "${GREEN}Java installed successfully.${NO_COLOR}" - SOURCE_RESULTS+="source /root/.bashrc # For OpenJDK\n" + SOURCE_RESULTS+="source /root/.bashrc # For openjdk\n" else echo -e "${YELLOW}Java version not match.${NO_COLOR}" exit 1 @@ -964,27 +964,32 @@ install_gvm() { add_config_if_not_exist "export GOPROXY=https://goproxy.cn,direct" "$BASH_RC" add_config_if_not_exist "export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/" "$BASH_RC" add_config_if_not_exist "export GOROOT_BOOTSTRAP=$GOROOT" "$BASH_RC" - SOURCE_RESULTS+="source $HOME/.gvm/scripts/gvm # For GVM\n" fi + SOURCE_RESULTS+="source $HOME/.gvm/scripts/gvm # For gvm\n" } -# Install pyvenv +# enable pyenv +enable_pyenv() { + export PATH="$HOME/.pyenv/bin:$PATH" + eval "$(pyenv init --path)" + eval "$(pyenv init -)" +} + +# Install pyenv install_pyenv() { echo -e "${YELLOW}Installing Pyenv...${NO_COLOR}" if [ -d "$HOME/.pyenv" ]; then echo -e "${GREEN}Pyenv is already installed.${NO_COLOR}" else curl -L https://gitee.com/xinghuipeng/pyenv-installer/raw/master/bin/pyenv-installer | bash - export PATH="$HOME/.pyenv/bin:$PATH" - eval "$(pyenv init --path)" - eval "$(pyenv init -)" + enable_pyenv add_config_if_not_exist "export PATH=\"\$HOME/.pyenv/bin:\$PATH\"" "$BASH_RC" add_config_if_not_exist "eval \"\$(pyenv init --path)\"" "$BASH_RC" add_config_if_not_exist "eval \"\$(pyenv init -)\"" "$BASH_RC" pyenv --version check_status "Failed to install Pyenv" "Pyenv installed successfully." $? - SOURCE_RESULTS+="source $BASH_RC For: Pyenv/python\n" fi + SOURCE_RESULTS+="source $BASH_RC For: pyenv/python\n" } # Install python via pyenv @@ -1005,7 +1010,7 @@ install_python_via_pyenv() { DEFAULT_PYTHON_VERSION="3.10.12" fi install_pyenv - + enable_pyenv pyenv install "$DEFAULT_PYTHON_VERSION" pyenv global "$DEFAULT_PYTHON_VERSION" python --version @@ -1043,7 +1048,7 @@ install_java_via_sdkman() { [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh" java -version check_status "Failed to install java" "Java installed successfully." $? - SOURCE_RESULTS+="source $HOME/.sdkman/bin/sdkman-init.sh # For Sdkman/java/maven\n" + SOURCE_RESULTS+="source $HOME/.sdkman/bin/sdkman-init.sh # For sdkman/java/maven\n" } # Install Go @@ -1079,7 +1084,7 @@ deploy_go() { # Apply the environment variables $GO_INSTALL_DIR/bin/go version check_status "Failed to install GO" "Install GO successfully" $? - SOURCE_RESULTS+="source $BASH_RC # For Golang\n" + SOURCE_RESULTS+="source $BASH_RC # For golang\n" } # Install Go via gvm @@ -1091,6 +1096,7 @@ install_go_via_gvm() { DEFAULT_GO_VERSION="1.23.0" fi install_gvm + source $HOME/.gvm/scripts/gvm export GO111MODULE=on export GOPROXY=https://goproxy.cn,direct export GO_BINARY_BASE_URL=https://mirrors.aliyun.com/golang/ @@ -1102,7 +1108,7 @@ install_go_via_gvm() { go version check_status "Failed to install Go" "Go installed successfully." $? - SOURCE_RESULTS+="source $BASH_RC # For Golang\n" + SOURCE_RESULTS+="source $BASH_RC # For golang\n" } # Function to install Rust and Cargo @@ -1153,7 +1159,7 @@ deploy_rust() { # Install cargo-make cargo install cargo-make check_status "Failed to install Rust" "Install Rust successfully" $? - SOURCE_RESULTS+="source $BASH_RC && source $HOME/.cargo/env # For Rust\n" + SOURCE_RESULTS+="source $BASH_RC && source $HOME/.cargo/env # For cargo/rust\n" else echo "Rust is already installed." fi @@ -1238,7 +1244,7 @@ install_node_via_nvm () { [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" echo -e "${GREEN}NVM installed successfully.${NO_COLOR}" - SOURCE_RESULTS+="source $NVM_DIR/nvm.sh && source $NVM_DIR/bash_completion # For NVM/node/npm/yarn/pnpm\n" + SOURCE_RESULTS+="source $NVM_DIR/nvm.sh && source $NVM_DIR/bash_completion # For nvm/node/npm/yarn/pnpm\n" else echo -e "${GREEN}NVM is already installed.${NO_COLOR}" fi