[!info] 环境说明
本机系统:Windows 10 专业版 2019
子系统:WSL2 (Ubuntu 26.04.1 LTS)
日期:2026-09-01


一、系统更新与基础工具安装

命令

1
2
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl wget vim build-essential software-properties-common

安装结果

组件 版本
Git 2.53.0
curl 8.18.0
build-essential 系统自带最新版

二、Python 环境管理器 (Conda) 安装

命令

1
2
3
4
5
6
7
8
9
10
11
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh

# 静默安装到 $HOME/miniconda 目录
bash miniconda.sh -b -p $HOME/miniconda

# 删除安装包
rm miniconda.sh

# 初始化 Conda(写入 ~/.bashrc)
$HOME/miniconda/bin/conda init

[!warning] 注意
运行完 conda init 后,需要关闭并重新打开 Ubuntu 终端才能生效。

安装结果

组件 版本
Conda (Miniconda) 26.7.1
Python(base 环境) 3.11

三、Conda 服务条款同意

命令

1
2
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

[!info] 说明
这是 Anaconda 的新要求,不同意条款无法使用 conda create 创建环境。


四、创建 Python 3.11 AI 开发环境

命令

1
2
3
4
5
6
7
8
# 创建名为 ai-dev 的虚拟环境,指定 Python 3.11
conda create -n ai-dev python=3.11 -y

# 激活环境(激活后命令行前会出现 (ai-dev) 标识)
conda activate ai-dev

# 升级 pip 到最新版
pip install --upgrade pip

安装结果

组件 版本
Python(ai-dev 环境) 3.11
pip 26.2.1

[!tip] 为什么用 3.11 而不是系统自带的 3.14?
主流 AI 框架(PyTorch、LangChain 等)对 Python 3.10-3.12 的兼容性最好,3.14 太新可能导致部分库无法安装。


五、Java 21 + Maven 安装 (使用 SDKMAN!)

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 安装 SDKMAN! 依赖
sudo apt install -y zip unzip

# 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash

# 初始化
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 配置阿里云镜像(加速下载)
sed -i 's|sdkman.io|mirrors.aliyun.com/sdkman|g' ~/.sdkman/etc/config
sdk flush

# 查看可用的 Java 版本
sdk list java | grep ' 21\.'

# 安装 Java 21(Eclipse Temurin)
sdk install java 21.0.10-tem
sdk default java 21.0.10-tem

# 安装 Maven
sdk install maven
sdk default maven

# 验证
java -version
mvn -v

安装结果

组件 版本
OpenJDK 21.0.10 (Temurin)
Maven 3.9.16

[!tip] 为什么用 SDKMAN! 而不是 apt?
使用 SDKMAN! 可以方便地管理多个 Java 和 Maven 版本,避免系统级安装带来的版本冲突和权限问题,是 Java 开发者的最佳实践。


六、Node.js 安装 (使用 nvm)

命令

1
2
3
4
5
6
7
8
9
10
11
# 安装 nvm
wget -qO- https://gitee.com/mirrors/nvm/raw/v0.40.3/install.sh | bash
source ~/.bashrc

# 安装 LTS 版本
nvm install 22
nvm alias default 22

# 验证
node -v
npm -v

安装结果

组件 版本
Node.js v22.x.x
npm 随 Node

[!tip] 为什么用 nvm 而不是 apt?
nvm (Node Version Manager) 允许在同一台机器上安装和切换多个 Node.js 版本,这对于需要维护不同版本 Node.js 的前端项目至关重要。


七、Docker 安装

命令(实际成功方案)

1
2
3
4
5
6
# 安装 Docker(使用 Ubuntu 官方源,兼容性好)
sudo apt update
sudo apt install -y docker.io docker-compose

# 验证安装
sudo docker run --rm hello-world

[!warning] 踩坑记录
最初尝试使用 Docker 官方仓库(download.docker.com)安装,但由于 Ubuntu 26.04 版本太新,Docker 官方仓库尚未适配,GPG 密钥下载失败(curl: (35) Recv failure: Connection reset by peer)。最终改用 Ubuntu 自带的 docker.io 包成功安装。

安装结果

组件 版本
Docker 29.1.3

八、Docker 免 sudo 配置

命令

1
2
# 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER

[!warning] 注意
运行后需要关闭并重新打开终端才能生效。生效后可以直接使用 docker 命令,无需加 sudo


九、WSL 中 Docker 自启动配置

由于 Windows 10 2019 的 WSL 版本不支持 systemd 作为 PID 1 进程,Docker 无法通过 systemctl 管理。采用手动启动脚本方案。

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建 Docker 启动脚本
sudo tee /usr/local/bin/start-docker.sh > /dev/null << 'EOF'
#!/bin/bash
if ! sudo docker info > /dev/null 2>&1; then
sudo dockerd > /dev/null 2>&1 &
echo "Docker 正在后台启动,请稍候几秒..."
sleep 3
if sudo docker info > /dev/null 2>&1; then
echo "Docker 启动成功!"
else
echo "Docker 启动中,请稍后再试: sudo docker ps"
fi
else
echo "Docker 已在运行。"
fi
EOF

# 给脚本添加执行权限
sudo chmod +x /usr/local/bin/start-docker.sh

# 将启动命令写入 ~/.bashrc,每次打开终端自动执行
echo 'sudo /usr/local/bin/start-docker.sh' >> ~/.bashrc

[!tip] 效果
每次打开 Ubuntu 终端时,Docker 会自动在后台启动,无需手动输入 sudo dockerd &


十、WSL 启用 systemd 尝试(失败记录)

命令

1
2
3
4
5
# 写入 WSL 配置文件,尝试启用 systemd
sudo tee /etc/wsl.conf > /dev/null << 'EOF'
[boot]
systemd=true
EOF

然后在 Windows PowerShell 中执行:

1
wsl --shutdown

结果

  • systemctl --version 能正常输出版本号(systemd 259)
  • ps -p 1 -o comm= 显示 PID 1 进程不是 systemd
  • sudo systemctl start docker 仍然报错:System has not been booted with systemd as init system (PID 1)

[!fail] 结论
Windows 10 2019 自带的 WSL 版本过旧,wsl --update 命令不可用(提示”命令行选项无效”),无法通过此方式启用 systemd。最终采用手动启动脚本方案替代。


十一、Windows 本机 IDE 安装

IntelliJ IDEA Community(写 Java 用)

下载
  1. 打开浏览器,访问:https://www.jetbrains.com/idea/download/
  2. 找到 Community 那一栏(免费的,左边那个)
  3. 点击橙色的 Download 按钮

[!warning] 注意
不要下载 Ultimate(收费版),选 Community(免费版)就够用了。

安装步骤
  1. 双击下载好的 .exe 安装包
  2. 一路点 Next,大部分选项保持默认
  3. Installation Options 页面,勾选以下选项:
    • ✅ Create Desktop Shortcut(创建桌面快捷方式)
    • ✅ Add “Open Folder as Project”(右键菜单可以直接用 IDEA 打开项目)
    • ✅ Add launchers dir to the PATH(添加到系统 PATH)
  4. Choose Boot Environment 页面,选择 JetBrains Runtime(默认选项)
  5. 点击 Install,等待安装完成
  6. 点击 Finish,勾选 Run IntelliJ IDEA 启动
首次启动配置
  1. 启动后选择 Do not import settings(不导入旧设置)
  2. 选择主题:推荐选 Darcula(深色主题,护眼)
  3. 点击 Next,到 Plugins 页面,保持默认,点 Start Using IntelliJ IDEA
连接 WSL
  1. 打开 IDEA,点击菜单 File → Open
  2. 在路径栏中输入 WSL 项目路径,格式为:\\wsl$\Ubuntu\home\你的用户名\项目目录
  3. 例如:\\wsl$\Ubuntu\home\zzc\java-test
  4. 点击 OK,IDEA 会打开 WSL 里的目录

VS Code(写 Python / 前端 / 通用)

下载
  1. 打开浏览器,访问:https://code.visualstudio.com/
  2. 点击蓝色的 Download for Windows 按钮
安装步骤
  1. 双击下载好的安装包
  2. 勾选 我接受协议,点 下一步
  3. 选择安装位置:保持默认,点 下一步
  4. 选择开始菜单文件夹:保持默认,点 下一步
  5. 选择附加任务(重要):
    • ✅ 将”通过 Code 打开”操作添加到 Windows 资源管理器文件上下文菜单
    • ✅ 将”通过 Code 打开”操作添加到 Windows 资源管理器目录上下文菜单
    • ✅ 将 Code 注册为受支持的文件类型的编辑器
    • ✅ 添加到 PATH(默认已勾选)
  6. 点击 安装,等待完成
安装 WSL 扩展(关键)
  1. 打开 VS Code
  2. Ctrl + Shift + X 打开扩展面板
  3. 搜索:WSL
  4. 找到第一个结果:WSL(发布者是 Microsoft
  5. 点击 Install
连接 WSL 的两种方式

方式一:命令行打开(推荐)

在 Ubuntu 终端中,进入项目目录后运行:

1
code .

会自动打开 VS Code 并连接到 WSL。

方式二:界面操作

  1. 打开 VS Code
  2. Ctrl + Shift + P 打开命令面板
  3. 输入 WSL: Connect to WSL,按回车
推荐安装的扩展
扩展名 用途
Python(Microsoft) Python 语法高亮、智能提示、调试
ESLint JavaScript/TypeScript 代码检查
Prettier 代码格式化
Docker(Microsoft) Docker 容器可视化管理
Chinese (Simplified) 中文界面(可选)

[!tip] 小提示
安装扩展时,注意看扩展按钮旁边有没有 “Install in WSL: Ubuntu” 的选项。如果有,说明这个扩展会安装在 WSL 里,性能更好。


十二、验证环境

验证 VS Code + WSL 连接

在 Ubuntu 终端中运行:

1
2
3
4
mkdir -p ~/test-project
cd ~/test-project
echo 'print("Hello from WSL!")' > test.py
code .

[!warning] 踩坑记录
使用 echo "print('Hello from WSL!')" 会报错 -bash: !': event not found,因为 bash 把 ! 当成了历史命令扩展符号。解决方法是外层用单引号,内层用双引号:echo 'print("Hello from WSL!")'

验证要点:

  • VS Code 左侧文件列表能看到 test.py
  • 顶部标题栏显示 [WSL: Ubuntu] 字样

验证 IDEA + WSL 连接

在 Ubuntu 终端中运行:

1
mkdir -p ~/java-test

在 IDEA 中通过 File → Open 打开路径 \\wsl$\Ubuntu\home\zzc\java-test


最终环境版本总览

组件 版本 用途
Ubuntu 26.04.1 LTS (resolute) 操作系统
WSL 内核 5.10.16.3-microsoft-standard-WSL2 Windows 子系统
OpenJDK 21.0.10 (Temurin) Java 后端开发
Maven 3.9.16 Java 项目构建
Python (ai-dev) 3.11 AI 开发
Conda 26.7.1 Python 环境管理
Node.js v22.x.x (LTS) 前端开发
npm 随 Node Node.js 包管理
Docker 29.1.3 容器化部署
Git 2.53.0 版本控制
IntelliJ IDEA Community(免费版) Java IDE
VS Code 最新版 Python / 前端 IDE

踩坑汇总

问题 原因 解决方案
conda create 报错 CondaToSNonInteractiveError Anaconda 更新了服务条款 运行 conda tos accept 命令同意条款
Docker 官方仓库 GPG 密钥下载失败 Ubuntu 26.04 太新,Docker 官方仓库未适配 改用 apt install docker.io
sudo systemctl start docker 报错 PID 1 不是 systemd Windows 10 2019 的 WSL 版本过旧 改用 sudo dockerd & 手动启动 + 自启动脚本
wsl --update 提示”命令行选项无效” WSL 版本过旧不支持该命令 无法更新,接受现状用手动方案
echo "print('Hello!')" 报错 event not found bash 的 ! 是历史扩展符号 外层用单引号,内层用双引号