#!/bin/bash # Dev Box 软件包下载脚本 # 使用国内镜像源,加速下载 set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PACKAGES_DIR="$SCRIPT_DIR/packages" mkdir -p "$PACKAGES_DIR" cd "$PACKAGES_DIR" echo "========================================" echo " Dev Box 软件包下载(国内镜像)" echo "========================================" echo "" # ============ Node.js ============ NODE_VERSION="v24.14.0" NODE_FILE="node-${NODE_VERSION}-linux-x64.tar.xz" echo "[1/5] Node.js ${NODE_VERSION}..." if [ ! -f "$NODE_FILE" ]; then # 淘宝镜像 curl -L -o "$NODE_FILE" "https://npmmirror.com/mirrors/node/${NODE_VERSION}/${NODE_FILE}" echo " ✓ 下载完成" else echo " - 已存在,跳过" fi # ============ Go ============ GO_VERSION="1.26.1" GO_FILE="go${GO_VERSION}.linux-amd64.tar.gz" echo "[2/5] Go ${GO_VERSION}..." if [ ! -f "$GO_FILE" ]; then # Go 官方中国镜像 curl -L -o "$GO_FILE" "https://golang.google.cn/dl/${GO_FILE}" echo " ✓ 下载完成" else echo " - 已存在,跳过" fi # ============ Rust ============ RUST_VERSION="1.94.0" RUST_FILE="rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.xz" echo "[3/5] Rust ${RUST_VERSION}..." if [ ! -f "$RUST_FILE" ]; then # 中科大镜像 curl -L -o "$RUST_FILE" "https://mirrors.ustc.edu.cn/rust-static/dist/${RUST_FILE}" echo " ✓ 下载完成" else echo " - 已存在,跳过" fi # ============ Claude Code ============ echo "[4/5] Claude Code..." if [ ! -f "claude-code-2.1.78.tgz" ]; then # 需要从 npm 下载,设置淘宝镜像 npm pack @anthropic-ai/claude-code --registry=https://registry.npmmirror.com 2>/dev/null || \ npm pack @anthropic-ai/claude-code@2.1.78 --registry=https://registry.npmmirror.com # 重命名为固定名称 for f in anthropic-ai-claude-code-*.tgz; do [ -f "$f" ] && mv "$f" "claude-code-2.1.78.tgz" done echo " ✓ 下载完成" else echo " - 已存在,跳过" fi # ============ OpenClaw ============ echo "[5/5] OpenClaw..." if [ ! -f "openclaw-2026.3.13.tgz" ]; then # 从 npm 下载 npm pack openclaw@2026.3.13 --registry=https://registry.npmmirror.com 2>/dev/null || \ npm pack openclaw --registry=https://registry.npmmirror.com # 重命名为固定名称 for f in openclaw-*.tgz; do [ -f "$f" ] && mv "$f" "openclaw-2026.3.13.tgz" done echo " ✓ 下载完成" else echo " - 已存在,跳过" fi echo "" echo "========================================" echo " 下载完成" echo "========================================" echo "" echo "文件列表:" ls -lh "$PACKAGES_DIR"/*.tar.* "$PACKAGES_DIR"/*.tgz 2>/dev/null || true echo "" echo "总大小:" du -sh "$PACKAGES_DIR"