WSL2 Ubuntu 开发环境 - 优化后的 Claude 代码
版本1.0.3\ 状态第二阶段已完成 ✅ | 第三阶段已准备就绪 ⚡\ 目标WSL2 Ubuntu 24.04 LTS(长期支持版)
🎯 概述
为Claude Code智能体开发优化的生产级WSL2 Ubuntu开发环境自动化设置。
三层架构
Layer 3: AI Development Stack (Phases 10-13)
├── MCP Ecosystem (Universal integration protocol)
├── Task Master (Intelligent task orchestration)
├── SuperClaude Framework (Execution acceleration)
└── Claude Code CLI + Gemini CLI
Layer 2: Development Environment (Phases 3-9)
├── Languages: Python 3.12, Node.js LTS, Rust, Bun
├── Cloud: gcloud, aws, az, oci
├── IaC: Terraform, Ansible
├── Databases: PostgreSQL, Oracle Client, Supabase
├── Shell: Zsh + Oh My Zsh + Productivity tools
└── Productivity: bat, fzf, ripgrep, eza
Layer 1: System Foundation (Phases 0-2)
├── Package Manager: Homebrew (primary) ✅
├── System: build-essential, curl, git, libraries ✅
├── Python Manager: uv (fast pip alternative)
├── Node Manager: fnm (fast nvm alternative)
└── Rust Manager: cargo (via Homebrew)🚀 快速入门
先决条件
- 全新安装的WSL2 Ubuntu 24.04 LTS
- 互联网连接
- 用户拥有sudo权限
阶段0:引导启动(已完成 ✅)
# Clone repository
cd ~
git clone https://github.com/pierreribeiro/claude-code-dev-box.git
cd claude-code-dev-box
# Switch to develop branch
git checkout develop
# Make scripts executable
chmod +x scripts/*.sh
# Run Phase 0 bootstrap
./scripts/phase-0-bootstrap.sh预期结果Git仓库已初始化,Ansible已安装,目录结构已创建。
第一阶段:系统准备(已完成 ✅)
# After Phase 0 completes, update repository
cd ~/claude-code-dev-box
git pull origin develop
# Execute Phase 1 (installs build-essential, libraries, utilities)
ansible-playbook playbooks/main.yml --tags phase1 --ask-become-pass
# Verify installation
dpkg -l | grep build-essential
gcc --version预期结果已安装构建工具、开发库和实用程序。
第二阶段:自制软件安装(已完成 ✅)
# After Phase 1 completes
ansible-playbook playbooks/main.yml --tags phase2 --ask-become-pass
# Verify Homebrew
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew --version预期结果在Shell中安装并配置了Homebrew。
第三阶段:核心工具(接下来 ⚡)
# After Phase 2 completes
ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass📊 安装进度
- \[x\] 阶段0Bootstrap 和 Git 仓库 ✅ 完成 (v0.1.1 - 修复错误:PEP 668)
- \[x\] 第一阶段系统准备(apt 包)✅ 完成 (v1.0.1 - Sudo + 回调)
- \[x\] 第二阶段Homebrew 安装 ✅ 完成 (v1.0.0 - 变量作用域修复)
- \[ \] 第三阶段核心工具(git、gh、jq、yq、tree)⏳ 下一个
- \[ \] 第四阶段语言运行时(Python、Node.js、Rust、Bun)
- \[ \] 第五阶段云服务提供商的命令行界面(CLIs)
- \[ \] 第六阶段基础设施即代码(IaC)工具(Terraform,Ansible Navigator)
- \[ \] 第七阶段数据库客户端
- \[ \] 第八阶段Shell 配置(Zsh,Oh My Zsh)
- \[ \] 第九阶段生产力工具
- \[ \] 第十阶段MCP生态系统
- \[ \] 第11阶段任务大师
- \[ \] 第12阶段超级克劳德框架
- \[ \] 第13阶段克劳德命令行界面 (CLI) 与 Gemini 命令行界面 (CLI)
📝 最新更新
2025-10-21:第二阶段完成 - 家酿软件安装
- 已修复的问题:
1. 在版本显示中清空 stdout_lines 数组 1. 拒绝写入 /root/.bashrc 1. 在上下文中变为可变分辨率
- 根本原因在比赛层面捕获的变量,使用
become: yes在根上下文中解析 - 解决方案硬编码
dev_user: "pierrecr"并且dev_home: "/home/pierrecr" - 标签:
phase-2-complete - 提交(代码/更改):
- 56b4337 - 最终修复(硬编码变量) - c717be2 - 第二次尝试(路径模式) - 7df77b2 - 首次修复(安全版本显示)
2025-10-20:第一阶段错误修复 - Ansible 配置
- 问题1:
sudo: a password is required在执行剧本(或操作手册)时出错 - 解决方案1已更改
become_ask_pass = True在 ansible.cfg 文件中 - 第2期已弃用
community.general.yaml回调警告 - 解决方案2更新至
ansible.builtin.default和;与;带着result_format = yaml - 版本版本 1.0.1(修复了 ansible.cfg)
- 提交(或:提交记录):
- 142eaf1 - Ansible 修复 - 7100332 - 文档更新
2025-10-15:阶段0错误修复 - Ubuntu 24.04符合PEP 668标准
- 问题:
externally-managed-environment通过 pip 安装 pipx 时出现错误 - 解决方案将 pipx 安装方式更改为基于 apt 的(
sudo apt install pipx) - 标签:
v0.1.1-bugfix-pep668 - 测试在Ubuntu 24.04 LTS上17/17项测试通过
- 提交(或:提交记录):
- a4ee241 - 修复提交 - 672bf30 - 文档提交
📁 仓库结构
claude-code-dev-box/
├── ansible.cfg # Ansible configuration ✅
├── README.md # This file
├── .gitignore # Git ignore rules
│
├── playbooks/ # Ansible playbooks
│ └── main.yml # Master playbook (Phases 1-2) ✅
│
├── roles/ # Ansible roles
│ ├── system_preparation/ # Phase 1 role ✅
│ ├── homebrew/ # Phase 2 role ✅
│ └── [Future roles] # Created incrementally
│
├── inventory/ # Environment inventories
│ ├── hosts.yml # Localhost inventory ✅
│ └── group_vars/ # Variables ✅
│ └── all.yml
│
├── scripts/ # Utility scripts
│ ├── phase-0-bootstrap.sh # Phase 0 bootstrap ✅
│ ├── generate-phase-control.sh # Control artifact generator ✅
│ └── functional-tests.sh # Validation tests (Phase 14)
│
├── docs/ # Documentation
│ ├── PRD_WSL2_ClaudeCode_DevBox_Unified_v1.0.0.md
│ ├── control/ # Phase control artifacts
│ │ ├── phase-0-control.md ✅
│ │ ├── phase-1-control.md ✅
│ │ └── phase-2-control.md ✅
│ └── migration/ # Context migration artifacts
│
├── files/ # Static files for deployment
├── templates/ # Jinja2 templates
├── vars/ # Variable files
└── tests/ # Test infrastructure📖 文档
- 主要PRD(产品需求文档):
docs/PRD_WSL2_ClaudeCode_DevBox_Unified_v1.0.0.md - 建筑学:
docs/wsl2-ubuntu-devenv-architecture.md - 相位控制:
docs/control/phase-N-control.md(每相生成) - 阶段0控制:
docs/control/phase-0-control.md✅ - 第一阶段控制:
docs/control/phase-1-control.md✅ - 第二阶段控制:
docs/control/phase-2-control.md✅(勾选标记,表示正确、确认或完成)
⚡ 第三阶段执行指南
执行第三阶段的命令
cd ~/claude-code-dev-box
git pull origin develop
ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass预期结果
# After successful execution:
$ brew --version
Homebrew 4.x.x
$ gh --version
gh version 2.x.x
$ jq --version
jq-1.x
$ yq --version
yq version 4.x.x
$ tree --version
tree v2.x.x安装内容(约50-100 MB)
- GitHub 命令行界面 (CLI)gh(认证、仓库操作)
- JSON处理器jq(解析JSON数据)
- YAML 处理器yq(解析YAML数据)
- 目录树树(可视化)
- Git 配置全局设置(user.name,user.email)
⏱️ 预计时间线
| 阶段组 | 阶段 | 持续时间 | 依赖项 |
|---|---|---|---|
| 基金会 | 0-2 | 2-3小时 | 无 |
| 发展 | 3-9 | 8-10点 | 基础(或“地基”) |
| AI Stack(人工智能技术栈) | 10-13 | 6-8小时 | 开发阶段 |
| 验证 | 14 | 2小时 | 全部 |
| 总计 | 0-14 | 约20-24小时 | 渐进式 |
🎯 成功指标
| 指标 | 目标 | 验证 |
|---|---|---|
| 安装时间 | \95% | ansible-lint |
| 人工智能功能采用率 | 80% | 使用周期4周 |
🛠️ 开发理念
- 分阶段开发基于会话的增量式实现
- 上下文迁移每个阶段都会产生控制+迁移相关的内容(或“产物”)
- 幂等性所有剧本都可以安全地多次运行
- 可回滚Git标签支持按阶段回滚
- 生产就绪错误处理、验证、文档内置
已知问题及修复方案
第二阶段 - 带有“成为”功能的可变范围(已确定 ✅)
- 问题在比赛层面捕获的变量
become: yes在根上下文中解析 - 修复硬编码
dev_user和dev_home在变量文件中 - 状态在提交 56b4337 中已解决
- 学习避免在……时使用动态变量
become上下文影响解决方案
第一阶段 - Ansible 配置(已修复 ✅)
- 问题需要sudo密码的错误
- 修复使用
--ask-become-pass标志(在 ansible.cfg 中更新) - 状态在提交142eaf1中已解决
阶段0 - 符合PEP 668标准(已修复 ✅)
- 问题在 Ubuntu 24.04 上,通过 pip 安装 pipx 遇阻
- 修复通过apt包管理器安装pipx
- 状态在v0.1.1-bugfix-pep668版本中已解决
🤝 贡献(或:参与贡献)
这是一个个人开发环境的设置。如有关于问题或建议:
- 打开一个议题来描述问题/增强功能
- 如适用,请指明特定阶段
- 包含系统信息(Ubuntu版本、现有工具)
📜 许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
👤 作者
皮埃尔·里贝罗 - 高级数据工程师\ 针对Claude Code代理开发工作流程进行优化
______________________________________________________________________
当前状态:
- ✅ 第0阶段完成(v0.1.1 - 修复PEP 668)
- ✅ 第一阶段完成(v1.0.1 - Ansible 配置已修复)
- ✅ 第二阶段完成(v1.0.0 - 变量作用域修复)
下一步行动执行第三阶段 → ansible-playbook playbooks/main.yml --tags phase3 --ask-become-pass
Git 仓库https://github.com/pierreribeiro/claude-code-dev-box 翻译为中文是:“https://github.com/pierreribeiro/claude代码开发工具箱”\ 分支发展\ 进步3/14阶段已完成(21%)
