1279 字
6 分钟

别再手动配环境了——我写了个工具叫 rig

起因#

每次拿到一台新机器,我都会经历同样的折磨:装 zsh、配 Oh My Zsh、装 nvm、装 Docker、配 Git、装一堆 CLI 工具……如果是 Ubuntu 还好,换成 CentOS 包名就不一样了,到了 macOS 又是另一套。云服务器、本地开发机、WSL、CI runner——每台机器都要重新来一遍。

我受够了。

所以我写了 rig:一行命令,把开发环境从零配到能干活。

rig 安装演示

它能干什么#

简单说,rig 是一个纯 Bash 写的开发环境配置框架。你只需要一行:

Terminal window
curl -fsSL https://raw.githubusercontent.com/X-Zero-L/rig/master/install.sh | bash

然后它会弹出一个交互式菜单,让你选要装哪些东西。

目前支持 15+ 个组件,覆盖日常开发的方方面面:

类别组件
基础环境zsh + Oh My Zsh + Starship 提示符、Tmux + Catppuccin 主题、Git 配置、常用工具(ripgrep, fd, bat, jq, gh)
语言运行时Node.js (nvm)、Python (uv)、Go (goenv)
基础设施Docker + Compose、SSH 加固、Tailscale、Clash 代理
AI 编程助手Claude Code、Codex CLI、Gemini CLI、Agent Skills

对,你没看错——AI 编程工具也管装。Claude Code 的 API Key、Codex 的模型配置、Gemini CLI 的初始化,全部自动搞定。

为什么不用 Ansible#

这个问题我被问过好多次。Ansible 当然强大,但它的定位是管理成百上千台服务器的。我的需求没那么复杂:我就是想在一台新机器上快速把开发环境拉起来。

rig 的设计哲学是 零依赖、零学习成本。它只需要 curl、git 和 sudo——这三样东西几乎所有 Linux/macOS 系统都自带。不需要 Python,不需要 YAML playbook,不需要 inventory 文件。

而且 rig 天然幂等:已经装好的组件会自动跳过,配置文件只做增量更新。你可以放心地反复跑,不会把环境搞乱。

跨平台是认真的#

rig 不是那种”我在 Ubuntu 上写的脚本碰巧在 Fedora 也能跑”的项目。它在底层做了完整的抽象:

OS 检测层 (os-detect.sh)
包名映射层 (pkg-maps.sh) ← 同一个工具在不同发行版的包名不同
包管理器抽象层 (pkg-manager.sh) ← apt / dnf / yum / pacman / brew

举个例子,fd 这个工具在 Debian/Ubuntu 上叫 fd-find,在 Arch 上叫 fd,在 macOS 上又叫 fd。rig 在 pkg-maps.sh 里维护了一张映射表,你不需要关心这些差异。

目前覆盖的平台:

  • Debian / Ubuntu (apt)
  • CentOS / RHEL (yum/dnf)
  • Fedora (dnf / dnf5)
  • Arch Linux (pacman)
  • macOS (Homebrew)

装完之后跑一下 rig status,就能看到所有组件的安装状态和版本:

rig status 输出

预设模式#

不想一个个选?rig 内置了四套预设方案:

  • minimal —— Shell + 常用工具 + Git,最轻量的基础环境
  • agent —— 完整的 AI 编程助手栈(Claude Code + Codex + Gemini + Skills)
  • devops —— Docker + SSH + Tailscale + 基础设施工具
  • fullstack —— 上面全都要
Terminal window
# 直接装 AI 编程全家桶
rig install --preset agent
# 或者在 curl 安装时指定
curl -fsSL https://raw.githubusercontent.com/X-Zero-L/rig/master/install.sh | bash -s -- --preset fullstack

rig install 预设选择菜单

配置导出 / 导入#

这是我最喜欢的功能。跑一句 rig export,它会生成两个文件:

  • rig-config.json —— 所有组件的配置(安全,可以放进 Git)
  • secrets.env —— API Key 之类的敏感信息(权限 600,自动 gitignore)

拿到新机器后:

Terminal window
rig import ~/.rig/rig-config.json

整套环境就回来了。重装系统、换新机器,都不用再从头配起。

rig export 导出配置

安全设计#

写这种自动化工具,安全问题我是认真对待的:

  • 幂等操作 —— 重复执行不会破坏已有配置
  • 依赖检查 —— 卸载组件时会检查是否有其他组件依赖它
  • 配置备份 —— 卸载前自动备份配置文件(.rig-backup 后缀)
  • 数据保护 —— 删除 Docker 等组件时会提示是否清理用户数据
  • 代理验证 —— GitHub 代理只允许 HTTPS,防止中间人攻击

国内用户友好#

在国内网络环境下,rig 也考虑到了:

Terminal window
# 通过代理安装
curl -fsSL https://raw.githubusercontent.com/X-Zero-L/rig/master/install.sh | bash -s -- --gh-proxy https://gh-proxy.org
# 或者用短链接
curl -fsSL https://z.ls/rig | bash

Docker 镜像源、npm 镜像、GitHub 加速代理都可以通过环境变量配置,不需要装完之后再手动改一堆配置文件。

装完之后长什么样#

一套完整的 rig 配置装完之后,你会得到:

  • zsh + Oh My Zsh 带自动补全、语法高亮、历史搜索
  • Starship 提示符 + Catppuccin Mocha 主题,好看且信息丰富
  • Tmux 带 Catppuccin 状态栏和 vim 风格导航
  • 一堆开箱即用的现代 CLI 工具:rg 替代 grepfd 替代 findbat 替代 cat
  • Docker 已配好镜像源和日志轮转
  • AI 编程助手随时待命

Starship 提示符效果

试试看#

Terminal window
# 最简单的方式
curl -fsSL https://raw.githubusercontent.com/X-Zero-L/rig/master/install.sh | bash
# 国内用户
curl -fsSL https://z.ls/rig | bash
# 全自动安装(非交互)
curl -fsSL https://raw.githubusercontent.com/X-Zero-L/rig/master/install.sh | bash -s -- --all

项目开源在 GitHub:X-Zero-L/rig

有问题或者建议欢迎开 Issue,觉得有用的话给个 Star 就是最大的支持。


声明

本文借助 Claude Opus 4.6 润色。当然,脚本也是 😀

别再手动配环境了——我写了个工具叫 rig
https://nyanners.moe/rig-dev-env-setup
作者
Zero
发布于
2026-02-14
许可协议
CC BY-NC-SA 4.0