是,大体仍按最先的流程安装,但把其中的 Python / uv / Node / Go / Rust 安装部分改成 mise 管理。
也就是:
系统层照旧
开发工具层改用 mise
Python 项目依赖仍用 uv
长期 AI 服务仍用 Docker你现在应该采用的最终流程
1. 重装 Ubuntu 26.04
照之前流程做:
制作启动盘
BIOS 设置
手动分区
安装 Ubuntu Desktop
首次启动更新系统分区仍然建议:
| 挂载点 | 大小 | 文件系统 |
|---|---|---|
/boot/efi | 1GB | FAT32 |
/ | 150GB | ext4 |
| swap | 64GB | swap |
/home | 120GB | ext4 |
/srv/ai | 剩余全部 | ext4 |
这个不用变。
2. 宿主机基础包仍然要装
安装完系统后:
sudo apt update
sudo apt full-upgrade -y
sudo reboot然后装基础工具:
sudo apt install -y \
build-essential git curl wget unzip jq \
ca-certificates gnupg lsb-release \
htop btop nvtop tmux tree ripgrep fd-find \
python3 python3-venv python3-pip pipx direnv \
openssh-client rsync这里的 python3、python3-venv、python3-pip 可以保留。
原因:
系统工具可能需要 Python
pipx / direnv / 一些脚本可能需要 Python
mise 自己不等于系统 Python但注意:不要用宿主机 Python 全局装项目依赖。
3. NVIDIA 驱动照旧
ubuntu-drivers devices
sudo ubuntu-drivers install
sudo reboot检查:
nvidia-smi看到 RTX 5060 就继续。
4. 创建 ai 用户照旧
sudo adduser ai
sudo usermod -aG video,render ai
sudo chown -R ai:ai /srv/ai创建目录:
sudo -u ai mkdir -p /srv/ai/{projects,models,datasets,compose,secrets}
sudo -u ai mkdir -p /srv/ai/cache/{huggingface,torch,uv,pip,npm,ollama}5. Docker + NVIDIA Container Toolkit 照旧
Docker 仍然按之前流程安装。
重点仍然是:
sudo mkdir -p /srv/docker配置:
sudo tee /etc/docker/daemon.json > /dev/null <<'JSON'
{
"data-root": "/srv/docker",
"log-driver": "local",
"log-opts": {
"max-size": "20m",
"max-file": "5"
},
"features": {
"buildkit": true
}
}
JSON然后:
sudo systemctl restart docker
sudo usermod -aG docker ai再装 NVIDIA Container Toolkit:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker测试:
docker run --rm --gpus all ubuntu nvidia-smi6. 这里开始改:用 mise 管开发工具
切换到 ai 用户:
su - ai安装 mise:
curl https://mise.run | sh启用:
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc检查:
mise doctor7. 用 mise 安装开发工具
在 ai 用户下:
mise use --global python@3.12
mise use --global node@22
mise use --global uv@latest
mise use --global go@latest
mise use --global rust@latest检查:
python --version
node --version
uv --version
go version
rustc --version这里的区别是:
以前:pipx install uv
现在:mise use --global uv@latest也就是说,uv 交给 mise 管。
8. 配置 ai 用户环境变量
在 ai 用户下:
cat >> ~/.bashrc <<'EOF'
# AI workstation paths
export HF_HOME=/srv/ai/cache/huggingface
export TRANSFORMERS_CACHE=/srv/ai/cache/huggingface
export TORCH_HOME=/srv/ai/cache/torch
export UV_CACHE_DIR=/srv/ai/cache/uv
export PIP_CACHE_DIR=/srv/ai/cache/pip
export NPM_CONFIG_CACHE=/srv/ai/cache/npm
# Ollama
export OLLAMA_HOST=127.0.0.1:11434
EOF
source ~/.bashrc9. Python 项目仍然用 uv
创建项目:
cd /srv/ai/projects
mkdir torch-test
cd torch-test初始化:
uv init .
uv venv --python 3.12安装 PyTorch:
uv add torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128测试:
uv run python - <<'PY'
import torch
print(torch.__version__)
print(torch.cuda.is_available())
if torch.cuda.is_available():
print(torch.cuda.get_device_name(0))
PY10. 每个项目加一个 mise.toml
例如:
cd /srv/ai/projects/torch-test
nano mise.toml内容:
[tools]
python = "3.12"
uv = "latest"
node = "22"
[env]
HF_HOME = "/srv/ai/cache/huggingface"
TRANSFORMERS_CACHE = "/srv/ai/cache/huggingface"
TORCH_HOME = "/srv/ai/cache/torch"
UV_CACHE_DIR = "/srv/ai/cache/uv"
PIP_CACHE_DIR = "/srv/ai/cache/pip"
[tasks.install]
run = "uv sync"
[tasks.test]
run = "uv run pytest"
[tasks.run]
run = "uv run python main.py"进入项目后:
mise trust
mise install
mise run install11. Ollama / Qdrant / Postgres 仍然用 Docker
这部分不变。
cd /srv/ai/compose
nano compose.ymlservices:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
gpus: all
ports:
- "11434:11434"
volumes:
- /srv/ai/models/ollama:/root/.ollama
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
ports:
- "6333:6333"
volumes:
- /srv/ai/datasets/qdrant:/qdrant/storage
postgres:
image: pgvector/pgvector:pg17
container_name: pgvector
restart: unless-stopped
environment:
POSTGRES_USER: ai
POSTGRES_PASSWORD: change_this_password
POSTGRES_DB: ai
ports:
- "5432:5432"
volumes:
- /srv/ai/datasets/postgres:/var/lib/postgresql/data启动:
docker compose up -d最终修正版安装顺序
你现在按这个版本执行:
1. 重装 Ubuntu 26.04
2. 手动分区:
/boot/efi 1GB
/ 150GB
swap 64GB
/home 120GB
/srv/ai 剩余全部
3. 首次系统更新
4. 安装基础包,包括 python3、pipx、direnv
5. 安装 NVIDIA 驱动
6. 创建 ai 用户
7. 安装 Docker Engine
8. Docker data-root 指到 /srv/docker
9. 安装 NVIDIA Container Toolkit
10. 测试 docker --gpus all
11. 切到 ai 用户
12. 安装 mise
13. mise 安装 python/node/uv/go/rust
14. Python 项目用 uv
15. AI 服务用 Docker Compose
16. Agent 只挂载单项目目录简单判断
之前流程:正确
现在调整:把开发语言和 uv 交给 mise 管
不变部分:分区、驱动、Docker、NVIDIA Container Toolkit、/srv/ai 结构所以你可以继续按最先的流程走,只是在安装 uv、Python 项目环境、Node/Go/Rust 那一段改成 mise 方案。