1代理问题
This commit is contained in:
49
install.sh
49
install.sh
@@ -762,19 +762,53 @@ build_from_source() {
|
||||
|
||||
# 禁用 GOSUMDB 以避免连接 proxy.golang.org(在中国大陆通常无法访问)
|
||||
# 如果必须启用校验和,可以使用 GOSUMDB=sum.golang.google.cn,但可能仍有问题
|
||||
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=300"
|
||||
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=300 GOPRIVATE=*"
|
||||
|
||||
# 显示当前 Go 环境信息
|
||||
# 使用 go env -w 永久设置环境变量(避免被其他配置覆盖)
|
||||
echo -e "${BLUE}永久设置 Go 环境变量(避免连接 proxy.golang.org)...${NC}"
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPROXY=${GO_PROXY}" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOSUMDB=off" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPRIVATE=*" 2>/dev/null || true
|
||||
|
||||
# 显示当前 Go 环境信息(验证设置是否生效)
|
||||
echo -e "${BLUE}Go 环境信息:${NC}"
|
||||
echo -e "${BLUE} GOPROXY=${GO_PROXY}${NC}"
|
||||
echo -e "${BLUE} GOSUMDB=off (已禁用,避免连接 proxy.golang.org)${NC}"
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && go env GOPROXY GOSUMDB" || true
|
||||
echo -e "${BLUE} 设置的 GOPROXY=${GO_PROXY}${NC}"
|
||||
echo -e "${BLUE} 设置的 GOSUMDB=off (已禁用,避免连接 proxy.golang.org)${NC}"
|
||||
echo -e "${BLUE} 实际生效的环境变量:${NC}"
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && go env GOPROXY GOSUMDB GOPRIVATE" || true
|
||||
echo ""
|
||||
|
||||
# 验证是否仍然会连接 proxy.golang.org
|
||||
ACTUAL_GOPROXY=$(sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && go env GOPROXY" 2>/dev/null || echo "")
|
||||
if echo "$ACTUAL_GOPROXY" | grep -q "proxy.golang.org"; then
|
||||
echo -e "${RED}⚠ 警告: 检测到 GOPROXY 仍包含 proxy.golang.org${NC}"
|
||||
echo -e "${YELLOW}正在强制移除 proxy.golang.org...${NC}"
|
||||
CLEAN_PROXY=$(echo "$ACTUAL_GOPROXY" | sed 's|https://proxy.golang.org,||g' | sed 's|,https://proxy.golang.org||g' | sed 's|https://proxy.golang.org||g')
|
||||
GO_PROXY="$CLEAN_PROXY"
|
||||
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=300 GOPRIVATE=*"
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPROXY=${GO_PROXY}" 2>/dev/null || true
|
||||
echo -e "${GREEN}✓ 已更新 GOPROXY: ${GO_PROXY}${NC}"
|
||||
fi
|
||||
|
||||
# 先尝试整理依赖(显示详细信息)
|
||||
echo -e "${BLUE}整理 Go 模块依赖...${NC}"
|
||||
# 再次确认环境变量(防止被覆盖)
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPROXY=${GO_PROXY}" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOSUMDB=off" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPRIVATE=*" 2>/dev/null || true
|
||||
|
||||
if ! sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && go mod tidy -v" 2>&1; then
|
||||
echo -e "${YELLOW}⚠ go mod tidy 失败,继续尝试下载依赖...${NC}"
|
||||
# 检查错误日志中是否包含 proxy.golang.org
|
||||
TIDY_LOG=$(sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && go mod tidy -v" 2>&1 || true)
|
||||
if echo "$TIDY_LOG" | grep -q "proxy.golang.org"; then
|
||||
echo -e "${RED}错误: 检测到仍尝试连接 proxy.golang.org${NC}"
|
||||
echo -e "${YELLOW}尝试清理 Go 模块缓存并重新设置...${NC}"
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go clean -modcache" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPROXY=${GO_PROXY}" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOSUMDB=off" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPRIVATE=*" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
# 下载依赖(显示详细进度)
|
||||
@@ -788,6 +822,11 @@ build_from_source() {
|
||||
|
||||
# 使用 -x 显示详细执行过程
|
||||
echo -e "${BLUE}正在下载依赖包,显示详细进度...${NC}"
|
||||
# 在下载前再次确认环境变量设置
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPROXY=${GO_PROXY}" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOSUMDB=off" 2>/dev/null || true
|
||||
sudo bash -c "cd '$SOURCE_DIR' && $GO_PATH_ENV && go env -w GOPRIVATE=*" 2>/dev/null || true
|
||||
|
||||
if sudo bash -c "cd '$SOURCE_DIR' && $GO_ENV && timeout 600 go mod download -x" > "$DOWNLOAD_LOG" 2>&1; then
|
||||
DOWNLOAD_END_TIME=$(date +%s)
|
||||
DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME))
|
||||
|
||||
Reference in New Issue
Block a user