debian上安装opencode,并一键配置Gemini的api和openrouter的api,并将默认模型设置为gemini-3-flash-preview
使用方法:
nano setup_opencode.sh # 粘贴代码 -> Ctrl+O 保存 -> Enter -> Ctrl+X 退出
chmod +x setup_opencode.sh sudo ./setup_opencode.sh
脚本代码:
#!/bin/bash
set -e
# 颜色定义
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${BLUE}=== OpenCode 一键安装与配置脚本 (v2) ===${NC}"
# 1. 检查 root 权限 (创建软链接和写入部分目录需要)
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}请使用 sudo 运行此脚本,以确保能修复系统路径。${NC}"
echo "示例: sudo bash $0"
exit 1
fi
# 2. 安装基础依赖
echo -e "${GREEN}[1/6] 安装系统依赖...${NC}"
apt-get update -qq && apt-get install -y curl git jq >/dev/null 2>&1
# 3. 交互式获取 Key
echo -e "${BLUE}=== API Key 配置 ===${NC}"
# 如果未通过环境变量传入,则询问
if [ -z "$GEMINI_KEY" ]; then
read -sp "请输入 Google Gemini API Key: " GEMINI_KEY
echo ""
fi
if [ -z "$OPENROUTER_KEY" ]; then
read -sp "请输入 OpenRouter API Key: " OPENROUTER_KEY
echo ""
fi
if [ -z "$GEMINI_KEY" ] || [ -z "$OPENROUTER_KEY" ]; then
echo -e "${RED}错误: API Key 不能为空。${NC}"
exit 1
fi
# 4. 安装 OpenCode (指定安装目录以防万一)
echo -e "${GREEN}[2/6] 下载并安装 OpenCode...${NC}"
# 强制指定安装目录到用户目录,避免 root 权限污染用户配置,但这里我们用 root 运行,
# 会安装到 /root/.opencode。后续我们用软链接解决路径问题。
curl -fsSL https://opencode.ai/install | bash
# 5. 修复 PATH (核心步骤:建立 /usr/local/bin 软链接)
echo -e "${GREEN}[3/6] 修复可执行路径...${NC}"
# 寻找常见的安装落点
POSSIBLE_PATHS=(
"$HOME/.opencode/bin/opencode"
"$HOME/.local/bin/opencode"
"/root/.opencode/bin/opencode"
)
TARGET_BIN=""
for path in "${POSSIBLE_PATHS[@]}"; do
if [ -f "$path" ]; then
TARGET_BIN="$path"
break
fi
done
if [ -n "$TARGET_BIN" ]; then
echo "找到安装文件: $TARGET_BIN"
ln -sf "$TARGET_BIN" /usr/local/bin/opencode
echo "已创建软链接: /usr/local/bin/opencode -> $TARGET_BIN"
else
echo -e "${RED}错误: 未找到 opencode 可执行文件,安装可能失败。${NC}"
exit 1
fi
# 6. 配置 API Key 持久化 (auth.json)
echo -e "${GREEN}[4/6] 生成凭据文件 (auth.json)...${NC}"
# OpenCode 的凭据存储在 ~/.local/share/opencode/auth.json
AUTH_DIR="$HOME/.local/share/opencode"
mkdir -p "$AUTH_DIR"
# 写入 auth.json (这是官方推荐的持久化方式,不依赖环境变量)
# 注意:这里直接写入 type: api 和 key,这是目前的标准格式
cat > "$AUTH_DIR/auth.json" <<EOF
{
"google": {
"type": "api",
"key": "$GEMINI_KEY"
},
"openrouter": {
"type": "api",
"key": "$OPENROUTER_KEY"
}
}
EOF
chmod 600 "$AUTH_DIR/auth.json"
# 7. 生成全局配置 (opencode.json)
echo -e "${GREEN}[5/6] 生成主配置文件...${NC}"
CONFIG_DIR="$HOME/.config/opencode"
mkdir -p "$CONFIG_DIR"
# 注意:这里移除了 "editor" 字段,避免 schema 校验失败
# 模型 ID 使用 google/gemini-3-flash-preview
cat > "$CONFIG_DIR/opencode.json" <<EOF
{
"\$schema": "https://opencode.ai/config.json",
"model": "google/gemini-3-flash-preview",
"small_model": "google/gemini-3-flash-preview",
"provider": {
"google": {},
"openrouter": {}
}
}
EOF
# 8. 验证
echo -e "${GREEN}[6/6] 验证安装...${NC}"
if command -v opencode >/dev/null; then
VERSION=$(opencode --version 2>/dev/null || echo "Unknown")
echo -e "${BLUE}安装成功!${NC}"
echo -e "OpenCode 版本: $VERSION"
echo -e "默认模型: google/gemini-3-flash-preview"
echo -e "凭据已保存至: $AUTH_DIR/auth.json"
echo -e "可以直接运行 ${GREEN}opencode${NC} 开始使用。"
else
echo -e "${RED}验证失败:opencode 命令仍无法执行,请检查系统 PATH。${NC}"
fi