Add modular install and uninstall scripts

This commit is contained in:
爱喝水的木子
2026-03-19 14:32:48 +08:00
parent c04724a533
commit 6fa49aabee
9 changed files with 1274 additions and 412 deletions

114
README.md Normal file
View File

@@ -0,0 +1,114 @@
# 环境安装与卸载脚本
这个仓库提供了一组独立的 Shell 脚本,用于安装和卸载常见开发环境工具,适合在 Linux 和 macOS 上快速初始化开发机器。
## 文件说明
- `install.sh`:总安装入口,支持交互式选择或命令行按需安装。
- `install-docker.sh`:单独安装 Docker。
- `install-nvm.sh`:单独安装 NVM并自动安装 Node.js LTS。
- `install-mambaconda.sh`:单独安装 Mambaconda默认安装到 `$HOME/mambaconda`
- `uninstall.sh`:总卸载入口,支持交互式选择或命令行按需卸载。
- `uninstall-docker.sh`:单独卸载 Docker默认保留 Docker 数据。
- `uninstall-nvm.sh`:单独卸载 NVM并清理脚本追加的 Shell 初始化配置。
- `uninstall-mambaconda.sh`:单独卸载 Mambaconda并清理脚本追加的 Shell 初始化配置。
## 支持平台
- Linux
- macOS
## 安装用法
总入口安装:
```bash
bash install.sh
```
常见用法:
```bash
bash install.sh all
bash install.sh docker
bash install.sh nvm mambaconda
```
也可以直接执行单独脚本:
```bash
bash install-docker.sh
bash install-nvm.sh
bash install-mambaconda.sh
```
`install.sh` 支持以下模式:
- 不带参数:交互式选择安装项
- `all`:安装全部工具
- `docker` / `nvm` / `mambaconda`:安装指定工具
- 多个参数组合:安装多个指定工具
## 卸载用法
总入口卸载:
```bash
bash uninstall.sh
```
常见用法:
```bash
bash uninstall.sh all
bash uninstall.sh docker
bash uninstall.sh nvm mambaconda
```
也可以直接执行单独脚本:
```bash
bash uninstall-docker.sh
bash uninstall-nvm.sh
bash uninstall-mambaconda.sh
```
`uninstall.sh` 支持以下模式:
- 不带参数:交互式选择卸载项
- `all`:卸载全部工具
- `docker` / `nvm` / `mambaconda`:卸载指定工具
- 多个参数组合:卸载多个指定工具
## 默认行为说明
- `install-nvm.sh` 会配置 Node.js 国内镜像和 npm 国内源。
- `install-mambaconda.sh` 会写入 `~/.condarc`,并使用国内镜像源。
- `install-mambaconda.sh` 默认会安装 Python 3.10。
- `uninstall-docker.sh` 默认不会删除 Docker 数据目录。
如果需要在卸载 Docker 时同时删除数据,可使用:
```bash
REMOVE_DOCKER_DATA=1 bash uninstall-docker.sh
```
## 安装后验证
```bash
docker --version
docker compose version
nvm --version && node --version && npm --version
conda --version && python --version
```
## 输出风格
现在所有入口脚本和子脚本都会使用统一的输出格式:
- `INFO`:普通步骤提示
- `WARN`:非阻断警告
- `ERROR`:错误并退出
- `DONE`:当前脚本执行完成
同时会显示阶段标题,便于在安装或卸载过程中快速定位当前步骤。