编程闭关教程 · 系列 08–20 · 编制日期 2026-10-14

环境搭建与锁定版本清单

一天内把 Windows 本机(开发)+ 低配 Linux 服务器(部署)两个环境全部搭好,并拿到全系列唯一的锁定版本总表。版本号全部 2026-10-14 实测核验、带官方来源——从此选版本这件事从你的生活里消失。
本页承诺跟着做,4–6 小时内两个环境全部可用;以后任何项目 clone 即复现、版本查表即得。国内网络所需的镜像配置(Go/Node/pnpm/Flutter)一并给到,不用你自己摸索。
4–6h
两个环境全部搭好
~30 项
锁定版本 + 官方来源
1 天
本页预计投入
0 个
需要你决策的版本选择
1GB
服务器内存约束下的部署原则
核验基准:2026-10-14 实际访问各官方页面确认版本号;关键项经第二来源抽查。本页同时是全系列"安装即锁"的落点。
08 总纲 09 环境·版本 10 Go 内核 11 工作台 12 Vue3 13 Flutter 14 Python 15 C/C++ 16 MySQL 17 PostgreSQL 18 Redis 19 SQLite3 20 部署
本页目录
  1. Windows 本机环境搭建
  2. 低配 Linux 服务器准备
  3. 1GB 内存部署心智
  4. 锁定版本清单总表(2026-10-14)
  5. 版本纪律操作页
  6. 常见安装报错与解决
  7. 来源表
01

Windows 本机环境搭建

原则:能用官方安装器就用官方安装器;能用 winget 就用 winget(自动加 PATH);装完立刻用"验证命令"确认。顺序:Go → VS Code → Git → Node/pnpm →(按需)Flutter/Python/C++/Docker。

1.1 Go 1.27.x(主线语言,第一个装)

  1. 下载:https://go.dev/dl/ 选 Windows x86-64 的 go1.27.2.windows-amd64.msi(1.27.x 线最新补丁;或 winget install GoLang.Go)。
  2. 安装:默认路径 C:\Program Files\Go,一路 Next。装完重开终端(PATH 刷新)。
  3. 验证:
go version          # 期望:go version go1.27.2 windows/amd64
go env GOPROXY      # 国内网络:应显示 https://goproxy.cn,direct

国内网络必做(否则 go get 会卡超时):

go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn

工作区习惯(不强制):go env -w GOPATH=C:\Users\你的用户名\go(默认即可),项目目录随意放,Go 用 go.mod 管理模块,不依赖 GOPATH 位置。

1.2 VS Code 1.141.0 + Go 扩展

  1. 下载 https://code.visualstudio.com/ 的 Windows x64 安装包(当前稳定版 1.141.0),或 winget install Microsoft.VisualStudioCode。
  2. 装扩展:扩展面板搜 Go(发布者 golang,扩展 ID golang.go)并安装。gopls(v0.23.0)由扩展自动托管,不用手动装。
  3. 首次打开 .go 文件时,右下角会提示安装 gopls/delve 等工具,点 Install All(走 goproxy.cn 很快)。
  4. 可选:winget install JetBrains.GoLand(GoLand 2026.2,已适配 Go 1.27;教程以 VS Code 为准,GoLand 是付费备选)。

1.3 Git(版本纪律的地基)

winget install Git.Git
git --version

装完设置用户(一次性):git config --global user.name "你的名字"; git config --global user.email "你的邮箱"。推荐在 VS Code 里装 GitLens 扩展(看 diff 用)。

1.4 Node.js 24 LTS + pnpm 12

winget install OpenJS.NodeJS.LTS        # Node 24 LTS 线(当前 v24.21.0)
node --version                          # 期望 v24.x.x
npm install -g pnpm                     # 全局装 pnpm(npm 装的是最新稳定 12.11.x)
pnpm --version                          # 期望 12.x

国内网络:给 pnpm 配 registry 镜像(否则装包慢/失败):

pnpm config set registry https://registry.npmmirror.com

换机器/换项目时注意:registry 是用户级配置,镜像只加速下载,锁文件(pnpm-lock.yaml)里记录的是版本不是源,不影响可复现。

1.5 Flutter stable 3.47.6(路径 C,有 APP 项目再装也行)

  1. 下载 stable 渠道 Windows 包:https://docs.flutter.dev/install/archive(3.47.6,2026-10-02,随包 Dart 3.13.5)。
  2. 解压到 C:\flutter,把 C:\flutter\bin 加进 PATH(系统环境变量)。
  3. 国内网络配置镜像(flutter 与 pub):
$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
$env:PUB_HOSTED_URL="https://pub.flutter-io.cn"
# 上述是临时变量;永久设置:系统环境变量里新建这两个变量,值同上
flutter --version        # 期望 Flutter 3.47.6 + Dart 3.13.5
flutter doctor            # 检查依赖;做 Windows 桌面开发装好 VS2022 C++ 工作负载即可

提醒:Flutter 是"项目驱动"卫星(08 §1.2 路径 C)。没接到 APP 项目前,可以不装或只装 SDK 不配 Android 环境;要配 Android 时按 13 模块第 1 章操作。

1.6 Python 3.14.8(AI 胶水卫星)

winget install Python.Python.3.14        # 或手动下载:https://www.python.org/downloads/ 选 3.14.8
python --version        # 期望 Python 3.14.8(注意:不要选 3.15.0,刚发布,按版本纪律规则 2)

1.7 C/C++ 工具链(根基卫星,第 15 模块用)

  1. Visual Studio 2022 安装器 → 勾选工作负载 "使用 C++ 的桌面开发"(含 MSVC v143 编译器 + CMake 工具)。下载:https://visualstudio.microsoft.com/zh-hans/
  2. CMake 也可独立装最新稳定 4.4.3:https://cmake.org/download/(Windows x86_64 安装器,装时勾选"Add CMake to PATH")。
  3. 轻量替代(不装 VS 时):MSYS2 / WinLibs 的 MinGW-w64 + GCC。
cmake --version        # 期望 4.4.x
cl                    # 期望显示 MSVC 版本(在"Developer PowerShell for VS 2022"里执行)

1.8 本机跑数据库:Docker Desktop 还是 WSL2?

推荐:Docker Desktop 4.94.0(省事)

装 WSL2 内核(安装器自动引导)→ 一条命令起 MySQL/PG/Redis,16/17/18 模块全部按 Docker 示例照做。缺点:吃内存(WSL2 约 1–2GB 常驻)。适用:内存 16GB+ 的台式机。[https://docs.docker.com/desktop/release-notes/]

备选:纯 WSL2 + 原生安装

WSL2 里 apt 直接装 MySQL/PG/Redis,零 Docker 开销,更接近"服务器真相"。命令见 16/17/18 模块的"Linux 原生安装"小节。适用:内存吃紧、想少装一层。
winget install Docker.DockerDesktop        # Docker Desktop 4.94.0(含 Engine 29.8.x)
docker --version                            # 期望 Docker version 29.x
docker compose version                      # 期望 v2.x

装完启动 Docker Desktop,等托盘鲸鱼图标变绿。记住:Docker 只用于本机开发;1GB 服务器不装 Docker(§3)。

1.9 全部装完,跑一遍总验证

go version && node --version && pnpm --version
python --version && cmake --version && git --version
docker --version
flutter --version        # 已装才跑

本机环境验收标准:以上命令全部有输出、版本号与 §4 总表一致,本机环境就绪,可以进 10 模块了。

02

低配 Linux 服务器准备

目标:一台 1GB 内存的云服务器(Debian 13 或 Ubuntu 26.04 LTS),从零到"能安全接收 Go 二进制"。20 模块负责完整部署,这里只做安全地基。

2.1 选系统与初始化

2.2 一次性加固脚本(root 下逐行执行)

# 1) 更新系统
apt update && apt upgrade -y

# 2) 时区设为北京时间
timedatectl set-timezone Asia/Shanghai

# 3) 建普通用户并加入 sudo(把 yourname 换成你的用户名)
adduser yourname
usermod -aG sudo yourname

# 4) 配置 SSH 密钥登录(本机 PowerShell 执行,不是服务器上):
#    ssh-keygen -t ed25519                        # 本机生成(已有可跳过)
#    type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@服务器IP "cat >> ~/.ssh/authorized_keys"
#    然后服务器上:sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
#    systemctl restart ssh

# 5) 防火墙:只开 SSH / HTTP / HTTPS
apt install -y ufw
ufw allow OpenSSH && ufw allow 80/tcp && ufw allow 443/tcp
ufw enable          # 确认后输入 y;这一步做完 SSH 断开会话是正常的,用新用户+密钥重连

# 6) 1GB 内存加 swap(重要,防 OOM)
fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 7) 验证
free -h              # 期望看到 Swap 2.0Gi
df -h                # 磁盘余量

服务器准备验收标准:能用普通用户 + 密钥登录;root 密码登录已关;防火墙只有 22/80/443;swap 生效;时区正确。这套做完,进 11 模块做部署,或直接进 20 模块系统学。

03

1GB 内存部署心智

这是 07 报告选 Go 的核心约束在运维上的投影。五条原则,20 模块会逐条展开。

① 单二进制

Go 交叉编译出 1 个文件,scp 上传即跑,不装运行时、不装依赖。内存 10–15MB 级。

② 不装 Docker

Docker 官方要求 Ubuntu Server 1.5GB 内存起。1GB 机器直接装二进制/systemd,少一层守护进程。

③ 数据库按需精简

能 SQLite 就 SQLite(单文件、零守护进程);必须 MySQL/PG 时按 16/17 模块的"低配调优"小节压内存。

④ swap 兜底

§2.2 已配 2G swap。避免 OOM killer 杀进程;但 swap 慢,长期靠它说明该精简服务。

⑤ 服务越少越好

每多一个常驻服务就多一份内存。工作台 1 个 Go 进程 + 1 个 SQLite 文件 = 最小闭环;需要 HTTPS 时 Nginx/Caddy 二选一(20 模块)。

⑥ 可观测要轻

监控不一定要 Grafana 全家桶:先用日志 + /healthz + systemd 状态,重监控栈等业务真的需要再上。
04

锁定版本清单总表(2026-10-14 核验)

全系列唯一版本事实来源。每个版本号均于 2026-10-14 实际访问官方页面确认,关键项经第二来源抽查(08 §10 有速览版)。安装时直接抄这张表,不要自己选。

4.1 语言与前端

工具锁定版本发布日期官方来源
Go1.27.2(1.27.x 线)2026-08-19(1.27.0);2026-10-08(1.27.2)https://go.dev/dl/ · https://go.dev/doc/devel/release
Node.jsv24.21.0(Active LTS)LTS 线持续https://nodejs.org/en
TypeScript7.0.2(^7)7.x 新主版本https://registry.npmjs.org/typescript
Vue 33.5.x(最新 3.5.44,装 ^3.5)3.5.42=2026-08-27;3.5.44 更新https://data.jsdelivr.com/v1/packages/npm/vue/resolved?specifier=latest
Vite8.3.42026-10-08https://data.jsdelivr.com/v1/packages/npm/vite/resolved?specifier=latest
pnpm12.11.22026-10-09https://github.com/pnpm/pnpm/releases
Flutterstable 3.47.6(Dart 3.13.5)2026-10-02https://docs.flutter.dev/install/archive
Python3.14.8(3.14 bugfix 线;3.15.0 刚发布不锁)2026-09-30https://www.python.org/downloads/
CMake4.4.3官网最新https://cmake.org/download/

4.2 数据库四件套

工具锁定版本发布日期官方来源
MySQL8.4.12 LTS2026-08-18https://dev.mysql.com/doc/relnotes/mysql/8.4/en/
PostgreSQL18.62026-08-13https://www.postgresql.org/docs/release/
Redis8.10.22026-09-17https://github.com/redis/redis/releases
SQLite3.53.42026-07-24https://sqlite.org/changes.html

4.3 基础设施与服务器

工具锁定版本发布日期官方来源
Docker Engine(本机)29.8.22026-09-30https://docs.docker.com/engine/release-notes/29/
Docker Desktop4.94.02026-10-05https://docs.docker.com/desktop/release-notes/
Nginxstable 1.30.52026-09-15https://nginx.org/en/download.html
Caddyv2.11.42026-06-03https://github.com/caddyserver/caddy/releases
Debian13.7 "trixie"(服务器首选)13.0=2025-08-09;13.7=2026-09-12https://www.debian.org/releases/
Ubuntu26.04.1 LTS(备选)2026-04https://ubuntu.com/download/server

4.4 Go 生态(工作台与各专题)

工具锁定版本发布日期官方来源
Ginv1.12.02026-02-28https://pkg.go.dev/github.com/gin-gonic/gin
GORM(v2 API 线)v1.31.2(注意 tag 是 v1.x 序列)2026-06-22https://pkg.go.dev/gorm.io/gorm
golang-jwt/jwtv5.3.12026-01-28https://pkg.go.dev/github.com/golang-jwt/jwt/v5
glebarez/sqlite(GORM·纯 Go)v1.11.02024-03-14https://pkg.go.dev/github.com/glebarez/sqlite
modernc.org/sqlite(纯 Go)v1.60.12026-09-29https://pkg.go.dev/modernc.org/sqlite
mattn/go-sqlite3(CGO 备选)v1.14.522026-09-05https://github.com/mattn/go-sqlite3/releases
pgxv5.11.02026-09-07https://github.com/jackc/pgx/releases
go-redisv9.23.02026-10-05https://github.com/redis/go-redis/releases
go-sql-driver/mysqlv1.10.12026-09-02https://github.com/go-sql-driver/mysql/releases
sqlcv1.31.12026-04-22https://github.com/sqlc-dev/sqlc/releases
entv0.14.62026-03-24https://github.com/ent/ent/releases
air(热重载)v1.67.42026-08-01https://github.com/air-verse/air/releases
golangci-lintv2.14.0(v2 配置格式)2026-09-24https://github.com/golangci/golangci-lint/releases
delvev1.27.22026-09-09https://github.com/go-delve/delve/releases

4.5 IDE 与工具链

工具锁定版本官方来源 / 说明
VS Code1.141.0https://code.visualstudio.com/updates
Go 扩展 + goplsgolang.go;gopls v0.23.0https://marketplace.visualstudio.com/items?itemName=golang.Go · https://pkg.go.dev/golang.org/x/tools/gopls(由扩展自动托管)
GoLand(备选)2026.2https://www.jetbrains.com/go/whatsnew/
Visual Studio 2022MSVC v143 + "使用 C++ 的桌面开发"https://visualstudio.microsoft.com/zh-hans/
MinGW-w64(备选)MSYS2 / WinLibs 分发https://www.mingw-w64.org/

表中未列的小依赖(godotenv、x/crypto/bcrypt、Python 的 uv 等):各专题模块在写代码前会自己核验最新稳定版并写入该模块来源表(见 08 总纲 §8 与各模块)。你不需要管。

05

版本纪律操作页

08 总纲 §7 讲"规则",这里讲"命令":怎么查当前版本、怎么核对是不是官方最新、怎么把版本写死进项目。

5.1 查版本命令速查

想查什么命令说明
Go 运行时版本go version本机工具链
Go 项目依赖版本go list -m all以 go.mod/go.sum 为准
Node 版本node --version配合 .nvmrc 锁 LTS
前端依赖版本pnpm list / pnpm why <包名>以 pnpm-lock.yaml 为准
Flutter 版本flutter --versionstable 渠道
MySQL/PG/Redis 服务端版本mysql --version / psql --version / redis-server --version服务器上执行
SQLite 版本sqlite3 --version或 Go 里 SELECT sqlite_version()

5.2 核对"是不是官方最新"(每次评估 30 秒)

  1. Go:打开 https://go.dev/dl/ 看最新稳定版,与 §4 总表对比;
  2. Go 生态库:打开 https://pkg.go.dev/<模块路径> 看顶部 Version;
  3. 前端包:打开 https://data.jsdelivr.com/v1/packages/npm/<包名>/resolved?specifier=latest;
  4. 数据库:打开 §4 总表里的官方发布说明页。

但记住纪律:"有新版" ≠ "该升级"。升级只允许三种情况(安全通告 / 新特性解决真实问题 / 全新项目)。核对的目的是心里有数,不是动手升级。

5.3 把版本写死进项目(README 版本表模板)

# 版本表(本项目唯一事实来源,冻结日期 2026-10)
| 组件        | 锁定版本            | 锁文件             | 上次评估 | 升级条件命中? |
|-------------|---------------------|--------------------|----------|---------------|
| Go          | 1.27.x              | go.mod + go.sum    | 2026-10  | 否            |
| Gin         | v1.12.x             | go.sum             | 2026-10  | 否            |
| GORM        | v1.31.x (v2 API)    | go.sum             | 2026-10  | 否            |
| SQLite 驱动 | glebarez/sqlite     | go.sum             | 2026-10  | 否            |
| Vue3        | ^3.5                | pnpm-lock.yaml     | 2026-10  | 否            |
| Vite        | ^8.3                | pnpm-lock.yaml     | 2026-10  | 否            |
| Node        | 24 LTS              | .nvmrc             | 2026-10  | 否            |
06

常见安装报错与解决

报错 / 现象原因解决
装完 Go 后 go 命令找不到PATH 未刷新关闭终端重开;或 $env:Path=[Environment]::GetEnvironmentVariable('Path','Machine')+';'+[Environment]::GetEnvironmentVariable('Path','User') 后重试
go get 卡住 / dial tcp 超时国内网络访问 proxy.golang.org 慢go env -w GOPROXY=https://goproxy.cn,direct(见 §1.1)
go install 提示 missing go.sum entry依赖未校验go mod tidy 再重试;golangci-lint 等工具用 go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0
VS Code 打开 .go 文件无提示/无跳转gopls 未安装或版本旧Ctrl+Shift+P → "Go: Install/Update Tools" 全选安装(走 goproxy.cn)
pnpm install 很慢 / 卡住默认 registry 慢pnpm config set registry https://registry.npmmirror.com
node 版本不是 24 LTS装了 Current 或其他版本用 nvm-windows(github.com/coreybutler/nvm-windows)管理:nvm install 24; nvm use 24;或卸载重装 OpenJS.NodeJS.LTS
python 打开 Microsoft StoreWindows 应用商店别名劫持设置 → 应用 → 应用执行别名 → 关闭 python.exe / python3.exe 别名;或装 Python 3.14.8 时勾选 PATH
Docker Desktop 报 WSL2 内核版本过旧WSL2 内核未更新管理员 PowerShell:wsl --update;重启 Docker Desktop
Docker Desktop 起不来 / 一直 startingHyper-V/WSL 未启用或内存不足控制面板启用"适用于 Linux 的 Windows 子系统"+"虚拟机平台"后重启;确认 BIOS 虚拟化开启
flutter doctor 报 Android licenses 未接受Android SDK 许可未同意flutter doctor --android-licenses 全部 y;没接 APP 项目可先跳过(§1.5)
cmake 命令找不到未加入 PATH重装 CMake 时勾选 "Add CMake to PATH";或把 C:\Program Files\CMake\bin 加入 PATH
服务器 ufw enable 后 SSH 断连无法重连没先 allow OpenSSH 或 allow 规则写错云控制台 VNC 登录,ufw allow OpenSSH; ufw reload;教训:先 allow 再 enable(§2.2 顺序)
MySQL 3306 端口被占用本机已装 MySQL 或残留进程netstat -ano | findstr 3306 找 PID;或改容器端口映射 -p 3307:3306(16 模块)
07

来源表

本页所有版本号均于 2026-10-14 由核验子代理实际访问下列官方页面确认;关键项(Go、PostgreSQL、SQLite、Vue、Vite、GORM、Gin、golang-jwt、modernc)经第二来源(jsDelivr API / pkg.go.dev / 官方发布页)抽查复核。

Go 1.27 发布与下载页https://go.dev/dl/ · https://go.dev/doc/devel/release
Node.js 版本页https://nodejs.org/en
TypeScript dist-tagshttps://registry.npmjs.org/typescript
Vue / Vite npm latest(jsDelivr API,2026-10-14 抓取)https://data.jsdelivr.com/v1/packages/npm/vue/resolved?specifier=latest · https://data.jsdelivr.com/v1/packages/npm/vite/resolved?specifier=latest
pnpm releaseshttps://github.com/pnpm/pnpm/releases
Flutter SDK archive(stable 3.47.6 / Dart 3.13.5)https://docs.flutter.dev/install/archive
Python 下载页(3.14.8 / 3.15.0)https://www.python.org/downloads/
CMake 下载页https://cmake.org/download/
MySQL 8.4 LTS 发布说明(8.4.12)https://dev.mysql.com/doc/relnotes/mysql/8.4/en/
PostgreSQL 发布说明(18.6)https://www.postgresql.org/docs/release/
Redis releases(8.10.2,许可三选一说明见仓库 README)https://github.com/redis/redis/releases
SQLite 发布历史(3.53.4)https://sqlite.org/changes.html
Docker Engine / Desktop 发布说明https://docs.docker.com/engine/release-notes/29/ · https://docs.docker.com/desktop/release-notes/
Nginx 下载页(stable 1.30.5)https://nginx.org/en/download.html
Caddy releases(v2.11.4)https://github.com/caddyserver/caddy/releases
Debian / Ubuntu 版本页https://www.debian.org/releases/ · https://ubuntu.com/download/server
Go 生态各库(pkg.go.dev / GitHub releases)https://pkg.go.dev/github.com/gin-gonic/gin · https://pkg.go.dev/gorm.io/gorm · https://pkg.go.dev/github.com/golang-jwt/jwt/v5 · https://pkg.go.dev/github.com/glebarez/sqlite · https://pkg.go.dev/modernc.org/sqlite · https://github.com/jackc/pgx/releases · https://github.com/redis/go-redis/releases · https://github.com/go-sql-driver/mysql/releases · https://github.com/sqlc-dev/sqlc/releases · https://github.com/ent/ent/releases · https://github.com/air-verse/air/releases · https://github.com/golangci/golangci-lint/releases · https://github.com/go-delve/delve/releases