openclaw-multi-auto 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env bash
2
- # OpenClaw 离线增强版部署脚本 (适配 bundledDependencies + 中国区镜像)
3
- # 核心逻辑:修复权限 -> 固化环境 -> 离线安装核心依赖 -> 建立 GitHub 镜像隧道
4
-
5
- set -e
6
-
7
- # 颜色定义
8
- RED='\033[0;31m'
9
- GREEN='\033[0;32m'
10
- YELLOW='\033[1;33m'
11
- BLUE='\033[0;34m'
12
- NC='\033[0m'
13
-
14
- MIN_NODE_VERSION="22.12.0"
15
-
16
- echo -e "${BLUE}================================================${NC}"
17
- echo -e "${BLUE} OpenClaw 极速部署工具 (离线补丁固化版) ${NC}"
18
- echo -e "${BLUE}================================================${NC}"
19
-
20
- # ==================== 1. 彻底修复权限污染 ====================
21
- echo -e "${YELLOW}🔧 正在修复 npm 缓存权限 (防止 EACCES 报错)...${NC}"
22
- # 收回被 root 误占用的目录所有权
23
- sudo chown -R $(id -u):$(id -g) "$HOME/.npm" 2>/dev/null || true
24
-
25
- # ==================== 2. 环境识别 ====================
26
- OS="$(uname -s)"
27
- ARCH="$(uname -m)"
28
- if [[ "$SHELL" == */zsh ]]; then
29
- CONF_FILE="$HOME/.zshrc"
30
- else
31
- CONF_FILE="$HOME/.bashrc"
32
- fi
33
-
34
- # ==================== 3. 基础编译工具链 (针对 node-pty/sharp) ====================
35
- if [[ "$OS" == "Linux" ]]; then
36
- echo -e "${YELLOW}🔍 检查系统编译依赖...${NC}"
37
- if command -v apt-get &> /dev/null; then
38
- sudo apt-get update -qq && sudo apt-get install -y -qq build-essential python3 make gcc g++ 2>/dev/null || true
39
- fi
40
- fi
41
-
42
- # ==================== 4. Node.js 环境镜像安装 ====================
43
- check_node() {
44
- if ! command -v node &> /dev/null; then return 1; fi
45
- local CUR_V=$(node -v | sed 's/v//')
46
- [[ "$(printf '%s\n%s' "$MIN_NODE_VERSION" "$CUR_V" | sort -V | head -n1)" == "$MIN_NODE_VERSION" ]]
47
- }
48
-
49
- if ! check_node; then
50
- echo -e "${YELLOW}📥 正在从国内镜像站下载 Node.js v${MIN_NODE_VERSION}...${NC}"
51
- DIST="linux-x64"
52
- [[ "$OS" == "Darwin" ]] && DIST="darwin-x64"
53
- [[ "$OS" == "Darwin" && "$ARCH" == "arm64" ]] && DIST="darwin-arm64"
54
- [[ "$OS" == "Linux" && "$ARCH" == "aarch64" ]] && DIST="linux-arm64"
55
-
56
- URL="https://npmmirror.com/mirrors/node/v${MIN_NODE_VERSION}/node-v${MIN_NODE_VERSION}-${DIST}.tar.gz"
57
- TEMP_DIR=$(mktemp -d)
58
- curl -L "$URL" -o "$TEMP_DIR/node.tar.gz"
59
-
60
- sudo mkdir -p /usr/local/lib/nodejs
61
- sudo tar -xzf "$TEMP_DIR/node.tar.gz" -C /usr/local/lib/nodejs
62
- NODE_DIR=$(find /usr/local/lib/nodejs -maxdepth 1 -type d -name "node-v${MIN_NODE_VERSION}*")
63
-
64
- sudo ln -sf "$NODE_DIR/bin/node" /usr/local/bin/node
65
- sudo ln -sf "$NODE_DIR/bin/npm" /usr/local/bin/npm
66
- sudo ln -sf "$NODE_DIR/bin/npx" /usr/local/bin/npx
67
- rm -rf "$TEMP_DIR"
68
- fi
69
- echo -e "${GREEN}✅ Node.js 环境已就绪: $(node -v)${NC}"
70
-
71
- # ==================== 5. 配置用户级 npm 环境 ====================
72
- echo -e "${YELLOW}🔧 正在配置用户全局安装路径...${NC}"
73
- NPM_GLOBAL_BIN="$HOME/.npm-global"
74
- mkdir -p "$NPM_GLOBAL_BIN/bin"
75
- npm config set prefix "$NPM_GLOBAL_BIN"
76
-
77
- # 注入环境变量
78
- export PATH="$NPM_GLOBAL_BIN/bin:$PATH"
79
- if ! grep -q ".npm-global/bin" "$CONF_FILE" 2>/dev/null; then
80
- echo "export PATH=\"\$HOME/.npm-global/bin:\$PATH\"" >> "$CONF_FILE"
81
- fi
82
-
83
- # ==================== 6. 建立 GitHub 隧道 (针对插件克隆) ====================
84
- echo -e "${YELLOW}🚀 切换 GitHub 稳定隧道镜像 (moeyy 代理)...${NC}"
85
- # 清除干扰配置
86
- git config --global --unset-all url."https://github.com/".insteadOf 2>/dev/null || true
87
- git config --global --unset-all url."https://kkgithub.com/".insteadOf 2>/dev/null || true
88
-
89
- # 核心:拦截所有 GitHub 流量,解决依赖包内部的二次下载问题
90
- git config --global url."https://github.moeyy.xyz/https://github.com/".insteadOf "https://github.com/"
91
- git config --global url."https://github.moeyy.xyz/https://github.com/".insteadOf "git@github.com:"
92
- git config --global url."https://github.moeyy.xyz/https://github.com/".insteadOf "ssh://git@github.com/"
93
- git config --global http.sslVerify false
94
-
95
- # ==================== 7. 安装 OpenClaw (核心步骤) ====================
96
- echo -e "${YELLOW}📥 正在安装 openclaw-multi-auto...${NC}"
97
- # 强制使用 npmmirror 提高 metadata 获取速度
98
- npm config set registry https://registry.npmmirror.com
99
- export NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
100
-
101
- # 清理缓存以防万一
102
- npm cache clean --force
103
-
104
- # 由于我们在 package.json 中使用了 bundledDependencies:
105
- # 1. npm install 会直接从包内解压 baileys/node-pty,不联网 GitHub
106
- # 2. --unsafe-perm=true 确保在 Linux 下有权限执行 pre/postinstall 编译脚本
107
- if ! npm install -g openclaw-multi-auto --registry=https://registry.npmmirror.com --unsafe-perm=true --foreground-scripts; then
108
- echo -e "${RED}⚠️ 标准安装受阻,尝试跳过编译脚本以完成基础安装...${NC}"
109
- npm install -g openclaw-multi-auto --registry=https://registry.npmmirror.com --unsafe-perm=true --ignore-scripts
110
- fi
111
-
112
- # ==================== 8. 初始化与启动 ====================
113
- # 检查当前目录下是否存在 create-instance.sh
114
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
115
- if [ ! -f "$SCRIPT_DIR/scripts/create-instance.sh" ]; then
116
- # 尝试在全局包路径下寻找(如果用户是直接运行 install.sh)
117
- CREATE_SCRIPT=$(which create-instance.sh 2>/dev/null || find "$NPM_GLOBAL_BIN" -name "create-instance.sh" | head -n 1)
118
- else
119
- CREATE_SCRIPT="$SCRIPT_DIR/scripts/create-instance.sh"
120
- fi
121
-
122
- echo -e "${YELLOW}🏗️ 正在初始化默认实例 [yunwei]...${NC}"
123
- if [ -f "$CREATE_SCRIPT" ]; then
124
- bash "$CREATE_SCRIPT" yunwei "" "$PROVIDER" "$USR_KEY"
125
- else
126
- echo -e "${RED}⚠️ 警告:未找到 create-instance.sh,请尝试运行 'openclaw' 命令手动初始化${NC}"
127
- fi
128
-
129
- INSTANCE_DIR="$HOME/openclaws/yunwei"
130
- if [ -d "$INSTANCE_DIR" ]; then
131
- cd "$INSTANCE_DIR"
132
- # 后台启动
133
- if [ -f "start.sh" ]; then
134
- nohup bash start.sh > /tmp/openclaw-yunwei.log 2>&1 &
135
- echo -e "${GREEN}🎉 部署圆满成功!${NC}"
136
- echo -e "💡 日志查看: tail -f /tmp/openclaw-yunwei.log"
137
- echo -e "💡 配置文件: ${INSTANCE_DIR}/config/openclaw.json"
138
- fi
139
- echo -e "💡 快捷命令: source $CONF_FILE && openclaw tui"
140
- else
141
- echo -e "${YELLOW}💡 环境已就绪。你可以运行 'openclaw' 来开始创建你的第一个实例。${NC}"
142
- fi
143
-
144
- echo -e "${BLUE}================================================${NC}"