完整脚本:
1.0
#!/bin/bash
set -eecho "=== 开始安装 AI 开发环境(无人交互版) ==="
if [ "$EUID" -eq 0 ]; thenecho "⚠️ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
if ! command -v conda &> /dev/null; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p $HOME/miniconda3rm ~/miniconda.shexport PATH="$HOME/miniconda3/bin:$PATH"eval "$($HOME/miniconda3/bin/conda shell.bash hook)"
elseecho "已检测到 Miniconda,跳过安装"eval "$(conda shell.bash hook)"
fi
if conda env list | grep -q "^zhy"; thenecho "--- 删除已有 Conda 环境 'zhy' ---"conda env remove -n zhy -y
fi
echo "--- 创建 Conda 环境 'zhy' ---"
conda create -y -n zhy python=3.11
echo "--- 激活 Conda 环境 'zhy' ---"
conda activate zhy
echo "--- 升级 pip ---"
pip install --upgrade pip
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
pip install python-docx pillowecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate zhy"
- #! /bin/bash
告诉linux系统使用/bin/bash这个程序执行,如果写的是#! /bin/sh 那系统会用sh执行 - set -e
脚本中命令以执行失败退出时
2.0
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
echo "--- 接受 Anaconda TOS ---"
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main || true
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r || true
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "--- 删除已有 Conda 环境 '$ENV_NAME' ---"conda env remove -n "$ENV_NAME"
fi
echo "--- 创建 Conda 环境 '$ENV_NAME' ---"
conda create -n "$ENV_NAME" python=3.11 -y
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
pip install python-docx pillowecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
3.0
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
echo "--- 接受 Anaconda TOS ---"
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main || true
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r || true
function test_conda_network() {python - <<END
import urllib.request
try:urllib.request.urlopen("https://repo.anaconda.com/pkgs/main/linux-64/repodata.json", timeout=5)exit(0)
except:exit(1)
END
}if ! test_conda_network; thenecho "--- 网络不可达官方源,切换到清华镜像 ---"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rconda config --set show_channel_urls yes
elseecho "--- 官方源可用,使用官方源 ---"
fi
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "--- 删除已有 Conda 环境 '$ENV_NAME' ---"conda env remove -n "$ENV_NAME"
fi
echo "--- 创建 Conda 环境 '$ENV_NAME' ---"
conda create -n "$ENV_NAME" python=3.11 -y
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip
function test_pypi_network() {python - <<END
import urllib.request
try:urllib.request.urlopen("https://pypi.org/simple", timeout=5)exit(0)
except:exit(1)
END
}PIP_INSTALL="pip install"
if ! test_pypi_network; thenecho "--- 网络不可达官方 PyPI,使用清华镜像安装 Python 包 ---"PIP_INSTALL="pip install -i https://pypi.tuna.tsinghua.edu.cn/simple"
elseecho "--- 官方 PyPI 可用 ---"
fi
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
$PIP_INSTALL torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
$PIP_INSTALL python-docx pillowecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
4.0
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
if ! grep -q "conda.sh" "$HOME/.bashrc"; thenecho "--- 将 Conda 添加到 ~/.bashrc ---"echo "# >>> Conda 初始化 >>>" >> "$HOME/.bashrc"echo "export PATH=\"$MINICONDA_DIR/bin:\$PATH\"" >> "$HOME/.bashrc"echo "eval \"\$($MINICONDA_DIR/bin/conda shell.bash hook)\"" >> "$HOME/.bashrc"echo "# <<< Conda 初始化 <<<" >> "$HOME/.bashrc"
fi
echo "--- 接受 Anaconda TOS ---"
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main || true
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r || true
function test_conda_network() {python - <<END
import urllib.request
try:urllib.request.urlopen("https://repo.anaconda.com/pkgs/main/linux-64/repodata.json", timeout=5)exit(0)
except:exit(1)
END
}if ! test_conda_network; thenecho "--- 网络不可达官方源,切换到清华镜像 ---"conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rconda config --set show_channel_urls yes
elseecho "--- 官方源可用,使用官方源 ---"
fi
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "--- 删除已有 Conda 环境 '$ENV_NAME' ---"conda env remove -n "$ENV_NAME"
fi
echo "--- 创建 Conda 环境 '$ENV_NAME' ---"
conda create -n "$ENV_NAME" python=3.11 -y
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip
function test_pypi_network() {python - <<END
import urllib.request
try:urllib.request.urlopen("https://pypi.org/simple", timeout=5)exit(0)
except:exit(1)
END
}PIP_INSTALL="pip install"
if ! test_pypi_network; thenecho "--- 网络不可达官方 PyPI,使用清华镜像安装 Python 包 ---"PIP_INSTALL="pip install -i https://pypi.tuna.tsinghua.edu.cn/simple"
elseecho "--- 官方 PyPI 可用 ---"
fi
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
$PIP_INSTALL torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
$PIP_INSTALL python-docx pillowecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
echo "或者直接打开新终端即可使用 conda 命令。"
5.0 开发环境搭建完整版
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
if ! grep -q "conda.sh" "$HOME/.bashrc"; thenecho "--- 将 Conda 添加到 ~/.bashrc ---"echo "# >>> Conda 初始化 >>>" >> "$HOME/.bashrc"echo "export PATH=\"$MINICONDA_DIR/bin:\$PATH\"" >> "$HOME/.bashrc"echo "eval \"\$($MINICONDA_DIR/bin/conda shell.bash hook)\"" >> "$HOME/.bashrc"echo "# <<< Conda 初始化 <<<" >> "$HOME/.bashrc"
fi
echo "--- 配置 Conda 镜像源为清华 ---"
conda config --remove-key channels 2>/dev/null || true
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --set show_channel_urls yes
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "--- 删除已有 Conda 环境 '$ENV_NAME' ---"conda env remove -n "$ENV_NAME"
fi
echo "--- 创建 Conda 环境 '$ENV_NAME' ---"
conda create -n "$ENV_NAME" python=3.11 -y
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 \--index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
pip install python-docx pillow -i https://pypi.tuna.tsinghua.edu.cn/simpleecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
echo " source ~/.bashrc"
echo "或者直接打开新终端即可使用 conda 命令。"
6.0 开发环境搭建脚本一键运行版 Docker
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
if ! grep -q "conda.sh" "$HOME/.bashrc"; thenecho "--- 将 Conda 添加到 ~/.bashrc ---"echo "# >>> Conda 初始化 >>>" >> "$HOME/.bashrc"echo "export PATH=\"$MINICONDA_DIR/bin:\$PATH\"" >> "$HOME/.bashrc"echo "eval \"\$($MINICONDA_DIR/bin/conda shell.bash hook)\"" >> "$HOME/.bashrc"echo "# <<< Conda 初始化 <<<" >> "$HOME/.bashrc"
fi
echo "--- 配置 Conda 镜像源为清华 ---"
conda config --remove-key channels 2>/dev/null || true
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --set show_channel_urls yes
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "--- 删除已有 Conda 环境 '$ENV_NAME' ---"conda env remove -n "$ENV_NAME"
fi
echo "--- 创建 Conda 环境 '$ENV_NAME' ---"
conda create -n "$ENV_NAME" python=3.11 -y
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
echo "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"
pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 \--index-url https://download.pytorch.org/whl/cu128
echo "--- 安装 python-docx 和 pillow ---"
pip install python-docx pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
if ! command -v docker &>/dev/null; thenecho "--- 安装 Docker ---"curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
elseecho "已检测到 Docker,跳过安装。"
fi
echo "--- 启动 Docker 服务 ---"
sudo service docker start
echo "--- 配置 Docker 镜像加速 ---"
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<EOF
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live","https://hub.rat.dev"]
}
EOF
sudo service docker restart
if [ -f "./project_images.tar" ]; thenecho "--- 加载本地镜像 ---"sudo docker load -i ./project_images.tarecho "--- 启动 Docker Compose ---"sudo docker compose up -d
elseecho "未找到 ./project_images.tar,跳过镜像加载和 Compose 启动。"
fiecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
echo " source ~/.bashrc"
echo "或者直接打开新终端即可使用 conda 命令。"
7.0 开发环境搭建脚本一键运行版 跳过重复安装
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
if ! grep -q "conda.sh" "$HOME/.bashrc"; thenecho "--- 将 Conda 添加到 ~/.bashrc ---"echo "# >>> Conda 初始化 >>>" >> "$HOME/.bashrc"echo "export PATH=\"$MINICONDA_DIR/bin:\$PATH\"" >> "$HOME/.bashrc"echo "eval \"\$($MINICONDA_DIR/bin/conda shell.bash hook)\"" >> "$HOME/.bashrc"echo "# <<< Conda 初始化 <<<" >> "$HOME/.bashrc"
fi
echo "--- 配置 Conda 镜像源为清华 ---"
if ! conda config --show channels | grep -q "tuna.tsinghua"; thenconda config --remove-key channels 2>/dev/null || trueconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rconda config --set show_channel_urls yes
fi
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "Conda 环境 '$ENV_NAME' 已存在,跳过创建。"
elseecho "--- 创建 Conda 环境 '$ENV_NAME' ---"conda create -n "$ENV_NAME" python=3.11 -y
fi
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
if python -c "import torch" &>/dev/null; thenecho "PyTorch 已安装,跳过。"
elseecho "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 \--index-url https://download.pytorch.org/whl/cu128
fi
for pkg in python-docx pillow; doif python -c "import ${pkg//-/_}" &>/dev/null; thenecho "$pkg 已安装,跳过。"elseecho "安装 $pkg..."pip install "$pkg" -i https://pypi.tuna.tsinghua.edu.cn/simplefi
done
if ! command -v docker &>/dev/null; thenecho "--- 安装 Docker ---"curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
elseecho "已检测到 Docker,跳过安装。"
fi
echo "--- 启动 Docker 服务 ---"
sudo service docker start
DOCKER_DAEMON="/etc/docker/daemon.json"
if [ ! -f "$DOCKER_DAEMON" ] || ! grep -q "daocloud" "$DOCKER_DAEMON"; thenecho "--- 配置 Docker 镜像加速 ---"sudo mkdir -p /etc/dockersudo tee "$DOCKER_DAEMON" >/dev/null <<EOF
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live","https://hub.rat.dev"]
}
EOFsudo service docker restart
elseecho "Docker 镜像加速已配置,跳过。"
fi
if [ -f "./project_images.tar" ]; thenecho "--- 加载本地镜像 ---"sudo docker load -i ./project_images.tarecho "--- 启动 Docker Compose ---"sudo docker compose up -d
elseecho "未找到 ./project_images.tar,跳过镜像加载和 Compose 启动。"
fiecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
echo " source ~/.bashrc"
echo "或者直接打开新终端即可使用 conda 命令。"
8.0 开发环境搭建脚本一键运行版 安装软件 后台运行
#!/bin/bash
set -e
if [ "$EUID" -eq 0 ]; thenecho "⚠ 警告:请不要使用 sudo 运行此脚本!"echo "请使用普通用户执行: ./install_dev_env.sh"exit 1
fiecho "=== 开始安装 AI 开发环境(无人交互版) ==="
echo "--- 更新系统 ---"
sudo apt update -y
sudo apt upgrade -y
echo "--- 安装基础依赖 ---"
sudo apt install -y libfmt-dev libopencv-dev python3.11-dev ffmpeg wget curl build-essential
MINICONDA_DIR="$HOME/miniconda3"
if [ ! -d "$MINICONDA_DIR" ]; thenecho "--- 安装 Miniconda ---"wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.shbash ~/miniconda.sh -b -p "$MINICONDA_DIR"rm ~/miniconda.sh
elseecho "已检测到 Miniconda 目录 $MINICONDA_DIR,跳过安装。"
fi
export PATH="$MINICONDA_DIR/bin:$PATH"
eval "$($MINICONDA_DIR/bin/conda shell.bash hook)"
if ! grep -q "conda.sh" "$HOME/.bashrc"; thenecho "--- 将 Conda 添加到 ~/.bashrc ---"echo "# >>> Conda 初始化 >>>" >> "$HOME/.bashrc"echo "export PATH=\"$MINICONDA_DIR/bin:\$PATH\"" >> "$HOME/.bashrc"echo "eval \"\$($MINICONDA_DIR/bin/conda shell.bash hook)\"" >> "$HOME/.bashrc"echo "# <<< Conda 初始化 <<<" >> "$HOME/.bashrc"
fi
echo "--- 配置 Conda 镜像源为清华 ---"
if ! conda config --show channels | grep -q "tuna.tsinghua"; thenconda config --remove-key channels 2>/dev/null || trueconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/freeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/rconda config --set show_channel_urls yes
fi
ENV_NAME="zhy"
if conda env list | grep -q "^$ENV_NAME"; thenecho "Conda 环境 '$ENV_NAME' 已存在,跳过创建。"
elseecho "--- 创建 Conda 环境 '$ENV_NAME' ---"conda create -n "$ENV_NAME" python=3.11 -y
fi
echo "--- 激活 Conda 环境 '$ENV_NAME' ---"
conda activate "$ENV_NAME"
echo "--- 升级 pip ---"
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
if python -c "import torch" &>/dev/null; thenecho "PyTorch 已安装,跳过。"
elseecho "--- 安装 PyTorch 2.8.0 + torchvision 0.23.0 + torchaudio 2.8.0 (CUDA 12.8) ---"pip install torch==2.8.0+cu128 torchvision==0.23.0+cu128 torchaudio==2.8.0 \--index-url https://download.pytorch.org/whl/cu128
fi
for pkg in python-docx pillow; doif python -c "import ${pkg//-/_}" &>/dev/null; thenecho "$pkg 已安装,跳过。"elseecho "安装 $pkg..."pip install "$pkg" -i https://pypi.tuna.tsinghua.edu.cn/simplefi
done
if ! command -v docker &>/dev/null; thenecho "--- 安装 Docker ---"curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
elseecho "已检测到 Docker,跳过安装。"
fi
echo "--- 启动 Docker 服务 ---"
sudo service docker start
DOCKER_DAEMON="/etc/docker/daemon.json"
if [ ! -f "$DOCKER_DAEMON" ] || ! grep -q "daocloud" "$DOCKER_DAEMON"; thenecho "--- 配置 Docker 镜像加速 ---"sudo mkdir -p /etc/dockersudo tee "$DOCKER_DAEMON" >/dev/null <<EOF
{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live","https://hub.rat.dev"]
}
EOFsudo service docker restart
elseecho "Docker 镜像加速已配置,跳过。"
fi
if [ -f "./project_images.tar" ]; thenecho "--- 加载本地镜像 ---"sudo docker load -i ./project_images.tarecho "--- 启动 Docker Compose ---"sudo docker compose up -d
elseecho "未找到 ./project_images.tar,跳过镜像加载和 Compose 启动。"
fi
DEB_PKG="./xplan-view_amd64_beta_0.0.4.deb"
if dpkg -l | grep -q "xplan-view"; thenecho "xplan-view 已安装,跳过安装。"
elseif [ -f "$DEB_PKG" ]; thenecho "--- 安装 xplan-view ---"sudo dpkg -i "$DEB_PKG" || sudo apt-get install -f -yelseecho "未找到 $DEB_PKG,跳过安装。"fi
fi
if [ ! -f /etc/ld.so.conf.d/xplan-view.conf ]; thenecho "--- 配置系统库路径 /opt/xplan-view ---"echo "$XPLAN_DIR" | sudo tee /etc/ld.so.conf.d/xplan-view.confsudo ldconfig
elseecho "系统库路径 /opt/xplan-view 已配置,跳过。"
fi
if [ ! -f /usr/local/bin/xplan-view ]; thenecho "--- 创建 xplan-view 软链接 ---"sudo ln -s "$XPLAN_DIR/xplan-view" /usr/local/bin/xplan-view
elseecho "xplan-view 软链接已存在,跳过。"
fiecho "=== AI 开发环境安装完成 ==="
echo "要使用环境,请执行:"
echo " conda activate $ENV_NAME"
echo " source ~/.bashrc"
echo "或者直接打开新终端即可使用 conda 命令。"