- Dockerfile: Ubuntu + Python + Node + Go + Rust + MySQL + Redis - 离线安装包下载脚本(国内镜像源) - 技术规格说明书 SPECS.md - 代码审查报告 REVIEW-REPORT.md
97 lines
2.7 KiB
Bash
97 lines
2.7 KiB
Bash
#!/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"
|