diff --git a/install.sh b/install.sh index 68ef6dd..e563602 100755 --- a/install.sh +++ b/install.sh @@ -461,10 +461,16 @@ install_go() { # 先检查是否已安装且可用 if command -v go > /dev/null 2>&1; then - GO_VERSION=$(go version 2>/dev/null | head -1) + # 确保 PATH 包含 Go(如果从官网安装的) + if [ -d "/usr/local/go/bin" ] && ! echo "$PATH" | grep -q "/usr/local/go/bin"; then + export PATH=$PATH:/usr/local/go/bin + fi + + # 尝试获取 Go 版本 + GO_VERSION=$(go version 2>/dev/null | head -1 || echo "") if [ -n "$GO_VERSION" ]; then echo -e "${GREEN}✓ Go 已安装: ${GO_VERSION}${NC}" - # 检查 Go 版本是否可用(尝试运行 go version) + # 再次验证 Go 是否可用 if go version > /dev/null 2>&1; then echo -e "${BLUE}Go 环境正常,跳过安装流程${NC}" return 0 @@ -472,6 +478,17 @@ install_go() { echo -e "${YELLOW}⚠ Go 已安装但无法正常运行,尝试重新安装...${NC}" fi else + # 如果 command -v go 存在但无法获取版本,可能是 PATH 问题 + # 尝试添加 /usr/local/go/bin 到 PATH + if [ -d "/usr/local/go/bin" ]; then + export PATH=/usr/local/go/bin:$PATH + GO_VERSION=$(go version 2>/dev/null | head -1 || echo "") + if [ -n "$GO_VERSION" ]; then + echo -e "${GREEN}✓ Go 已安装: ${GO_VERSION}${NC}" + echo -e "${BLUE}Go 环境正常,跳过安装流程${NC}" + return 0 + fi + fi echo -e "${YELLOW}⚠ Go 已安装但无法获取版本信息,尝试重新安装...${NC}" fi fi @@ -620,7 +637,12 @@ build_from_source() { echo -e "${BLUE}未检测到 Go 环境,开始安装...${NC}" install_go else - # Go 已安装,验证是否可用 + # Go 已安装,先确保 PATH 正确 + if [ -d "/usr/local/go/bin" ] && ! echo "$PATH" | grep -q "/usr/local/go/bin"; then + export PATH=/usr/local/go/bin:$PATH + fi + + # 验证是否可用 GO_VERSION=$(go version 2>/dev/null | head -1 || echo "") if [ -n "$GO_VERSION" ] && go version > /dev/null 2>&1; then echo -e "${GREEN}✓ Go 已安装: ${GO_VERSION}${NC}"