Skip to content

[Feature] macOS 一键安装脚本 / One-Click Installation Script for macOS #140

@xixifast

Description

@xixifast

[Feature] macOS 一键安装脚本 / One-Click Installation Script for macOS

概述 / Overview

为了简化 macOS 用户的安装流程,我创建了一套自动化安装脚本,可以实现从 GitHub 克隆到安装到 Applications 文件夹的完整自动化。

I've created a set of automated installation scripts for macOS users that can automate the entire process from cloning from GitHub to installing in the Applications folder.

主要特性 / Features

  • ✅ 自动检查依赖(Rust, Bun, Git)
  • ✅ 一键完成克隆、构建、安装全流程
  • ✅ 智能处理已存在的安装
  • ✅ 可选的构建目录清理
  • ✅ 支持快速更新已安装的版本

安装脚本 / Installation Scripts

1. 完整安装脚本 / Full Installation Script

创建文件 install-claudia.sh:

#!/bin/bash

# Claudia 一键安装脚本
# 从 GitHub 克隆到安装到 Applications 的完整自动化流程

set -e  # 遇到错误立即退出

echo "🚀 开始安装 Claudia..."

# 1. 检查依赖
echo "📋 检查依赖..."

# 检查 Rust
if ! command -v rustc &> /dev/null; then
    echo "❌ Rust 未安装,请先安装 Rust:"
    echo "   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"
    exit 1
fi
echo "✅ Rust 已安装: $(rustc --version)"

# 检查 Bun
if ! command -v bun &> /dev/null; then
    echo "❌ Bun 未安装,请先安装 Bun:"
    echo "   curl -fsSL https://bun.sh/install | bash"
    exit 1
fi
echo "✅ Bun 已安装: $(bun --version)"

# 检查 Git
if ! command -v git &> /dev/null; then
    echo "❌ Git 未安装"
    exit 1
fi
echo "✅ Git 已安装"

# 2. 选择安装目录
INSTALL_DIR="$HOME/claudia-build"
if [ -d "$INSTALL_DIR" ]; then
    echo "⚠️  目录 $INSTALL_DIR 已存在"
    read -p "是否删除并重新安装?(y/n): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        rm -rf "$INSTALL_DIR"
    else
        echo "❌ 安装取消"
        exit 1
    fi
fi

# 3. 克隆仓库
echo "📦 克隆 Claudia 仓库..."
git clone https://github.com/getAsterisk/claudia.git "$INSTALL_DIR"
cd "$INSTALL_DIR"

# 4. 安装依赖
echo "📚 安装项目依赖..."
bun install

# 5. 构建应用
echo "🔨 构建 Claudia(这可能需要几分钟)..."
bun run tauri build --no-bundle || {
    echo "⚠️  DMG 打包失败,但 .app 文件应该已创建"
}

# 6. 检查构建结果
APP_PATH="$INSTALL_DIR/src-tauri/target/release/bundle/macos/Claudia.app"
if [ ! -d "$APP_PATH" ]; then
    echo "❌ 构建失败:找不到 Claudia.app"
    exit 1
fi

echo "✅ Claudia.app 构建成功!"

# 7. 安装到 Applications
echo "📱 安装 Claudia 到应用程序文件夹..."

# 如果已存在,询问是否覆盖
if [ -d "/Applications/Claudia.app" ]; then
    echo "⚠️  /Applications/Claudia.app 已存在"
    read -p "是否覆盖?(y/n): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        rm -rf "/Applications/Claudia.app"
    else
        echo "❌ 安装取消"
        exit 1
    fi
fi

# 复制到 Applications
cp -r "$APP_PATH" /Applications/

# 8. 清理(可选)
read -p "是否删除构建目录以节省空间?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    cd "$HOME"
    rm -rf "$INSTALL_DIR"
    echo "✅ 已清理构建目录"
fi

echo "🎉 Claudia 安装完成!"
echo ""
echo "📌 使用方法:"
echo "   1. 从启动台打开 Claudia"
echo "   2. 或从 Finder → 应用程序 → Claudia"
echo "   3. 或使用 Spotlight 搜索 'Claudia'"
echo ""
echo "⚠️  首次运行时,macOS 可能会提示安全警告"
echo "   点击'打开'或在系统设置中允许运行即可"

