3de9101的任务收尾
This commit is contained in:
@@ -1,691 +0,0 @@
|
||||
# Aide Linux 环境安装
|
||||
|
||||
你正在执行 Aide Linux 环境安装流程。这是一个**独立运行**的命令,用于在 Linux 系统上安装 aide 所需的全部环境依赖。
|
||||
|
||||
## 概述
|
||||
|
||||
本命令将检测并安装以下工具:
|
||||
- **uv** - Python 包管理器(用于管理 Python 和依赖)
|
||||
- **Python** - aide 运行时环境(通过 uv 安装)
|
||||
- **Java JRE** - PlantUML 运行依赖(用于生成流程图)
|
||||
|
||||
---
|
||||
|
||||
## 开始
|
||||
|
||||
### 1. 系统检测
|
||||
|
||||
首先确认当前系统是 Linux:
|
||||
|
||||
```bash
|
||||
uname -s
|
||||
```
|
||||
|
||||
如果不是 Linux 系统,请提示用户使用 `/aide:install-win` 命令。
|
||||
|
||||
### 2. 发行版识别
|
||||
|
||||
检测 Linux 发行版类型:
|
||||
|
||||
```bash
|
||||
# 读取发行版信息
|
||||
cat /etc/os-release 2>/dev/null || lsb_release -a 2>/dev/null
|
||||
```
|
||||
|
||||
根据发行版确定包管理器:
|
||||
- **Debian/Ubuntu**: apt
|
||||
- **RHEL/Fedora/CentOS**: dnf (或 yum)
|
||||
- **Arch/Manjaro**: pacman
|
||||
- **openSUSE**: zypper
|
||||
- **其他**: 手动安装
|
||||
|
||||
### 3. 环境检测
|
||||
|
||||
检测当前环境中各工具的可用性:
|
||||
|
||||
#### 3.1 检测 uv
|
||||
|
||||
```bash
|
||||
uv --version 2>/dev/null
|
||||
```
|
||||
|
||||
#### 3.2 检测 Python
|
||||
|
||||
```bash
|
||||
# 先尝试 uv 管理的 Python
|
||||
uv python list 2>/dev/null
|
||||
|
||||
# 如果 uv 不可用,检测系统 Python
|
||||
python3 --version 2>/dev/null
|
||||
python --version 2>/dev/null
|
||||
```
|
||||
|
||||
#### 3.3 检测 Java
|
||||
|
||||
```bash
|
||||
java -version 2>&1
|
||||
```
|
||||
|
||||
#### 3.4 汇总检测结果
|
||||
|
||||
根据检测结果,列出:
|
||||
- 已安装的工具及版本
|
||||
- 缺失的工具
|
||||
|
||||
如果所有工具都已安装,跳转到「aide PATH 配置」章节。
|
||||
|
||||
---
|
||||
|
||||
### 4. 安装模式选择
|
||||
|
||||
向用户询问安装模式:
|
||||
|
||||
**模式 A:自动安装**
|
||||
- 生成安装报告,用户确认后自动执行安装
|
||||
- 适合希望快速完成的用户
|
||||
|
||||
**模式 B:手动指南**
|
||||
- 生成详细的操作指南和自动化脚本
|
||||
- 用户可以自行选择执行
|
||||
- 适合需要完全控制安装过程的用户
|
||||
|
||||
使用 AskUserQuestion 工具询问用户选择。
|
||||
|
||||
---
|
||||
|
||||
### 5. 模式 A:自动安装
|
||||
|
||||
#### 5.1 生成安装报告
|
||||
|
||||
在执行任何安装操作前,必须先生成安装报告,内容包括:
|
||||
|
||||
**将要执行的操作**:
|
||||
- 列出每个需要安装的工具
|
||||
- 说明安装命令
|
||||
|
||||
**安装位置**:
|
||||
- uv: `~/.local/bin/` 或 `~/.cargo/bin/`
|
||||
- Python: 由 uv 管理,位于 `~/.local/share/uv/python/`
|
||||
- Java: 系统包管理器默认位置或 `/opt/java/`
|
||||
|
||||
**可能的副作用**:
|
||||
- 会修改 shell 配置文件 (~/.bashrc, ~/.zshrc)
|
||||
- Java 安装可能需要 sudo 权限
|
||||
|
||||
**潜在风险**:
|
||||
- 如果已有其他 Python 安装,可能产生版本冲突
|
||||
- 需要网络连接下载安装包
|
||||
|
||||
#### 5.2 请求用户确认
|
||||
|
||||
使用 AskUserQuestion 工具,展示报告并请求用户确认。
|
||||
|
||||
如果用户不确认,取消安装并退出。
|
||||
|
||||
#### 5.3 执行安装
|
||||
|
||||
##### 安装 uv(如需要)
|
||||
|
||||
```bash
|
||||
# 使用官方安装脚本
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
```
|
||||
|
||||
安装后重新加载 shell 环境:
|
||||
```bash
|
||||
# 加载新的 PATH
|
||||
source ~/.bashrc 2>/dev/null || source ~/.zshrc 2>/dev/null
|
||||
|
||||
# 或者直接添加到当前会话
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# 验证安装
|
||||
uv --version
|
||||
```
|
||||
|
||||
##### 安装 Python(如需要)
|
||||
|
||||
```bash
|
||||
# 使用 uv 安装 Python 3.11
|
||||
uv python install 3.11
|
||||
|
||||
# 验证安装
|
||||
uv python list
|
||||
```
|
||||
|
||||
##### 安装 Java JRE(如需要)
|
||||
|
||||
根据发行版使用对应的包管理器:
|
||||
|
||||
**Debian/Ubuntu (apt)**:
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y openjdk-17-jre-headless
|
||||
```
|
||||
|
||||
**RHEL/Fedora (dnf)**:
|
||||
```bash
|
||||
sudo dnf install -y java-17-openjdk-headless
|
||||
```
|
||||
|
||||
**CentOS (yum)**:
|
||||
```bash
|
||||
sudo yum install -y java-17-openjdk-headless
|
||||
```
|
||||
|
||||
**Arch (pacman)**:
|
||||
```bash
|
||||
sudo pacman -S --noconfirm jre17-openjdk-headless
|
||||
```
|
||||
|
||||
**openSUSE (zypper)**:
|
||||
```bash
|
||||
sudo zypper install -y java-17-openjdk-headless
|
||||
```
|
||||
|
||||
**无包管理器或其他发行版**:
|
||||
提供 Adoptium Temurin JRE 下载链接:
|
||||
- https://adoptium.net/temurin/releases/?os=linux&arch=x64&package=jre
|
||||
|
||||
指导用户下载 tarball 并手动安装:
|
||||
```bash
|
||||
# 下载后解压
|
||||
tar -xzf OpenJDK17U-jre_x64_linux_*.tar.gz -C /opt/
|
||||
|
||||
# 创建符号链接
|
||||
sudo ln -sf /opt/jdk-17*/bin/java /usr/local/bin/java
|
||||
```
|
||||
|
||||
安装后验证:
|
||||
```bash
|
||||
java -version
|
||||
```
|
||||
|
||||
#### 5.4 汇报安装结果
|
||||
|
||||
列出每个工具的安装状态和版本。
|
||||
|
||||
---
|
||||
|
||||
### 6. 模式 B:手动指南
|
||||
|
||||
#### 6.1 生成 Markdown 操作指南
|
||||
|
||||
创建文件 `aide-install-guide.md`,内容包括:
|
||||
|
||||
```markdown
|
||||
# Aide 环境安装指南 (Linux)
|
||||
|
||||
## 1. 安装 uv
|
||||
|
||||
uv 是 Astral 开发的高性能 Python 包管理器。
|
||||
|
||||
### 方法一:官方脚本(推荐)
|
||||
|
||||
```bash
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
```
|
||||
|
||||
安装后重新加载 shell:
|
||||
```bash
|
||||
source ~/.bashrc # 或 source ~/.zshrc
|
||||
```
|
||||
|
||||
### 方法二:手动下载
|
||||
|
||||
1. 访问 https://github.com/astral-sh/uv/releases
|
||||
2. 下载 `uv-x86_64-unknown-linux-gnu.tar.gz`
|
||||
3. 解压到 `~/.local/bin/`
|
||||
4. 确保 `~/.local/bin` 在 PATH 中
|
||||
|
||||
### 验证安装
|
||||
|
||||
```bash
|
||||
uv --version
|
||||
```
|
||||
|
||||
## 2. 安装 Python
|
||||
|
||||
使用 uv 安装受管理的 Python:
|
||||
|
||||
```bash
|
||||
uv python install 3.11
|
||||
```
|
||||
|
||||
### 验证安装
|
||||
|
||||
```bash
|
||||
uv python list
|
||||
```
|
||||
|
||||
## 3. 安装 Java JRE
|
||||
|
||||
Java 用于运行 PlantUML 生成流程图。
|
||||
|
||||
### Debian/Ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install openjdk-17-jre-headless
|
||||
```
|
||||
|
||||
### RHEL/Fedora
|
||||
|
||||
```bash
|
||||
sudo dnf install java-17-openjdk-headless
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
|
||||
```bash
|
||||
sudo pacman -S jre17-openjdk-headless
|
||||
```
|
||||
|
||||
### 手动安装(通用)
|
||||
|
||||
1. 访问 https://adoptium.net/temurin/releases/?os=linux&arch=x64&package=jre
|
||||
2. 下载 tarball
|
||||
3. 解压并配置:
|
||||
|
||||
```bash
|
||||
tar -xzf OpenJDK17U-jre_x64_linux_*.tar.gz -C /opt/
|
||||
sudo ln -sf /opt/jdk-17*/bin/java /usr/local/bin/java
|
||||
```
|
||||
|
||||
### 验证安装
|
||||
|
||||
```bash
|
||||
java -version
|
||||
```
|
||||
|
||||
## 4. 配置 aide PATH
|
||||
|
||||
将 aide-program 添加到 PATH:
|
||||
|
||||
### Bash 用户
|
||||
|
||||
```bash
|
||||
echo 'export PATH="$PATH:/path/to/aide-program/bin"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### Zsh 用户
|
||||
|
||||
```bash
|
||||
echo 'export PATH="$PATH:/path/to/aide-program/bin"' >> ~/.zshrc
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
### Fish 用户
|
||||
|
||||
```fish
|
||||
set -Ua fish_user_paths /path/to/aide-program/bin
|
||||
```
|
||||
|
||||
## 5. 验证安装
|
||||
|
||||
```bash
|
||||
aide env ensure --runtime
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: uv 安装后命令找不到?
|
||||
A: 运行 `source ~/.bashrc` 或重新打开终端。
|
||||
|
||||
### Q: Python 版本冲突?
|
||||
A: uv 管理的 Python 独立于系统 Python,不会冲突。
|
||||
|
||||
### Q: sudo 权限问题?
|
||||
A: Java 安装需要 root 权限,或使用 Adoptium tarball 安装到用户目录。
|
||||
```
|
||||
|
||||
#### 6.2 生成 Shell 安装脚本
|
||||
|
||||
创建文件 `aide-install.sh`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
#
|
||||
# Aide 环境自动安装脚本 (Linux)
|
||||
#
|
||||
# 此脚本用于安装 aide 工具所需的环境依赖:
|
||||
# - uv (Python 包管理器)
|
||||
# - Python (通过 uv 安装)
|
||||
# - Java JRE (用于 PlantUML)
|
||||
#
|
||||
# 用法:
|
||||
# chmod +x aide-install.sh
|
||||
# ./aide-install.sh [--aide-path /path/to/aide-program]
|
||||
#
|
||||
# 选项:
|
||||
# --aide-path PATH 指定 aide-program 目录路径
|
||||
# --skip-uv 跳过 uv 安装
|
||||
# --skip-python 跳过 Python 安装
|
||||
# --skip-java 跳过 Java 安装
|
||||
# -h, --help 显示帮助信息
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 输出函数
|
||||
success() { echo -e "${GREEN}✓${NC} $1"; }
|
||||
warning() { echo -e "${YELLOW}⚠${NC} $1"; }
|
||||
error() { echo -e "${RED}✗${NC} $1"; }
|
||||
info() { echo -e "${CYAN}→${NC} $1"; }
|
||||
|
||||
# 默认值
|
||||
AIDE_PATH=""
|
||||
SKIP_UV=false
|
||||
SKIP_PYTHON=false
|
||||
SKIP_JAVA=false
|
||||
|
||||
# 解析参数
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--aide-path)
|
||||
AIDE_PATH="$2"
|
||||
shift 2
|
||||
;;
|
||||
--skip-uv)
|
||||
SKIP_UV=true
|
||||
shift
|
||||
;;
|
||||
--skip-python)
|
||||
SKIP_PYTHON=true
|
||||
shift
|
||||
;;
|
||||
--skip-java)
|
||||
SKIP_JAVA=true
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
echo "用法: $0 [选项]"
|
||||
echo ""
|
||||
echo "选项:"
|
||||
echo " --aide-path PATH 指定 aide-program 目录路径"
|
||||
echo " --skip-uv 跳过 uv 安装"
|
||||
echo " --skip-python 跳过 Python 安装"
|
||||
echo " --skip-java 跳过 Java 安装"
|
||||
echo " -h, --help 显示帮助信息"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
error "未知选项: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 检测命令是否可用
|
||||
command_exists() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# 检测发行版
|
||||
detect_distro() {
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
echo "$ID"
|
||||
elif command_exists lsb_release; then
|
||||
lsb_release -is | tr '[:upper:]' '[:lower:]'
|
||||
else
|
||||
echo "unknown"
|
||||
fi
|
||||
}
|
||||
|
||||
# 获取包管理器
|
||||
get_package_manager() {
|
||||
local distro=$(detect_distro)
|
||||
case $distro in
|
||||
ubuntu|debian|linuxmint|pop)
|
||||
echo "apt"
|
||||
;;
|
||||
fedora|rhel|centos|rocky|almalinux)
|
||||
if command_exists dnf; then
|
||||
echo "dnf"
|
||||
else
|
||||
echo "yum"
|
||||
fi
|
||||
;;
|
||||
arch|manjaro|endeavouros)
|
||||
echo "pacman"
|
||||
;;
|
||||
opensuse*)
|
||||
echo "zypper"
|
||||
;;
|
||||
*)
|
||||
echo "unknown"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
echo "========================================"
|
||||
echo " Aide 环境安装脚本 (Linux) "
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
DISTRO=$(detect_distro)
|
||||
PKG_MANAGER=$(get_package_manager)
|
||||
info "检测到发行版: $DISTRO"
|
||||
info "包管理器: $PKG_MANAGER"
|
||||
echo ""
|
||||
|
||||
# 1. 安装 uv
|
||||
if [ "$SKIP_UV" = false ]; then
|
||||
info "检测 uv..."
|
||||
if command_exists uv; then
|
||||
UV_VERSION=$(uv --version 2>&1)
|
||||
success "uv 已安装: $UV_VERSION"
|
||||
else
|
||||
info "安装 uv..."
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
|
||||
# 加载新的 PATH
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
if command_exists uv; then
|
||||
success "uv 安装成功"
|
||||
else
|
||||
warning "uv 安装后需要重启终端"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# 2. 安装 Python
|
||||
if [ "$SKIP_PYTHON" = false ]; then
|
||||
info "检测 Python..."
|
||||
if command_exists uv; then
|
||||
PYTHON_LIST=$(uv python list 2>&1 || true)
|
||||
if echo "$PYTHON_LIST" | grep -q "3\."; then
|
||||
success "Python 已通过 uv 安装"
|
||||
else
|
||||
info "通过 uv 安装 Python 3.11..."
|
||||
uv python install 3.11
|
||||
success "Python 3.11 安装成功"
|
||||
fi
|
||||
else
|
||||
warning "uv 不可用,无法安装 Python"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 3. 安装 Java
|
||||
if [ "$SKIP_JAVA" = false ]; then
|
||||
info "检测 Java..."
|
||||
if command_exists java; then
|
||||
JAVA_VERSION=$(java -version 2>&1 | head -n 1)
|
||||
success "Java 已安装: $JAVA_VERSION"
|
||||
else
|
||||
info "安装 Java JRE..."
|
||||
|
||||
case $PKG_MANAGER in
|
||||
apt)
|
||||
sudo apt update
|
||||
sudo apt install -y openjdk-17-jre-headless
|
||||
;;
|
||||
dnf)
|
||||
sudo dnf install -y java-17-openjdk-headless
|
||||
;;
|
||||
yum)
|
||||
sudo yum install -y java-17-openjdk-headless
|
||||
;;
|
||||
pacman)
|
||||
sudo pacman -S --noconfirm jre17-openjdk-headless
|
||||
;;
|
||||
zypper)
|
||||
sudo zypper install -y java-17-openjdk-headless
|
||||
;;
|
||||
*)
|
||||
warning "未检测到支持的包管理器,请手动安装 Java JRE"
|
||||
info "下载地址: https://adoptium.net/temurin/releases/?os=linux&arch=x64&package=jre"
|
||||
;;
|
||||
esac
|
||||
|
||||
if command_exists java; then
|
||||
success "Java 安装成功"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# 4. 配置 aide PATH
|
||||
if [ -n "$AIDE_PATH" ]; then
|
||||
BIN_PATH="$AIDE_PATH/bin"
|
||||
if [ -d "$BIN_PATH" ]; then
|
||||
# 检测当前 shell
|
||||
SHELL_NAME=$(basename "$SHELL")
|
||||
case $SHELL_NAME in
|
||||
bash)
|
||||
RC_FILE="$HOME/.bashrc"
|
||||
;;
|
||||
zsh)
|
||||
RC_FILE="$HOME/.zshrc"
|
||||
;;
|
||||
*)
|
||||
RC_FILE="$HOME/.profile"
|
||||
;;
|
||||
esac
|
||||
|
||||
if ! grep -q "$BIN_PATH" "$RC_FILE" 2>/dev/null; then
|
||||
info "添加 aide 到 PATH ($RC_FILE)..."
|
||||
echo "" >> "$RC_FILE"
|
||||
echo "# Aide" >> "$RC_FILE"
|
||||
echo "export PATH=\"\$PATH:$BIN_PATH\"" >> "$RC_FILE"
|
||||
export PATH="$PATH:$BIN_PATH"
|
||||
success "aide 已添加到 PATH"
|
||||
else
|
||||
success "aide 已在 PATH 中"
|
||||
fi
|
||||
else
|
||||
warning "aide-program/bin 目录不存在: $BIN_PATH"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo " 安装完成!请重启终端后使用 "
|
||||
echo "========================================"
|
||||
```
|
||||
|
||||
#### 6.3 保存文件
|
||||
|
||||
将上述两个文件保存到当前工作目录,并告知用户文件位置。
|
||||
|
||||
同时设置脚本执行权限:
|
||||
```bash
|
||||
chmod +x aide-install.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 7. aide PATH 配置
|
||||
|
||||
检测 aide-program 的位置(通常是本仓库的 `aide-program/bin` 目录)。
|
||||
|
||||
#### 7.1 检测当前 PATH
|
||||
|
||||
```bash
|
||||
echo $PATH | tr ':' '\n' | grep -i aide
|
||||
```
|
||||
|
||||
#### 7.2 如果 aide 不在 PATH 中
|
||||
|
||||
检测用户的 shell 类型:
|
||||
```bash
|
||||
echo $SHELL
|
||||
```
|
||||
|
||||
根据 shell 类型生成配置命令:
|
||||
|
||||
**Bash**:
|
||||
```bash
|
||||
echo 'export PATH="$PATH:/完整路径/aide-program/bin"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
**Zsh**:
|
||||
```bash
|
||||
echo 'export PATH="$PATH:/完整路径/aide-program/bin"' >> ~/.zshrc
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
**Fish**:
|
||||
```fish
|
||||
set -Ua fish_user_paths /完整路径/aide-program/bin
|
||||
```
|
||||
|
||||
#### 7.3 验证配置
|
||||
|
||||
```bash
|
||||
which aide
|
||||
aide --help
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 8. 最终验证
|
||||
|
||||
运行 aide 环境检测:
|
||||
|
||||
```bash
|
||||
aide env ensure --runtime
|
||||
```
|
||||
|
||||
如果验证通过,显示成功信息。
|
||||
|
||||
如果验证失败,显示问题诊断和解决建议。
|
||||
|
||||
---
|
||||
|
||||
## 完成
|
||||
|
||||
安装完成后,向用户汇报:
|
||||
|
||||
```
|
||||
环境安装完成:
|
||||
- uv: [版本]
|
||||
- Python: [版本]
|
||||
- Java: [版本]
|
||||
- aide: [PATH 状态]
|
||||
- 发行版: [检测到的发行版]
|
||||
|
||||
下一步:
|
||||
- 运行 /aide:setup 配置项目环境
|
||||
- 或直接使用 /aide:run 执行任务
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 此命令是**独立运行**的,通常在首次使用 aide 前执行一次
|
||||
- 所有安装操作都需要用户确认,不会静默修改系统
|
||||
- Java 安装可能需要 sudo 权限
|
||||
- 如果安装过程中断,可以重新运行此命令继续
|
||||
- 建议在安装完成后重启终端以确保环境变量生效
|
||||
@@ -1,535 +0,0 @@
|
||||
# Aide Windows 环境安装
|
||||
|
||||
你正在执行 Aide Windows 环境安装流程。这是一个**独立运行**的命令,用于在 Windows 系统上安装 aide 所需的全部环境依赖。
|
||||
|
||||
## 概述
|
||||
|
||||
本命令将检测并安装以下工具:
|
||||
- **uv** - Python 包管理器(用于管理 Python 和依赖)
|
||||
- **Python** - aide 运行时环境(通过 uv 安装)
|
||||
- **Java JRE** - PlantUML 运行依赖(用于生成流程图)
|
||||
|
||||
---
|
||||
|
||||
## 开始
|
||||
|
||||
### 1. 系统检测
|
||||
|
||||
首先确认当前系统是 Windows:
|
||||
|
||||
```powershell
|
||||
# 检测操作系统
|
||||
$env:OS
|
||||
```
|
||||
|
||||
如果不是 Windows 系统,请提示用户使用 `/aide:install-linux` 命令。
|
||||
|
||||
### 2. 环境检测
|
||||
|
||||
检测当前环境中各工具的可用性:
|
||||
|
||||
#### 2.1 检测 uv
|
||||
|
||||
```powershell
|
||||
uv --version
|
||||
```
|
||||
|
||||
#### 2.2 检测 Python
|
||||
|
||||
```powershell
|
||||
# 先尝试 uv 管理的 Python
|
||||
uv python list 2>$null
|
||||
|
||||
# 如果 uv 不可用,检测系统 Python
|
||||
python --version 2>$null
|
||||
python3 --version 2>$null
|
||||
```
|
||||
|
||||
#### 2.3 检测 Java
|
||||
|
||||
```powershell
|
||||
java -version 2>&1
|
||||
```
|
||||
|
||||
#### 2.4 汇总检测结果
|
||||
|
||||
根据检测结果,列出:
|
||||
- 已安装的工具及版本
|
||||
- 缺失的工具
|
||||
|
||||
如果所有工具都已安装,跳转到「aide PATH 配置」章节。
|
||||
|
||||
---
|
||||
|
||||
### 3. 安装模式选择
|
||||
|
||||
向用户询问安装模式:
|
||||
|
||||
**模式 A:自动安装**
|
||||
- 生成安装报告,用户确认后自动执行安装
|
||||
- 适合希望快速完成的用户
|
||||
|
||||
**模式 B:手动指南**
|
||||
- 生成详细的操作指南和自动化脚本
|
||||
- 用户可以自行选择执行
|
||||
- 适合需要完全控制安装过程的用户
|
||||
|
||||
使用 AskUserQuestion 工具询问用户选择。
|
||||
|
||||
---
|
||||
|
||||
### 4. 模式 A:自动安装
|
||||
|
||||
#### 4.1 生成安装报告
|
||||
|
||||
在执行任何安装操作前,必须先生成安装报告,内容包括:
|
||||
|
||||
**将要执行的操作**:
|
||||
- 列出每个需要安装的工具
|
||||
- 说明安装命令
|
||||
|
||||
**安装位置**:
|
||||
- uv: `%USERPROFILE%\.local\bin\` 或 `%USERPROFILE%\.cargo\bin\`
|
||||
- Python: 由 uv 管理,位于 `%USERPROFILE%\.local\share\uv\python\`
|
||||
- Java: 取决于安装方式(winget/scoop/手动)
|
||||
|
||||
**可能的副作用**:
|
||||
- 会修改用户 PATH 环境变量
|
||||
- 可能需要重启终端生效
|
||||
|
||||
**潜在风险**:
|
||||
- 如果已有其他 Python 安装,可能产生版本冲突
|
||||
- 需要网络连接下载安装包
|
||||
|
||||
#### 4.2 请求用户确认
|
||||
|
||||
使用 AskUserQuestion 工具,展示报告并请求用户确认。
|
||||
|
||||
如果用户不确认,取消安装并退出。
|
||||
|
||||
#### 4.3 执行安装
|
||||
|
||||
##### 安装 uv(如需要)
|
||||
|
||||
```powershell
|
||||
# 使用官方安装脚本
|
||||
irm https://astral.sh/uv/install.ps1 | iex
|
||||
```
|
||||
|
||||
安装后验证:
|
||||
```powershell
|
||||
# 刷新环境变量
|
||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","User") + ";" + [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
||||
|
||||
# 验证安装
|
||||
uv --version
|
||||
```
|
||||
|
||||
##### 安装 Python(如需要)
|
||||
|
||||
```powershell
|
||||
# 使用 uv 安装 Python 3.11
|
||||
uv python install 3.11
|
||||
|
||||
# 验证安装
|
||||
uv python list
|
||||
```
|
||||
|
||||
##### 安装 Java JRE(如需要)
|
||||
|
||||
检测可用的包管理器:
|
||||
|
||||
```powershell
|
||||
# 检测 winget
|
||||
winget --version 2>$null
|
||||
|
||||
# 检测 scoop
|
||||
scoop --version 2>$null
|
||||
|
||||
# 检测 chocolatey
|
||||
choco --version 2>$null
|
||||
```
|
||||
|
||||
根据可用的包管理器选择安装方式:
|
||||
|
||||
**使用 winget(推荐)**:
|
||||
```powershell
|
||||
winget install EclipseAdoptium.Temurin.17.JRE
|
||||
```
|
||||
|
||||
**使用 scoop**:
|
||||
```powershell
|
||||
scoop bucket add java
|
||||
scoop install temurin17-jre
|
||||
```
|
||||
|
||||
**使用 chocolatey**:
|
||||
```powershell
|
||||
choco install temurin17jre -y
|
||||
```
|
||||
|
||||
**无包管理器**:
|
||||
提供 Adoptium Temurin JRE 下载链接:
|
||||
- https://adoptium.net/temurin/releases/?os=windows&arch=x64&package=jre
|
||||
|
||||
指导用户下载并手动安装 MSI 包。
|
||||
|
||||
安装后验证:
|
||||
```powershell
|
||||
java -version
|
||||
```
|
||||
|
||||
#### 4.4 汇报安装结果
|
||||
|
||||
列出每个工具的安装状态和版本。
|
||||
|
||||
---
|
||||
|
||||
### 5. 模式 B:手动指南
|
||||
|
||||
#### 5.1 生成 Markdown 操作指南
|
||||
|
||||
创建文件 `aide-install-guide.md`,内容包括:
|
||||
|
||||
```markdown
|
||||
# Aide 环境安装指南 (Windows)
|
||||
|
||||
## 1. 安装 uv
|
||||
|
||||
uv 是 Astral 开发的高性能 Python 包管理器。
|
||||
|
||||
### 方法一:PowerShell 脚本(推荐)
|
||||
|
||||
```powershell
|
||||
irm https://astral.sh/uv/install.ps1 | iex
|
||||
```
|
||||
|
||||
### 方法二:手动下载
|
||||
|
||||
1. 访问 https://github.com/astral-sh/uv/releases
|
||||
2. 下载 `uv-x86_64-pc-windows-msvc.zip`
|
||||
3. 解压到 `%USERPROFILE%\.local\bin\`
|
||||
4. 将该目录添加到 PATH
|
||||
|
||||
### 验证安装
|
||||
|
||||
```powershell
|
||||
uv --version
|
||||
```
|
||||
|
||||
## 2. 安装 Python
|
||||
|
||||
使用 uv 安装受管理的 Python:
|
||||
|
||||
```powershell
|
||||
uv python install 3.11
|
||||
```
|
||||
|
||||
### 验证安装
|
||||
|
||||
```powershell
|
||||
uv python list
|
||||
```
|
||||
|
||||
## 3. 安装 Java JRE
|
||||
|
||||
Java 用于运行 PlantUML 生成流程图。
|
||||
|
||||
### 方法一:使用 winget(推荐)
|
||||
|
||||
```powershell
|
||||
winget install EclipseAdoptium.Temurin.17.JRE
|
||||
```
|
||||
|
||||
### 方法二:使用 scoop
|
||||
|
||||
```powershell
|
||||
scoop bucket add java
|
||||
scoop install temurin17-jre
|
||||
```
|
||||
|
||||
### 方法三:手动下载
|
||||
|
||||
1. 访问 https://adoptium.net/temurin/releases/?os=windows&arch=x64&package=jre
|
||||
2. 下载 MSI 安装包
|
||||
3. 运行安装程序
|
||||
|
||||
### 验证安装
|
||||
|
||||
```powershell
|
||||
java -version
|
||||
```
|
||||
|
||||
## 4. 配置 aide PATH
|
||||
|
||||
将 aide-program 添加到系统 PATH:
|
||||
|
||||
```powershell
|
||||
# 获取 aide-program 路径(根据实际位置调整)
|
||||
$aidePath = "C:\path\to\aide-program\bin"
|
||||
|
||||
# 添加到用户 PATH
|
||||
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
if ($currentPath -notlike "*$aidePath*") {
|
||||
[Environment]::SetEnvironmentVariable("Path", "$currentPath;$aidePath", "User")
|
||||
}
|
||||
```
|
||||
|
||||
## 5. 验证安装
|
||||
|
||||
```powershell
|
||||
# 重启终端后运行
|
||||
aide env ensure --runtime
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: uv 安装后命令找不到?
|
||||
A: 重启终端或手动刷新环境变量。
|
||||
|
||||
### Q: Python 版本冲突?
|
||||
A: uv 管理的 Python 独立于系统 Python,不会冲突。
|
||||
|
||||
### Q: Java 安装后仍然找不到?
|
||||
A: 检查 JAVA_HOME 和 PATH 是否正确配置。
|
||||
```
|
||||
|
||||
#### 5.2 生成 PowerShell 安装脚本
|
||||
|
||||
创建文件 `aide-install.ps1`:
|
||||
|
||||
```powershell
|
||||
#Requires -Version 5.1
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Aide 环境自动安装脚本 (Windows)
|
||||
|
||||
.DESCRIPTION
|
||||
此脚本用于安装 aide 工具所需的环境依赖:
|
||||
- uv (Python 包管理器)
|
||||
- Python (通过 uv 安装)
|
||||
- Java JRE (用于 PlantUML)
|
||||
|
||||
.PARAMETER AideProgramPath
|
||||
aide-program 目录的路径
|
||||
|
||||
.PARAMETER SkipUv
|
||||
跳过 uv 安装
|
||||
|
||||
.PARAMETER SkipPython
|
||||
跳过 Python 安装
|
||||
|
||||
.PARAMETER SkipJava
|
||||
跳过 Java 安装
|
||||
|
||||
.EXAMPLE
|
||||
.\aide-install.ps1 -AideProgramPath "C:\projects\aide-program"
|
||||
|
||||
.NOTES
|
||||
作者: aide
|
||||
版本: 1.0
|
||||
#>
|
||||
|
||||
param(
|
||||
[string]$AideProgramPath,
|
||||
[switch]$SkipUv,
|
||||
[switch]$SkipPython,
|
||||
[switch]$SkipJava
|
||||
)
|
||||
|
||||
# 颜色输出函数
|
||||
function Write-Success { Write-Host "✓ $args" -ForegroundColor Green }
|
||||
function Write-Warning { Write-Host "⚠ $args" -ForegroundColor Yellow }
|
||||
function Write-Error { Write-Host "✗ $args" -ForegroundColor Red }
|
||||
function Write-Info { Write-Host "→ $args" -ForegroundColor Cyan }
|
||||
|
||||
# 检测工具是否可用
|
||||
function Test-Command {
|
||||
param([string]$Command)
|
||||
$null -ne (Get-Command $Command -ErrorAction SilentlyContinue)
|
||||
}
|
||||
|
||||
# 刷新环境变量
|
||||
function Update-Path {
|
||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","User") + ";" + [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
||||
}
|
||||
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " Aide 环境安装脚本 (Windows) " -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# 1. 安装 uv
|
||||
if (-not $SkipUv) {
|
||||
Write-Info "检测 uv..."
|
||||
if (Test-Command "uv") {
|
||||
$uvVersion = uv --version 2>&1
|
||||
Write-Success "uv 已安装: $uvVersion"
|
||||
} else {
|
||||
Write-Info "安装 uv..."
|
||||
try {
|
||||
Invoke-RestMethod https://astral.sh/uv/install.ps1 | Invoke-Expression
|
||||
Update-Path
|
||||
if (Test-Command "uv") {
|
||||
Write-Success "uv 安装成功"
|
||||
} else {
|
||||
Write-Error "uv 安装后仍无法找到,请重启终端后重试"
|
||||
}
|
||||
} catch {
|
||||
Write-Error "uv 安装失败: $_"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 2. 安装 Python
|
||||
if (-not $SkipPython) {
|
||||
Write-Info "检测 Python..."
|
||||
if (Test-Command "uv") {
|
||||
$pythonList = uv python list 2>&1
|
||||
if ($pythonList -match "3\.\d+") {
|
||||
Write-Success "Python 已通过 uv 安装"
|
||||
} else {
|
||||
Write-Info "通过 uv 安装 Python 3.11..."
|
||||
uv python install 3.11
|
||||
Write-Success "Python 3.11 安装成功"
|
||||
}
|
||||
} else {
|
||||
Write-Warning "uv 不可用,无法安装 Python"
|
||||
}
|
||||
}
|
||||
|
||||
# 3. 安装 Java
|
||||
if (-not $SkipJava) {
|
||||
Write-Info "检测 Java..."
|
||||
if (Test-Command "java") {
|
||||
$javaVersion = java -version 2>&1 | Select-Object -First 1
|
||||
Write-Success "Java 已安装: $javaVersion"
|
||||
} else {
|
||||
Write-Info "安装 Java JRE..."
|
||||
|
||||
if (Test-Command "winget") {
|
||||
Write-Info "使用 winget 安装..."
|
||||
winget install EclipseAdoptium.Temurin.17.JRE --silent
|
||||
Update-Path
|
||||
} elseif (Test-Command "scoop") {
|
||||
Write-Info "使用 scoop 安装..."
|
||||
scoop bucket add java
|
||||
scoop install temurin17-jre
|
||||
} elseif (Test-Command "choco") {
|
||||
Write-Info "使用 chocolatey 安装..."
|
||||
choco install temurin17jre -y
|
||||
Update-Path
|
||||
} else {
|
||||
Write-Warning "未检测到包管理器,请手动安装 Java JRE"
|
||||
Write-Info "下载地址: https://adoptium.net/temurin/releases/?os=windows&arch=x64&package=jre"
|
||||
}
|
||||
|
||||
if (Test-Command "java") {
|
||||
Write-Success "Java 安装成功"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# 4. 配置 aide PATH
|
||||
if ($AideProgramPath) {
|
||||
$binPath = Join-Path $AideProgramPath "bin"
|
||||
if (Test-Path $binPath) {
|
||||
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
if ($currentPath -notlike "*$binPath*") {
|
||||
Write-Info "添加 aide 到 PATH..."
|
||||
[Environment]::SetEnvironmentVariable("Path", "$currentPath;$binPath", "User")
|
||||
Update-Path
|
||||
Write-Success "aide 已添加到 PATH"
|
||||
} else {
|
||||
Write-Success "aide 已在 PATH 中"
|
||||
}
|
||||
} else {
|
||||
Write-Warning "aide-program/bin 目录不存在: $binPath"
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " 安装完成!请重启终端后使用 " -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
```
|
||||
|
||||
#### 5.3 保存文件
|
||||
|
||||
将上述两个文件保存到当前工作目录,并告知用户文件位置。
|
||||
|
||||
---
|
||||
|
||||
### 6. aide PATH 配置
|
||||
|
||||
检测 aide-program 的位置(通常是本仓库的 `aide-program/bin` 目录)。
|
||||
|
||||
#### 6.1 检测当前 PATH
|
||||
|
||||
```powershell
|
||||
$env:Path -split ";" | Where-Object { $_ -like "*aide*" }
|
||||
```
|
||||
|
||||
#### 6.2 如果 aide 不在 PATH 中
|
||||
|
||||
生成配置命令:
|
||||
|
||||
```powershell
|
||||
# 获取 aide-program 完整路径
|
||||
$aidePath = "完整路径\aide-program\bin"
|
||||
|
||||
# 方法一:临时添加(当前会话)
|
||||
$env:Path += ";$aidePath"
|
||||
|
||||
# 方法二:永久添加(用户级别)
|
||||
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
[Environment]::SetEnvironmentVariable("Path", "$currentPath;$aidePath", "User")
|
||||
```
|
||||
|
||||
#### 6.3 验证配置
|
||||
|
||||
```powershell
|
||||
# 重启终端后
|
||||
aide --help
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 7. 最终验证
|
||||
|
||||
运行 aide 环境检测:
|
||||
|
||||
```powershell
|
||||
aide env ensure --runtime
|
||||
```
|
||||
|
||||
如果验证通过,显示成功信息。
|
||||
|
||||
如果验证失败,显示问题诊断和解决建议。
|
||||
|
||||
---
|
||||
|
||||
## 完成
|
||||
|
||||
安装完成后,向用户汇报:
|
||||
|
||||
```
|
||||
环境安装完成:
|
||||
- uv: [版本]
|
||||
- Python: [版本]
|
||||
- Java: [版本]
|
||||
- aide: [PATH 状态]
|
||||
|
||||
下一步:
|
||||
- 运行 /aide:setup 配置项目环境
|
||||
- 或直接使用 /aide:run 执行任务
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 此命令是**独立运行**的,通常在首次使用 aide 前执行一次
|
||||
- 所有安装操作都需要用户确认,不会静默修改系统
|
||||
- 如果安装过程中断,可以重新运行此命令继续
|
||||
- 建议在安装完成后重启终端以确保环境变量生效
|
||||
@@ -274,8 +274,23 @@ aide config get flow.diagram_path
|
||||
|
||||
##### 流程图示例结构
|
||||
|
||||
**必须在 PlantUML 文件头部添加渲染配置**:
|
||||
|
||||
```bash
|
||||
# 获取配置值
|
||||
aide config get plantuml.font_name # 默认 "Arial"
|
||||
aide config get plantuml.dpi # 默认 300
|
||||
aide config get plantuml.scale # 默认 0.5
|
||||
```
|
||||
|
||||
将获取的值添加到 PlantUML 文件头部:
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
skinparam defaultFontName "Arial"
|
||||
skinparam dpi 300
|
||||
scale 0.5
|
||||
|
||||
' 主程序流程图
|
||||
start
|
||||
:初始化配置;
|
||||
@@ -395,6 +410,12 @@ aide flow next-part finish "用户确认通过,进入收尾"
|
||||
```
|
||||
|
||||
- 清理临时文件
|
||||
- 清理任务计划文件(如有):
|
||||
```bash
|
||||
# 获取任务计划目录
|
||||
aide config get task.plans_path
|
||||
# 删除目录下的所有文件(guide.md, spec-*.md 等)
|
||||
```
|
||||
- 检查遗漏的 TODO
|
||||
- 向用户汇报完成情况
|
||||
|
||||
|
||||
Reference in New Issue
Block a user