基于 Nix 的声明式、可复现开发环境,通过 devenv.nix 配置语言、服务和进程。
jetify-com/devbox
一款命令行工具,基于 Nix 包源为项目创建隔离、可复现的开发环境,无需容器即可使用。
- Star
- 12,447
- Fork
- 364
- 未关闭 Issue
- 409
- 最近提交
- 18小时前
这是什么?
Devbox 是一款命令行工具,用于创建彼此隔离的开发 shell 环境。开发者在 devbox.json 中列出项目所需的软件包,Devbox 即据此构建一个只包含这些工具的环境,与宿主机分离。它类似于项目级的包管理器,管理的是 Python、Go、Node 等操作系统级别的软件包,底层使用 Nix Package Registry 提供的海量包版本。
环境直接运行在本机上,而不是放在虚拟机中,因此文件读写和命令执行保持原生速度。同一份定义还可以用于生成 VS Code 的 devcontainer、生产镜像所用的 Dockerfile,或云端开发环境,团队只需维护一份配置。
Devbox 使用 Go 编写,采用 Apache 2.0 许可证,由 Jetify 开发,内部基于 Nix 解析并隔离软件包。
核心功能
- 01在 devbox.json 中声明项目工具,方便团队共享同一套配置。
- 02无需改动宿主系统,即可安装并运行指定版本的系统级软件包。
- 03通过 devbox shell 进入交互式环境,或用 devbox run 执行单条命令。
- 04基于同一份环境定义生成 devcontainer 和 Dockerfile。
- 05可使用 Nix Package Registry 中庞大的包版本目录。
适用场景
- 让项目的所有贡献者使用完全相同版本的编译器和命令行工具。
- 在不改动全局安装的前提下试用新工具或新版本语言。
- 同时维护多个依赖同一工具不同版本的项目。
- 构建生产镜像时使用与本地开发一致的工具链。
快速上手
- 1
在新的空文件夹中打开终端并初始化 Devbox
devbox init - 2
从 Nix 添加软件包(示例:Python 3.10)
devbox add python@3.10 - 3
启动一个已安装这些工具的 shell
devbox shell - 4
先运行 README 中的官方安装脚本(它会将远程脚本通过管道交给 bash 执行)
使用前须知
- 软件包来自 Nix 注册表,因此 Devbox 底层依赖基于 Nix 的工具链。
标签
常见问题
- devbox 是什么?
- 一款命令行工具,基于 Nix 包源为项目创建隔离、可复现的开发环境,无需容器即可使用。 Devbox 是一款命令行工具,用于创建彼此隔离的开发 shell 环境。开发者在 devbox.json 中列出项目所需的软件包,Devbox 即据此构建一个只包含这些工具的环境,与宿主机分离。它类似于项目级的包管理器,管理的是 Python、Go、Node 等操作系统级别的软件包,底层使用 Nix Package Registry 提供的海量包版本。
- devbox 可以免费使用吗?用的什么许可证?
- devbox 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- devbox 还在维护吗?
- 活跃维护中。devbox 最近一次提交是在 2026年11月6日。
- devbox 适合用来做什么?
- 让项目的所有贡献者使用完全相同版本的编译器和命令行工具。 在不改动全局安装的前提下试用新工具或新版本语言。 同时维护多个依赖同一工具不同版本的项目。 构建生产镜像时使用与本地开发一致的工具链。
- devbox 怎么安装和运行?
- 在新的空文件夹中打开终端并初始化 Devbox: devbox init 从 Nix 添加软件包(示例:Python 3.10): devbox add python@3.10 启动一个已安装这些工具的 shell: devbox shell 先运行 README 中的官方安装脚本(它会将远程脚本通过管道交给 bash 执行)
- 在哪里获取 devbox?
- 源代码和安装说明在 GitHub 上:https://github.com/jetify-com/devbox
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Python 的应用组装与部署自动化工具,可重复构建 Python 程序及其依赖。
单头文件的 C 语言库,用 C 编写构建脚本,只需 C 编译器即可完成构建。
用纯 Python 定义任务的自动化与构建工具,只重新执行已变化的部分。
用 Rust 编写的极速 Python 包与项目管理工具,可替代 pip、virtualenv、pyenv 等多种工具。
将 Python 命令行应用安装到独立环境中运行,避免依赖冲突,也可免安装直接运行。