# 询问是否立即启动
read -p "是否立即启动 Claudia?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    open /Applications/Claudia.app
fi

2. 快速更新脚本 / Quick Update Script

创建文件 update-claudia.sh:

#!/bin/bash

# Claudia 快速更新脚本
# 用于已安装依赖的情况下快速更新 Claudia

set -e

echo "🔄 更新 Claudia..."

# 默认使用已存在的 claudia 目录
CLAUDIA_DIR="$HOME/claudia"

if [ ! -d "$CLAUDIA_DIR" ]; then
    echo "❌ 找不到 Claudia 目录: $CLAUDIA_DIR"
    echo "请先运行 install-claudia.sh 进行完整安装"
    exit 1
fi

cd "$CLAUDIA_DIR"

# 更新代码
echo "📥 拉取最新代码..."
git pull

# 安装/更新依赖
echo "📦 更新依赖..."
bun install

# 构建
echo "🔨 构建新版本..."
bun run tauri build --no-bundle || true

# 检查构建结果
APP_PATH="$CLAUDIA_DIR/src-tauri/target/release/bundle/macos/Claudia.app"
if [ ! -d "$APP_PATH" ]; then
    echo "❌ 构建失败"
    exit 1
fi

# 关闭正在运行的 Claudia
echo "🔄 准备替换应用..."
killall Claudia 2>/dev/null || true

# 备份旧版本(可选)
if [ -d "/Applications/Claudia.app" ]; then
    echo "📋 备份旧版本..."
    rm -rf "/Applications/Claudia.app.backup"
    mv "/Applications/Claudia.app" "/Applications/Claudia.app.backup"
fi

# 安装新版本
echo "📱 安装新版本..."
cp -r "$APP_PATH" /Applications/

echo "✅ Claudia 更新完成!"

# 启动新版本
read -p "是否启动新版本?(y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    open /Applications/Claudia.app
fi

3. 一行命令安装 / One-Line Installation

cd ~ && rm -rf claudia-temp && git clone https://github.com/getAsterisk/claudia.git claudia-temp && cd claudia-temp && bun install && bun run tauri build --no-bundle && rm -rf /Applications/Claudia.app && cp -r src-tauri/target/release/bundle/macos/Claudia.app /Applications/ && cd ~ && rm -rf claudia-temp && open /Applications/Claudia.app

使用方法 / Usage

首次安装 / First Installation

  1. 下载安装脚本
  2. 赋予执行权限:chmod +x install-claudia.sh
  3. 运行脚本:./install-claudia.sh

更新已安装版本 / Update Existing Installation

  1. 下载更新脚本
  2. 赋予执行权限:chmod +x update-claudia.sh
  3. 运行脚本:./update-claudia.sh

前置要求 / Prerequisites

脚本会自动检查以下依赖:

  • Rust (1.70.0+): curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Bun (latest): curl -fsSL https://bun.sh/install | bash
  • Git: 通常 macOS 已预装
  • Xcode Command Line Tools: xcode-select --install

已知问题 / Known Issues

  1. DMG 打包可能失败:但不影响 .app 文件的生成和安装
  2. 首次运行安全提示:macOS 会提示"来自未识别的开发者",在系统设置中允许即可
  3. 构建时间:首次构建可能需要 5-10 分钟,取决于网络和机器性能

建议改进 / Suggestions

  1. 可以将这些脚本添加到项目的 scripts/ 目录中
  2. 在 README 中添加一键安装说明
  3. 考虑提供预构建的 .dmg 或 .app 下载
  4. 支持 Homebrew 安装:brew install --cask claudia

测试环境 / Test Environment

  • macOS 14.4 (M1)
  • Rust 1.87.0
  • Bun 1.2.15
  • 成功构建并安装

希望这个方案能帮助更多 macOS 用户快速上手 Claudia!


Would you like me to create a PR with these scripts added to the project, or should we first discuss the implementation details?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions