这不是随便挑着装的购物清单,而是重装后按依赖关系执行的顺序指南。
严格顺序指南
Windows 重装部署顺序指南
这不是随便挑着装的清单,而是给重装 / 新装系统后使用的严格顺序指南。 默认基线是 Windows 主开发:Windows 负责主要代码、运行时和命令执行,WSL 只作为补充环境。
先完成盘符、目录和用户级环境变量,再装 Scoop、mise 与语言运行时。
某阶段的进入条件或完成条件未通过时,不进入下一阶段。
1. 规划盘符与目录结构
0 项工具先规划盘符、目录树和单盘降级路径,再开始任何安装。
阶段目标:把代码、工具数据、缓存与备份目录分开,避免后续迁移时重新搬家。
未满足这些条件时,不进入当前阶段。
- 系统已经安装完成,且你知道机器是否拥有第二块数据盘。
- 你决定以 Windows 作为主要开发环境,WSL 只作为补充环境。
这些检查没过,不进入下一阶段。
- 目录规划已经确认,单盘降级路径也已确定。
- 你知道后续每类工具要落在哪个根目录下。
这一阶段做什么、检查什么,都先固定下来。
- 确认 C: 只承担系统和必须走系统安装器的软件。
- 创建 Workspace、Tools、Cache、Backup 的目标目录。
- 记录单盘机器的降级路径,避免后面边装边改。
默认按双盘机器写死:`C:` 放系统,`D:` 放代码、工具、缓存和备份。若只有单盘,全部降级到 `C:` 对应目录。
C:\
系统、用户目录、Windows 组件,以及必须跟随系统安装器的程序。
单盘降级:单盘机器保持不变,不额外迁移系统目录。
D:\Workspace\
代码仓库和需要长期保留的项目目录。
单盘降级:无第二块盘时降级为 C:\Workspace\。
D:\Tools\
可迁移工具数据、版本管理器数据、局部二进制与配置根目录。
单盘降级:无第二块盘时降级为 C:\Tools\。
D:\Cache\
Bun、uv 等可重建缓存,避免把缓存散落在用户目录。
单盘降级:无第二块盘时降级为 C:\Cache\。
D:\Backup\
导出清单、配置备份、SSH 公钥记录、安装日志。
单盘降级:无第二块盘时降级为 C:\Backup\。
当前阶段是规划或恢复验证阶段,重点是目录、环境变量、校验命令和恢复动作,而不是继续堆安装器。
2. 系统引导与主 Shell
2 项工具先恢复官方安装入口与主 Shell,再执行后面的初始化命令。
阶段目标:保证后续命令都从稳定的 PowerShell 7 与 Windows 官方包管理入口发起。
未满足这些条件时,不进入当前阶段。
- 目录规划已完成,知道工具数据与备份目录要放哪里。
这些检查没过,不进入下一阶段。
- 可以在新的 PowerShell 7 会话中执行命令。
- winget 可用,且 PowerShell 7 被确认是主 Shell。
这一阶段做什么、检查什么,都先固定下来。
- 确认 winget 源可用。
- 安装并打开 PowerShell 7。
- 后续命令统一在 PowerShell 7 中执行。
Winget
Windows 官方包管理入口,用来恢复系统级和 GUI 软件。
为什么在这里:必须先确认系统侧的官方安装入口,后面 PowerShell、VS Code、Docker 等都要依赖它。
- 官网
- https://learn.microsoft.com/windows/package-manager/winget/
- 下载
- 官方 GitHub Release
- 安装
Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle- 验证
winget --version- 详情
- 打开说明页
- Windows 11 通常已内置;缺失时先补它,再继续其他阶段。
PowerShell 7
主 Shell,用来承接后续所有环境变量和安装命令。
为什么在这里:如果还在系统自带 PowerShell 或旧 Shell 中做初始化,后面 PATH 与配置文件很容易分叉。
- 官网
- https://github.com/PowerShell/PowerShell
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id Microsoft.PowerShell --accept-package-agreements --accept-source-agreements- 验证
pwsh -NoLogo -Command "$PSVersionTable.PSVersion"- 详情
- 打开说明页
- 安装完成后把 `pwsh` 设为主 Shell,再继续后面的命令。
3. 包管理器策略与基础 PATH
1 项工具先定包管理职责与环境变量,再装 Scoop 和相关 CLI。
阶段目标:避免同一个工具被 winget、scoop、mise 多头管理,降低 PATH 混乱。
未满足这些条件时,不进入当前阶段。
- PowerShell 7 已安装并可正常启动。
- 盘符、目录和备份位置已经固定。
这些检查没过,不进入下一阶段。
- 用户级环境变量已写入。
- Scoop 能安装并列出 bucket。
- 你能明确区分 winget、scoop、mise 的推荐职责。
这一阶段做什么、检查什么,都先固定下来。
- 先设置用户级环境变量,再安装 Scoop。
- 只把 CLI 工具逐步交给 Scoop,不急着恢复全部 GUI。
- 把 PATH 冲突留在这一阶段解决,不拖到语言运行时阶段。
这是推荐职责,不是绝对强制;但恢复顺序依然按这里执行。
winget
winget系统级或 GUI 软件优先。适合遵循官方安装器行为的桌面程序。
scoop
scoopCLI 工具优先。适合集中放进可迁移目录并减少管理员弹窗。
mise
mise语言运行时与版本切换优先。用于统一 Node、Python 等版本入口。
manual
manual仅保留确有理由的例外,例如官方脚本或当前项目约定。
先定目录,再写用户级环境变量,然后才安装 Scoop、mise、语言运行时与 CLI。
WORKSPACE_ROOT
D:\Workspace文档约定的仓库根目录,单盘机器改为 C:\Workspace。
CACHE_ROOT
D:\Cache文档约定的缓存根目录,供 Bun、uv 等继续分流。
SCOOP
D:\Tools\ScoopScoop 的用户级根目录,安装前先写入。
SCOOP_GLOBAL
D:\Tools\ScoopGlobalScoop 全局目录,可选;需要管理员安装时再用。
MISE_DATA_DIR
D:\Tools\mise\datamise 下载与运行时缓存目录。
MISE_CONFIG_DIR
D:\Tools\mise\config如需把 mise 配置从用户目录抽离,可同时设置。
UV_CACHE_DIR
D:\Cache\uvuv 缓存目录,减少占用用户目录空间。
BUN_INSTALL
D:\Tools\BunBun 安装根目录;若改由 mise 管理,可仅保留缓存目录策略。
Scoop
CLI 工具优先入口,配合已规划好的 Tools 目录使用。
为什么在这里:Scoop 的目录策略与用户级环境变量绑定很紧,顺序颠倒会导致后续迁移和 PATH 重做。
- 官网
- https://scoop.sh/
- 下载
- 官方安装脚本
- 安装
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser; irm get.scoop.sh | iex- 验证
scoop --version- 详情
- 打开说明页
- 安装前先写入 `SCOOP` 与 `SCOOP_GLOBAL`,再决定是否添加 `extras` bucket。
4. Git / SSH / 基础命令行工具
1 项工具把 Git、SSH 与最基本的 Windows 命令行入口先恢复。
阶段目标:尽快达到“能拉仓库、能推送、能记录配置”的状态。
未满足这些条件时,不进入当前阶段。
- winget 与 Scoop 都已就绪。
- 基础 PATH 已确认没有被旧版本管理器污染。
这些检查没过,不进入下一阶段。
- git --version 可以正常运行。
- SSH 配置、全局 Git 习惯和备份目录都准备好了。
这一阶段做什么、检查什么,都先固定下来。
- 安装 Git for Windows。
- 恢复 SSH 密钥、公钥备份与签名策略。
- 把 Git 全局配置优先恢复到稳定状态。
Git for Windows
Git 与 SSH 的 Windows 入口。
为什么在这里:先把仓库访问能力恢复,才能顺畅地把 dotfiles、脚本和项目配置重新拉回机器。
- 官网
- https://git-scm.com/download/win
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id Git.Git --accept-package-agreements --accept-source-agreements- 验证
git --version- 详情
- 打开说明页
- 补完后再恢复全局 diff、merge、pager、签名和 SSH 习惯。
5. mise 与语言运行时
5 项工具先装 mise,再按它统一 Node、Python 等语言入口。
阶段目标:把语言运行时收敛到一个主入口,减少重装后 PATH 和版本飘移。
未满足这些条件时,不进入当前阶段。
- Scoop、Git 与用户级环境变量已就位。
- 你已经决定 Windows 是主要运行命令的一侧。
这些检查没过,不进入下一阶段。
- mise 可用并完成激活。
- Node、Python、uv、Bun 都有清晰的归属和验证命令。
这一阶段做什么、检查什么,都先固定下来。
- 先安装并激活 mise。
- 再通过 mise 装 Node 与 Python。
- uv 和 Bun 的例外路径要在这一阶段写清楚。
mise
多语言运行时版本入口,用来统一 Node、Python 等版本。
为什么在这里:先立住版本管理器,再装语言,才能避免 Node、Python 等分别抢占 PATH。
- 官网
- https://mise.jdx.dev/
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id jdx.mise --accept-package-agreements --accept-source-agreements- 验证
mise --version- 详情
- 打开说明页
- 安装后立即把 `mise activate pwsh` 写进 PowerShell 配置,再装语言。
Node.js
JavaScript 运行时,推荐经由 mise 统一管理。
为什么在这里:Node 是前端和大量 CLI 的底座,必须在版本入口稳定后再装。
- 官网
- https://nodejs.org/
- 下载
- 官方 MSI
- 安装
mise use -g node@25.9.0- 验证
node --version- 详情
- 打开说明页
- 机器上实际使用版本可低于官网最新版本,关键是统一入口。
Python
脚本和自动化运行时,推荐经由 mise 管理版本。
为什么在这里:把 Python 放在这一阶段可以避免它先于 `mise` 抢占 PATH 或跟旧 pip 环境缠在一起。
- 官网
- https://www.python.org/downloads/windows/
- 下载
- 官方 EXE
- 安装
mise use -g python@3.14.4- 验证
python --version- 详情
- 打开说明页
- 这里优先让 `mise` 控制版本,再决定是否额外保留官方安装器。
uv
Python 包与虚拟环境入口,和 Python 本体分工明确。
为什么在这里:它依赖前面已经稳定的 Python 入口,但自身更像 Windows 侧通用工具,放在这一阶段最清晰。
- 官网
- https://docs.astral.sh/uv/
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id astral-sh.uv --accept-package-agreements --accept-source-agreements- 验证
uv --version- 详情
- 打开说明页
这里保留 `winget` 是软规则例外:`uv` 主要是工具分发入口,不要求强行纳入 `mise`。
- 把 `UV_CACHE_DIR` 指向单独缓存目录,避免用户目录膨胀。
Bun
脚本和前端工具链运行时,保留当前项目常用入口。
为什么在这里:Bun 与仓库工作流相关,但不应该早于 `mise`、Node、Python 出现,避免 PATH 冲突。
- 官网
- https://bun.sh/
- 下载
- 官方 GitHub Release
- 安装
powershell -c "irm bun.sh/install.ps1 | iex"- 验证
bun --version- 详情
- 打开说明页
这里标记为 `manual`,因为当前推荐命令仍然是官方脚本;如果团队统一迁到 `mise`,再改回 `mise` owner。
- 也可改由 `mise` 管理,但当前流程保留官方脚本作为软规则例外。
6. 编辑器、WSL、Docker
3 项工具开发平台相关的大件软件放到语言运行时之后再恢复。
阶段目标:等命令行和运行时稳定后,再恢复编辑器、Linux 兼容层和容器。
未满足这些条件时,不进入当前阶段。
- 语言运行时已安装完成,验证命令通过。
- Git 与 SSH 已可用,具备拉项目与恢复配置的基础。
这些检查没过,不进入下一阶段。
- VS Code、WSL、Docker Desktop 均可启动。
- Docker 与 WSL 集成已确认,VS Code 可以识别当前工具链。
这一阶段做什么、检查什么,都先固定下来。
- 先装 VS Code,恢复 profiles 与扩展同步。
- 再装 WSL,确认发行版与更新状态。
- 最后装 Docker Desktop,并确认 WSL Integration。
VS Code
主编辑器,用于恢复 profiles、扩展和工作区。
为什么在这里:编辑器要等语言运行时与 Git 稳定后再装,才能一次性把扩展和终端配置接起来。
- 官网
- https://code.visualstudio.com/
- 下载
- 官方稳定版安装器
- 安装
winget install --exact --id Microsoft.VisualStudioCode --accept-package-agreements --accept-source-agreements- 验证
code --version- 详情
- 打开说明页
- 装完后再恢复扩展、settings.json、终端配置和常用 profiles。
WSL
Linux 工具链与兼容性入口,当前流程里是补充环境而非主环境。
为什么在这里:这里默认 Windows 主开发,所以 WSL 放在编辑器与运行时之后,用于补 Linux 能力而不是抢主入口。
- 官网
- https://learn.microsoft.com/windows/wsl/
- 下载
- 官方 GitHub Release
- 安装
wsl --install -d Debian- 验证
wsl --status- 详情
- 打开说明页
- 安装后先 `wsl --update`,再确认 Debian 发行版和默认用户。
Docker Desktop
Windows 侧容器入口,安装后再接入 WSL。
为什么在这里:容器链路依赖前面的 WSL、编辑器与运行时都稳定,不适合提前安装。
- 官网
- https://www.docker.com/products/docker-desktop/
- 下载
- 官方安装器
- 安装
winget install --exact --id Docker.DockerDesktop --accept-package-agreements --accept-source-agreements- 验证
docker version- 详情
- 打开说明页
- 安装后启用 WSL Integration,并用 Windows 主仓库目录验证容器工作流。
7. 默认应用、隔离工具、AI 工具
6 项工具核心开发链路稳定后,再补浏览器、压缩、播放器与隔离工具。
阶段目标:不让可选工具抢占前几阶段的注意力,但仍保留统一恢复入口。
未满足这些条件时,不进入当前阶段。
- 主开发环境已经可以拉代码、装依赖、运行项目。
这些检查没过,不进入下一阶段。
- 默认浏览器、压缩工具、播放器、隔离工具与桌面 AI 客户端已恢复。
这一阶段做什么、检查什么,都先固定下来。
- 优先补浏览器与默认应用。
- 再装隔离与 AI 工具。
- 把这些工具的工作区或数据目录恢复到前面规划的路径。
Google Chrome
兼容性浏览器,用于常规网站和登录流程恢复。
为什么在这里:浏览器恢复通常很重要,但不值得打断前面包管理器和运行时的顺序。
- 官网
- https://www.google.com/chrome/
- 下载
- 官方 MSI
- 安装
winget install --exact --id Google.Chrome --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id Google.Chrome- 详情
- 打开说明页
- 用于主流站点与账户恢复;不应抢在开发主链路之前。
Mozilla Firefox
独立浏览环境,用来隔离扩展与测试场景。
为什么在这里:它属于默认应用恢复,而不是环境初始化的前置条件。
- 官网
- https://www.mozilla.org/firefox/new/
- 下载
- 官方最新下载页
- 安装
winget install --exact --id Mozilla.Firefox --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id Mozilla.Firefox- 详情
- 打开说明页
- 浏览器扩展和隔离环境可分开配置。
Bandizip
压缩包默认入口。
为什么在这里:它属于日常体验层,不应该插队到语言和编辑器之前。
- 官网
- https://www.bandisoft.com/bandizip/
- 下载
- 官方下载页
- 安装
winget install --exact --id Bandisoft.Bandizip --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id Bandisoft.Bandizip- 详情
- 打开说明页
- 如需便携版可改用官网 portable 下载。
PotPlayer
本地视频播放入口。
为什么在这里:播放器是默认应用恢复的一部分,位置应该靠后。
- 官网
- https://potplayer.daum.net/
- 下载
- 官方下载页
- 安装
winget install --exact --id Daum.PotPlayer --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id Daum.PotPlayer- 详情
- 打开说明页
- 官网未稳定公开 latest 版本接口,版本号按当前官方安装包对应版本整理。
Sandboxie-Plus
隔离测试入口,用来临时运行不想直接落到主系统的软件。
为什么在这里:它服务于风险隔离和测试,不是初始化开发链路的必要条件。
- 官网
- https://sandboxie-plus.com/
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id Sandboxie.Plus --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id Sandboxie.Plus- 详情
- 打开说明页
- 用于临时隔离测试,不应抢在主开发环境之前。
Cherry Studio
桌面 AI 客户端入口,安装后再恢复模型服务与常用工作区。
为什么在这里:AI 客户端属于工作流增强层,不应和系统恢复、运行时安装混在一起。
- 官网
- https://github.com/CherryHQ/cherry-studio
- 下载
- 官方 GitHub Release
- 安装
winget install --exact --id kangfenmao.CherryStudio --accept-package-agreements --accept-source-agreements- 验证
winget list --exact --id kangfenmao.CherryStudio- 详情
- 打开说明页
- 模型目录、工作区和 API 配置建议都放回前面规划好的目录结构。
8. 恢复与验证
0 项工具最后统一回放配置、做验证命令并补安装记录。
阶段目标:确认机器已经回到可持续维护的状态,而不只是“看起来装完了”。
未满足这些条件时,不进入当前阶段。
- 前面所有阶段的退出条件都已满足。
这些检查没过,不进入下一阶段。
- 恢复项已完成,安装记录与验证命令有留档。
- 知道哪些配置需要以后从备份恢复,而不是重新摸索。
这一阶段做什么、检查什么,都先固定下来。
- 恢复 Git、SSH、VS Code、Docker、浏览器和 AI 工具的个性化配置。
- 把验证命令结果和关键路径记录到 Backup 中。
- 回看详情页,补齐遗漏但不要打乱既有顺序。
当前阶段是规划或恢复验证阶段,重点是目录、环境变量、校验命令和恢复动作,而不是继续堆安装器。
收尾核对
4 项只有当前面的阶段都满足退出条件时,才进入这些恢复动作。
- 恢复 Git 全局配置、SSH、公钥备份与签名策略。
- 恢复 VS Code 扩展、settings.json、终端 profiles 与同步账户。
- 检查 WSL 发行版、Docker WSL Integration、仓库目录与缓存目录是否落在规划路径。
- 把验证命令结果、导出清单和安装记录写入 D:\Backup 或单盘降级路径。