enh: add pkg manager for java/go
This commit is contained in:
parent
88a938d008
commit
77566ebc29
|
@ -154,8 +154,11 @@ help() {
|
||||||
echo " disable_service - Disable specified services"
|
echo " disable_service - Disable specified services"
|
||||||
echo " install_python - Install Python and pip"
|
echo " install_python - Install Python and pip"
|
||||||
echo " install_java - Install Java"
|
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 " 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 " deploy_rust - Deploy Rust environment"
|
||||||
echo " install_node - Install Node via package manager or binary"
|
echo " install_node - Install Node via package manager or binary"
|
||||||
echo " install_node_via_nvm - Install Node via NVM"
|
echo " install_node_via_nvm - Install Node via NVM"
|
||||||
|
@ -793,7 +796,7 @@ update_redhat_gcc() {
|
||||||
update_redhat_tmux() {
|
update_redhat_tmux() {
|
||||||
echo "Downloading the latest version of tmux..."
|
echo "Downloading the latest version of tmux..."
|
||||||
cd /usr/local/src || exit
|
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
|
wget https://github.com/tmux/tmux/releases/download/"${latest_tmux_version}"/tmux-"${latest_tmux_version}".tar.gz
|
||||||
|
|
||||||
echo "Extracting tmux ${latest_tmux_version}..."
|
echo "Extracting tmux ${latest_tmux_version}..."
|
||||||
|
@ -845,6 +848,7 @@ deploy_tmux() {
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# Install Java
|
# Install Java
|
||||||
|
# shellcheck disable=SC2120
|
||||||
install_java() {
|
install_java() {
|
||||||
echo -e "${YELLOW}Installing Java...${NO_COLOR}"
|
echo -e "${YELLOW}Installing Java...${NO_COLOR}"
|
||||||
# Specify the major JDK version to search for; default is set to 17 if not specified
|
# 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
|
||||||
install_sdkman() {
|
install_sdkman() {
|
||||||
|
echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}"
|
||||||
install_package zip unzip
|
install_package zip unzip
|
||||||
if [ -d "$HOME/.sdkman" ]; then
|
if [ -d "$HOME/.sdkman" ]; then
|
||||||
echo -e "${GREEN}SDKMAN is already installed.${NO_COLOR}"
|
echo -e "${GREEN}SDKMAN is already installed.${NO_COLOR}"
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW}Installing SDKMAN...${NO_COLOR}"
|
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
|
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
|
# Install Maven
|
||||||
# shellcheck disable=SC2120
|
# shellcheck disable=SC2120
|
||||||
install_maven() {
|
install_maven_via_sdkman() {
|
||||||
echo -e "${YELLOW}Installing maven...${NO_COLOR}"
|
echo -e "${YELLOW}Installing maven...${NO_COLOR}"
|
||||||
if [ -n "$1" ]; then
|
if [ -n "$1" ]; then
|
||||||
DEFAULT_MVN_VERSION="$1"
|
DEFAULT_MVN_VERSION="$1"
|
||||||
install_sdkman
|
install_sdkman
|
||||||
if [ -f "$HOME/.sdkman/bin/sdkman-init.sh" ]; then
|
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
|
||||||
source "$HOME/.sdkman/bin/sdkman-init.sh"
|
|
||||||
fi
|
|
||||||
# 3.2.5
|
# 3.2.5
|
||||||
sdk install maven "$DEFAULT_MVN_VERSION"
|
yes | sdk install maven "$DEFAULT_MVN_VERSION"
|
||||||
else
|
else
|
||||||
install_package "maven"
|
install_package "maven"
|
||||||
fi
|
fi
|
||||||
|
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
|
||||||
mvn -version
|
mvn -version
|
||||||
check_status "Failed to install maven" "Maven installed successfully." $?
|
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"
|
SOURCE_RESULTS+="Sdkman: source $HOME/.sdkman/bin/sdkman-init.sh\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -999,6 +1032,29 @@ deploy_go() {
|
||||||
SOURCE_RESULTS+="Golang: source $BASH_RC\n"
|
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
|
# Function to install Rust and Cargo
|
||||||
deploy_rust() {
|
deploy_rust() {
|
||||||
# Check if Rust is already installed
|
# Check if Rust is already installed
|
||||||
|
@ -1074,7 +1130,7 @@ install_node_in_ubuntu18.04() {
|
||||||
NODE_DISTRO="node-v$DEFAULT_NODE_VERSION-linux-x64"
|
NODE_DISTRO="node-v$DEFAULT_NODE_VERSION-linux-x64"
|
||||||
update_ubuntu_gcc_18.04
|
update_ubuntu_gcc_18.04
|
||||||
echo "Installing Node..."
|
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
|
tar -xzf node-v22.0.0.tar.gz
|
||||||
cd node-v22.0.0 || exit
|
cd node-v22.0.0 || exit
|
||||||
./configure
|
./configure
|
||||||
|
@ -1126,8 +1182,8 @@ install_node_via_nvm () {
|
||||||
|
|
||||||
# Install NVM
|
# Install NVM
|
||||||
if ! command -v nvm &> /dev/null; then
|
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(.*)(?=")')
|
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 -o- https://raw.githubusercontent.com/nvm-sh/nvm/"$NVM_VERSION"/install.sh | bash
|
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"
|
export NVM_DIR="$HOME/.nvm"
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||||
|
@ -1668,12 +1724,16 @@ config_cloud_init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
echo -e "${GREEN}===========================================\n${NO_COLOR}"
|
if [ -n "$SOURCE_RESULTS" ]; then
|
||||||
echo -e "${GREEN}Installation complete! \n${NO_COLOR}"
|
echo -e "${YELLOW}===========================================\n${NO_COLOR}"
|
||||||
echo -e "${GREEN}Some tools require you to manually source${NO_COLOR}"
|
echo -e "${YELLOW}Installation complete! \n${NO_COLOR}"
|
||||||
echo -e "${GREEN}or restart your terminal to take effect.\n${NO_COLOR}"
|
echo -e "${YELLOW}Some tools require you to manually source${NO_COLOR}"
|
||||||
echo -e "${GREEN}===========================================\n${NO_COLOR}"
|
echo -e "${YELLOW}or restart your terminal to take effect.\n${NO_COLOR}"
|
||||||
echo -e "${GREEN}$SOURCE_RESULTS${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
|
# Clone a repository with a specified target directory
|
||||||
|
@ -1773,16 +1833,16 @@ clone_repos() {
|
||||||
new_funcs() {
|
new_funcs() {
|
||||||
echo "Adding test..."
|
echo "Adding test..."
|
||||||
install_python 3.10.12
|
install_python 3.10.12
|
||||||
install_java 21
|
install_java_via_sdkman 21.0.2
|
||||||
install_node 16.20.2
|
install_node 16.20.2
|
||||||
install_maven 3.2.5
|
install_maven_via_sdkman 3.2.5
|
||||||
deploy_rust
|
deploy_rust
|
||||||
}
|
}
|
||||||
|
|
||||||
# deploy TDasset
|
# deploy TDasset
|
||||||
TDasset() {
|
TDasset() {
|
||||||
install_java 21
|
install_java_via_sdkman 21.0.2
|
||||||
install_maven 3.9.9
|
install_maven_via_sdkman 3.9.9
|
||||||
# not supported in centos7/ubuntu18 because of the old version of glibc
|
# not supported in centos7/ubuntu18 because of the old version of glibc
|
||||||
install_node_via_nvm 22.0.0
|
install_node_via_nvm 22.0.0
|
||||||
install_pnpm
|
install_pnpm
|
||||||
|
@ -1790,9 +1850,10 @@ TDasset() {
|
||||||
|
|
||||||
# deploy TDinternal/TDengine/taosx
|
# deploy TDinternal/TDengine/taosx
|
||||||
TDinternal() {
|
TDinternal() {
|
||||||
deploy_go
|
install_go_via_gvm 1.23.3
|
||||||
deploy_rust
|
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_node_via_nvm 16.20.2
|
||||||
install_python 3.10.12
|
install_python 3.10.12
|
||||||
}
|
}
|
||||||
|
@ -1874,7 +1935,7 @@ deploy_dev() {
|
||||||
install_python
|
install_python
|
||||||
install_pip_pkg
|
install_pip_pkg
|
||||||
install_java
|
install_java
|
||||||
install_maven
|
install_maven_via_sdkman
|
||||||
deploy_go
|
deploy_go
|
||||||
deploy_rust
|
deploy_rust
|
||||||
install_node
|
install_node
|
||||||
|
@ -1966,8 +2027,11 @@ main() {
|
||||||
install_java)
|
install_java)
|
||||||
install_java
|
install_java
|
||||||
;;
|
;;
|
||||||
install_maven)
|
install_java_via_sdkman)
|
||||||
install_maven
|
install_java_via_sdkman
|
||||||
|
;;
|
||||||
|
install_maven_via_sdkman)
|
||||||
|
install_maven_via_sdkman
|
||||||
;;
|
;;
|
||||||
deploy_cmake)
|
deploy_cmake)
|
||||||
deploy_cmake
|
deploy_cmake
|
||||||
|
@ -1984,6 +2048,12 @@ main() {
|
||||||
deploy_go)
|
deploy_go)
|
||||||
deploy_go
|
deploy_go
|
||||||
;;
|
;;
|
||||||
|
install_gvm)
|
||||||
|
install_gvm
|
||||||
|
;;
|
||||||
|
install_go_via_gvm)
|
||||||
|
install_go_via_gvm
|
||||||
|
;;
|
||||||
deploy_rust)
|
deploy_rust)
|
||||||
deploy_rust
|
deploy_rust
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in New Issue