ai-install 0.1.1
智能软件包安装工具，适应不同操作系统和环境
Requires Python: >=3.6
Keywords: package manager, installation, automation, os detection

# ai-install

`ai-install` 是一个智能软件包安装工具，能够根据操作系统类型（Debian/Ubuntu、RHEL/CentOS、macOS等）和运行环境（主机、容器或Kubernetes）自动选择合适的包管理器和安装方式。

## 功能特点

- 自动检测操作系统类型（Debian/Ubuntu、RHEL/CentOS、Alpine、Arch、macOS、Windows）
- 自动检测运行环境（主机系统、容器或Kubernetes）
- 根据环境选择恰当的包管理器（apt-get、yum、apk、pacman、brew、choco）
- 智能管理sudo权限（容器环境中自动移除sudo）
- 缓存系统信息以加快后续运行速度
- 支持用户自定义配置，包括添加/删除包别名和包管理器
- 支持管理和安装 bash 别名到 ~/.bashrc 文件
- 支持传递额外选项到底层包管理器

## 安装

### 使用 pip 安装（推荐）

```bash
pip install ai-install
```

### 手动安装

```bash
# 克隆仓库
git clone https://github.com/yourusername/ai-install.git
cd ai-install

# 安装依赖
pip install -r requirements.txt

# 安装到系统路径
chmod +x ai_install.py
./install.sh
```

## 使用方法

### 基本使用

```bash
# 安装单个包
ai-install package_name

# 安装多个包
ai-install package1 package2 package3

# 添加选项
ai-install -o "--no-install-recommends" package_name
```

### 高级选项

```bash
# 仅检测系统和环境
ai-install --detect

# 强制重新检测系统（不使用缓存）
ai-install --force-detect

# 显示帮助信息
ai-install --help

# 显示版本信息
ai-install --version
```

### 配置管理

```bash
# 初始化配置文件
ai-install --init-config

# 列出当前配置中的包别名
ai-install --list-aliases

# 列出当前配置中的包管理器
ai-install --list-package-managers
```

### Bash 别名管理

```bash
# 列出当前配置中的bash别名
ai-install --list-bash-aliases

# 安装bash别名到 ~/.bashrc 文件
ai-install --install-bash-aliases

# 指定 bashrc 文件路径
ai-install --install-bash-aliases --bashrc /path/to/your/bashrc

# 强制安装别名（即使已存在）
ai-install --install-bash-aliases --force-install-aliases
```

### 自定义配置

```bash
# 添加包别名
ai-install --edit-config add-alias --edit-key "nodejs:debian" --edit-value "nodejs"

# 移除包别名
ai-install --edit-config remove-alias --edit-key "nodejs:debian"

# 添加/修改包管理器
ai-install --edit-config add-pm --edit-key "suse" --edit-value '{"command": "zypper", "install_args": ["install", "-y"], "use_sudo": true}'

# 移除包管理器
ai-install --edit-config remove-pm --edit-key "suse"

# 添加bash别名
ai-install --edit-config add-bash-alias --edit-key "ll" --edit-value "ls -la"

# 移除bash别名
ai-install --edit-config remove-bash-alias --edit-key "ll"
```

## 支持的操作系统

- **Debian/Ubuntu**: 使用 apt-get
- **RHEL/CentOS/Fedora**: 使用 yum/dnf
- **Alpine**: 使用 apk
- **Arch Linux**: 使用 pacman
- **macOS**: 使用 Homebrew
- **Windows**: 使用 Chocolatey (需要预先安装)

## 支持的环境

- **主机系统**: 正常使用包管理器（使用sudo获取权限）
- **容器环境**: 自动移除sudo命令
- **Kubernetes**: 自动移除sudo命令

## 配置文件

配置文件位于以下位置（按优先级排序）：

1. 当前目录下的 `ai_install_config.json`
2. 用户配置目录 `~/.config/ai-install/config.json`
3. 系统配置目录 `/etc/ai-install/config.json`

配置文件示例:

```json
{
  "package_managers": {
    "debian": {
      "command": "apt-get",
      "install_args": ["install", "-y"],
      "use_sudo": true
    },
    "rhel": {
      "command": "yum",
      "install_args": ["install", "-y"],
      "use_sudo": true
    }
  },
  "package_aliases": {
    "python": {
      "debian": "python3",
      "rhel": "python3"
    }
  },
  "bash_aliases": {
    "ll": "ls -la",
    "sai": "sudo apt install",
    "sau": "sudo apt update",
    "update": "sudo apt update"
  }
}
```

## Bash 别名

ai-install 可以管理 bash 别名并将其安装到 ~/.bashrc 文件中。这些别名只会在文件不存在相同别名时才会被添加，避免重复。

默认的别名包括：

- `sai`: sudo apt install
- `sau`: sudo apt update
- `update`: sudo apt update
- `ports`: sudo netstat -tulanp
- `meminfo`: free -m -l -t
- `psmem`: ps auxf | sort -nr -k 4
- `pscpu`: ps auxf | sort -nr -k 3

## 作为库使用

你也可以在自己的Python程序中导入并使用ai-install：

```python
from ai_install import detect_os, detect_environment, install_package

# 检测系统和环境
os_type = detect_os()
env_type = detect_environment()

# 安装包
install_package("python", os_type, env_type)
```

## 许可

MIT