This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-skills/scripts/install-browser-for-openclaw.sh
T
OpenClaw Agent f41f945fe0 添加B站链接转换和浏览器安装脚本
- bilibili-short-to-long.sh: B站短链接转长链接工具
  - 支持短链接、BV号、AV号多种格式
  - 自动清理URL中的tracking参数
  - 友好的输出格式

- install-browser-for-openclaw.sh: OpenClaw浏览器环境一键安装脚本
  - 支持Ubuntu/Debian/CentOS
  - 自动安装Chromium浏览器
  - 配置OpenClaw Gateway
2026-02-07 09:07:42 +08:00

253 lines
6.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ============================================================================
# OpenClaw浏览器环境一键安装脚本
# ============================================================================
# 用途:在Ubuntu/Debian服务器上安装Chromium浏览器,供OpenClaw Gateway使用
# 适用场景:无桌面环境的服务器,需要浏览器进行自动化操作
# ============================================================================
set -e # 遇到错误立即退出
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查是否为root用户
check_root() {
if [ "$EUID" -ne 0 ]; then
log_error "请使用sudo运行此脚本: sudo $0"
exit 1
fi
}
# 检测系统
detect_os() {
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
OS_VERSION=$VERSION_ID
else
log_error "无法检测操作系统类型"
exit 1
fi
log_info "检测到系统: $OS $OS_VERSION"
}
# 检查snap是否可用
check_snap() {
if command -v snap &> /dev/null; then
log_info "snap已安装"
return 0
else
log_warn "snap未安装"
return 1
fi
}
# 安装snap
install_snap() {
log_info "正在安装snap..."
case $OS in
ubuntu|debian)
apt update
apt install -y snapd
;;
centos|rhel|fedora)
yum install -y snapd
ln -s /var/lib/snapd/snap /snap
;;
*)
log_error "不支持的操作系统: $OS"
exit 1
;;
esac
# 等待snapd启动
log_info "等待snapd启动..."
sleep 5
# 检查snap是否安装成功
if command -v snap &> /dev/null; then
log_info "snap安装成功"
else
log_error "snap安装失败"
exit 1
fi
}
# 安装Chromium(通过snap)
install_chromium_snap() {
log_info "正在通过snap安装Chromium..."
# 安装Chromium
snap install chromium --classic
# 等待安装完成
log_info "等待Chromium安装完成..."
sleep 10
# 验证安装
if snap list | grep -q chromium; then
log_info "Chromium安装成功"
# 显示Chromium路径
CHROMIUM_PATH=$(which chromium 2>/dev/null || echo "/snap/bin/chromium")
log_info "Chromium路径: $CHROMIUM_PATH"
return 0
else
log_error "Chromium安装失败"
return 1
fi
}
# 安装Chromium(通过apt,备选方案)
install_chromium_apt() {
log_info "尝试通过apt安装Chromium..."
case $OS in
ubuntu|debian)
apt update
apt install -y chromium-browser
;;
*)
log_error "不支持的操作系统: $OS"
return 1
;;
esac
# 验证安装
if command -v chromium-browser &> /dev/null || command -v chromium &> /dev/null; then
log_info "Chromium安装成功"
return 0
else
log_error "Chromium安装失败"
return 1
fi
}
# 配置OpenClaw Gateway使用Chromium
configure_openclaw() {
log_info "配置OpenClaw Gateway..."
# 检查OpenClaw配置文件
OPENCLAW_CONFIG="$HOME/.openclaw/openclaw.json"
if [ ! -f "$OPENCLAW_CONFIG" ]; then
log_warn "未找到OpenClaw配置文件: $OPENCLAW_CONFIG"
log_info "跳过Gateway配置"
return 0
fi
# 获取Chromium路径
CHROMIUM_PATH=$(which chromium 2>/dev/null || echo "/snap/bin/chromium")
# 提示用户可能需要更新配置
log_info "Chromium已安装,路径: $CHROMIUM_PATH"
log_info "如果OpenClaw Gateway无法自动检测,请手动配置:"
echo " executablePath: \"$CHROMIUM_PATH\""
echo " headless: true"
echo " noSandbox: true"
}
# 测试Chromium是否可用
test_chromium() {
log_info "测试Chromium是否可用..."
CHROMIUM_CMD=$(which chromium 2>/dev/null || which chromium-browser 2>/dev/null || echo "/snap/bin/chromium")
if $CHROMIUM_CMD --version &> /dev/null; then
VERSION=$($CHROMIUM_CMD --version)
log_info "Chromium版本: $VERSION"
return 0
else
log_warn "Chromium可能需要图形库,无法显示版本(在无头环境中是正常的)"
return 0
fi
}
# 重启OpenClaw Gateway
restart_gateway() {
log_info "重启OpenClaw Gateway..."
if command -v openclaw &> /dev/null; then
openclaw gateway restart
log_info "OpenClaw Gateway已重启"
else
log_warn "未找到openclaw命令,请手动重启Gateway"
fi
}
# 主函数
main() {
log_info "========================================"
log_info "OpenClaw浏览器环境安装脚本"
log_info "========================================"
check_root
detect_os
# 安装snap(如果需要)
if ! check_snap; then
install_snap
fi
# 尝试安装Chromium
if install_chromium_snap; then
log_info "Chromium安装成功(snap方式)"
else
log_warn "snap安装失败,尝试apt方式..."
if install_chromium_apt; then
log_info "Chromium安装成功(apt方式)"
else
log_error "所有安装方式都失败了"
exit 1
fi
fi
# 测试Chromium
test_chromium
# 配置OpenClaw
configure_openclaw
# 询问是否重启Gateway
read -p "是否立即重启OpenClaw Gateway?(y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
restart_gateway
fi
log_info "========================================"
log_info "安装完成!"
log_info "========================================"
log_info "Chromium已安装并可以供OpenClaw使用"
log_info ""
log_info "验证方法:"
log_info " 1. 运行: openclaw status"
log_info " 2. 检查浏览器状态"
log_info " 3. 使用browser工具测试"
log_info "========================================"
}
# 运行主函数
main "$@"