Files
agent-aide/aide-marketplace/aide-plugin/commands/install-linux.md
sayurinana(vm) ba70fafa15 [aide] finish: 任务完成
新增环境安装 Commands:
- /aide:install-win - Windows 环境安装命令
- /aide:install-linux - Linux 环境安装命令

新增离线安装程序:
- aide-program/offline-installer/windows/
- aide-program/offline-installer/linux/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 05:22:38 +08:00

692 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 权限
- 如果安装过程中断,可以重新运行此命令继续
- 建议在安装完成后重启终端以确保环境变量生效