mirror of
				https://github.com/wisdgod/cursor-api.git
				synced 2025-10-31 02:16:26 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			157 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | ||
| 
 | ||
| # 设置错误时退出
 | ||
| set -e
 | ||
| 
 | ||
| # 颜色输出
 | ||
| RED='\033[0;31m'
 | ||
| GREEN='\033[0;32m'
 | ||
| BLUE='\033[0;34m'
 | ||
| NC='\033[0m' # No Color
 | ||
| 
 | ||
| info() {
 | ||
|     echo -e "${BLUE}[INFO] $1${NC}"
 | ||
| }
 | ||
| 
 | ||
| error() {
 | ||
|     echo -e "${RED}[ERROR] $1${NC}"
 | ||
|     exit 1
 | ||
| }
 | ||
| 
 | ||
| # 检查是否为 root 用户(FreeBSD 和 Linux)
 | ||
| if [ "$(uname)" != "Darwin" ] && [ "$EUID" -ne 0 ]; then
 | ||
|     error "请使用 root 权限运行此脚本 (sudo ./setup.sh)"
 | ||
| fi
 | ||
| 
 | ||
| # 检测包管理器
 | ||
| if command -v brew &> /dev/null; then
 | ||
|     PKG_MANAGER="brew"
 | ||
|     info "检测到 macOS/Homebrew 系统"
 | ||
| elif command -v pkg &> /dev/null; then
 | ||
|     PKG_MANAGER="pkg"
 | ||
|     info "检测到 FreeBSD 系统"
 | ||
| elif command -v apt-get &> /dev/null; then
 | ||
|     PKG_MANAGER="apt-get"
 | ||
|     info "检测到 Debian/Ubuntu 系统"
 | ||
| elif command -v dnf &> /dev/null; then
 | ||
|     PKG_MANAGER="dnf"
 | ||
|     info "检测到 Fedora/RHEL 系统"
 | ||
| elif command -v yum &> /dev/null; then
 | ||
|     PKG_MANAGER="yum"
 | ||
|     info "检测到 CentOS 系统"
 | ||
| else
 | ||
|     error "未检测到支持的包管理器"
 | ||
| fi
 | ||
| 
 | ||
| # 更新包管理器缓存
 | ||
| info "更新包管理器缓存..."
 | ||
| case $PKG_MANAGER in
 | ||
|     "brew")
 | ||
|         brew update
 | ||
|         ;;
 | ||
|     "pkg")
 | ||
|         pkg update
 | ||
|         ;;
 | ||
|     *)
 | ||
|         $PKG_MANAGER update -y
 | ||
|         ;;
 | ||
| esac
 | ||
| 
 | ||
| # 安装基础构建工具
 | ||
| info "安装基础构建工具..."
 | ||
| case $PKG_MANAGER in
 | ||
|     "brew")
 | ||
|         brew install \
 | ||
|             protobuf \
 | ||
|             pkg-config \
 | ||
|             openssl \
 | ||
|             curl \
 | ||
|             git \
 | ||
|             node
 | ||
|         ;;
 | ||
|     "pkg")
 | ||
|         pkg install -y \
 | ||
|             gmake \
 | ||
|             protobuf \
 | ||
|             pkgconf \
 | ||
|             openssl \
 | ||
|             curl \
 | ||
|             git \
 | ||
|             node
 | ||
|         ;;
 | ||
|     "apt-get")
 | ||
|         $PKG_MANAGER install -y --no-install-recommends \
 | ||
|             build-essential \
 | ||
|             protobuf-compiler \
 | ||
|             pkg-config \
 | ||
|             libssl-dev \
 | ||
|             ca-certificates \
 | ||
|             curl \
 | ||
|             tzdata \
 | ||
|             git
 | ||
|         ;;
 | ||
|     *)
 | ||
|         $PKG_MANAGER install -y \
 | ||
|             gcc \
 | ||
|             gcc-c++ \
 | ||
|             make \
 | ||
|             protobuf-compiler \
 | ||
|             pkg-config \
 | ||
|             openssl-devel \
 | ||
|             ca-certificates \
 | ||
|             curl \
 | ||
|             tzdata \
 | ||
|             git
 | ||
|         ;;
 | ||
| esac
 | ||
| 
 | ||
| # 安装 Node.js 和 npm(如果还没有通过包管理器安装)
 | ||
| if ! command -v node &> /dev/null && [ "$PKG_MANAGER" != "brew" ] && [ "$PKG_MANAGER" != "pkg" ]; then
 | ||
|     info "安装 Node.js 和 npm..."
 | ||
|     if [ "$PKG_MANAGER" = "apt-get" ]; then
 | ||
|         curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
 | ||
|         $PKG_MANAGER install -y nodejs
 | ||
|     else
 | ||
|         curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash -
 | ||
|         $PKG_MANAGER install -y nodejs
 | ||
|     fi
 | ||
| fi
 | ||
| 
 | ||
| # 安装 Rust(如果未安装)
 | ||
| if ! command -v rustc &> /dev/null; then
 | ||
|     info "安装 Rust..."
 | ||
|     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
 | ||
|     . "$HOME/.cargo/env"
 | ||
| fi
 | ||
| 
 | ||
| # 添加目标平台
 | ||
| info "添加 Rust 目标平台..."
 | ||
| case "$(uname)" in
 | ||
|     "FreeBSD")
 | ||
|         rustup target add x86_64-unknown-freebsd
 | ||
|         ;;
 | ||
|     "Darwin")
 | ||
|         rustup target add x86_64-apple-darwin aarch64-apple-darwin
 | ||
|         ;;
 | ||
|     *)
 | ||
|         rustup target add x86_64-unknown-linux-gnu
 | ||
|         ;;
 | ||
| esac
 | ||
| 
 | ||
| # 清理包管理器缓存
 | ||
| case $PKG_MANAGER in
 | ||
|     "apt-get")
 | ||
|         rm -rf /var/lib/apt/lists/*
 | ||
|         ;;
 | ||
|     "pkg")
 | ||
|         pkg clean -y
 | ||
|         ;;
 | ||
| esac
 | ||
| 
 | ||
| # 设置时区(除了 macOS)
 | ||
| if [ "$(uname)" != "Darwin" ]; then
 | ||
|     info "设置时区为 Asia/Shanghai..."
 | ||
|     ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 | ||
| fi
 | ||
| 
 | ||
| echo -e "${GREEN}安装完成!${NC}" | 
