-
Notifications
You must be signed in to change notification settings - Fork 796
Open
Description
[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
- 下载安装脚本
- 赋予执行权限:
chmod +x install-claudia.sh
- 运行脚本:
./install-claudia.sh
更新已安装版本 / Update Existing Installation
- 下载更新脚本
- 赋予执行权限:
chmod +x update-claudia.sh
- 运行脚本:
./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
- DMG 打包可能失败:但不影响 .app 文件的生成和安装
- 首次运行安全提示:macOS 会提示"来自未识别的开发者",在系统设置中允许即可
- 构建时间:首次构建可能需要 5-10 分钟,取决于网络和机器性能
建议改进 / Suggestions
- 可以将这些脚本添加到项目的
scripts/
目录中 - 在 README 中添加一键安装说明
- 考虑提供预构建的 .dmg 或 .app 下载
- 支持 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
Labels
No labels