182 lines
4.3 KiB
Bash
182 lines
4.3 KiB
Bash
#!/bin/bash
|
|
# System dependencies installation script for Chrome DevTools Agent Skill
|
|
# This script installs required system libraries for running Chrome/Chromium
|
|
|
|
set -e
|
|
|
|
echo "🚀 Installing system dependencies for Chrome/Chromium..."
|
|
echo ""
|
|
|
|
# Detect OS
|
|
if [ -f /etc/os-release ]; then
|
|
. /etc/os-release
|
|
OS=$ID
|
|
else
|
|
echo "❌ Cannot detect OS. This script supports Debian/Ubuntu-based systems."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if running as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
SUDO="sudo"
|
|
echo "⚠️ This script requires root privileges to install system packages."
|
|
echo " You may be prompted for your password."
|
|
echo ""
|
|
else
|
|
SUDO=""
|
|
fi
|
|
|
|
# Install dependencies based on OS
|
|
case $OS in
|
|
ubuntu|debian|pop)
|
|
echo "Detected: $PRETTY_NAME"
|
|
echo "Installing dependencies with apt..."
|
|
echo ""
|
|
|
|
$SUDO apt-get update
|
|
|
|
# Install Chrome dependencies
|
|
$SUDO apt-get install -y \
|
|
ca-certificates \
|
|
fonts-liberation \
|
|
libasound2t64 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libc6 \
|
|
libcairo2 \
|
|
libcups2 \
|
|
libdbus-1-3 \
|
|
libexpat1 \
|
|
libfontconfig1 \
|
|
libgbm1 \
|
|
libgcc1 \
|
|
libglib2.0-0 \
|
|
libgtk-3-0 \
|
|
libnspr4 \
|
|
libnss3 \
|
|
libpango-1.0-0 \
|
|
libpangocairo-1.0-0 \
|
|
libstdc++6 \
|
|
libx11-6 \
|
|
libx11-xcb1 \
|
|
libxcb1 \
|
|
libxcomposite1 \
|
|
libxcursor1 \
|
|
libxdamage1 \
|
|
libxext6 \
|
|
libxfixes3 \
|
|
libxi6 \
|
|
libxrandr2 \
|
|
libxrender1 \
|
|
libxss1 \
|
|
libxtst6 \
|
|
lsb-release \
|
|
wget \
|
|
xdg-utils
|
|
|
|
echo ""
|
|
echo "✅ System dependencies installed successfully!"
|
|
;;
|
|
|
|
fedora|rhel|centos)
|
|
echo "Detected: $PRETTY_NAME"
|
|
echo "Installing dependencies with dnf/yum..."
|
|
echo ""
|
|
|
|
# Try dnf first, fallback to yum
|
|
if command -v dnf &> /dev/null; then
|
|
PKG_MGR="dnf"
|
|
else
|
|
PKG_MGR="yum"
|
|
fi
|
|
|
|
$SUDO $PKG_MGR install -y \
|
|
alsa-lib \
|
|
atk \
|
|
at-spi2-atk \
|
|
cairo \
|
|
cups-libs \
|
|
dbus-libs \
|
|
expat \
|
|
fontconfig \
|
|
glib2 \
|
|
gtk3 \
|
|
libdrm \
|
|
libgbm \
|
|
libX11 \
|
|
libxcb \
|
|
libXcomposite \
|
|
libXcursor \
|
|
libXdamage \
|
|
libXext \
|
|
libXfixes \
|
|
libXi \
|
|
libxkbcommon \
|
|
libXrandr \
|
|
libXrender \
|
|
libXScrnSaver \
|
|
libXtst \
|
|
mesa-libgbm \
|
|
nspr \
|
|
nss \
|
|
pango
|
|
|
|
echo ""
|
|
echo "✅ System dependencies installed successfully!"
|
|
;;
|
|
|
|
arch|manjaro)
|
|
echo "Detected: $PRETTY_NAME"
|
|
echo "Installing dependencies with pacman..."
|
|
echo ""
|
|
|
|
$SUDO pacman -Sy --noconfirm \
|
|
alsa-lib \
|
|
at-spi2-core \
|
|
cairo \
|
|
cups \
|
|
dbus \
|
|
expat \
|
|
glib2 \
|
|
gtk3 \
|
|
libdrm \
|
|
libx11 \
|
|
libxcb \
|
|
libxcomposite \
|
|
libxcursor \
|
|
libxdamage \
|
|
libxext \
|
|
libxfixes \
|
|
libxi \
|
|
libxkbcommon \
|
|
libxrandr \
|
|
libxrender \
|
|
libxshmfence \
|
|
libxss \
|
|
libxtst \
|
|
mesa \
|
|
nspr \
|
|
nss \
|
|
pango
|
|
|
|
echo ""
|
|
echo "✅ System dependencies installed successfully!"
|
|
;;
|
|
|
|
*)
|
|
echo "❌ Unsupported OS: $OS"
|
|
echo " This script supports: Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, Manjaro"
|
|
echo ""
|
|
echo " Please install Chrome/Chromium dependencies manually for your OS."
|
|
echo " See: https://pptr.dev/troubleshooting"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "📝 Next steps:"
|
|
echo " 1. Run: cd $(dirname "$0")"
|
|
echo " 2. Run: npm install"
|
|
echo " 3. Test: node navigate.js --url https://example.com"
|
|
echo ""
|