Repolode
jetify-com

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. 1

    在新的空文件夹中打开终端并初始化 Devbox

    devbox init
  2. 2

    从 Nix 添加软件包(示例:Python 3.10)

    devbox add python@3.10
  3. 3

    启动一个已安装这些工具的 shell

    devbox shell
  4. 4

    先运行 README 中的官方安装脚本(它会将远程脚本通过管道交给 bash 执行)

使用前须知

  • 软件包来自 Nix 注册表,因此 Devbox 底层依赖基于 Nix 的工具链。

标签

#dev-environment#nix#containers#virtual-environment#package-manager#reproducible-builds#devcontainer#build-system#build-tool#buildpack

常见问题

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 数据每日更新。

相关项目