Skip to content

Latest commit

 

History

History
154 lines (90 loc) · 6.35 KB

README-zh-CN.md

File metadata and controls

154 lines (90 loc) · 6.35 KB

Codex 📦

即时、简单、可预测地创建 Shell 与 Container

Join Discord License: Apache 2.0 version tests Built with Codex


它是什么?

Codex 是一个可以让你轻松地创建隔离环境的 shell 与 container 的命令行工具。首先定义你开发环境中所需的软件包列表,随后 Codex 使用该定义来为你的应用程序创建一个隔离的环境。

在实践中,Codex 的工作方式类似于像 yarn 这样的软件包管理器——只不过它所管理的软件包是操作系统级别的。(这些包你通常会通过 brewapt-get 来进行安装)。使用 Codex,你可以从 Nix 软件包注册表中安装超过 400,000 个软件包版本。

Codex最初由 Khulnasoft 进行开发,其内部由 nix 驱动。

示例

你可以点击下面的按钮在浏览器中试用 Codex:

Open In Codex.khulnasoft.com

下面的例子创建了一个带有 python 2.7go 1.18 的开发环境,尽管这些包并没有在底层机器中被安装。

screen cast

安装 Codex

使用以下安装脚本获取最新版本的 Codex:

curl -fsSL https://raw.githubusercontent.com/khulnasoft/CodeX/master/codex | bash

Codex 文档中阅读更多内容。

好处

为团队中的每一个人提供一个统一的 Shell

通过 codex.json 文件来声明项目中所需要的工具列表,并运行 codex shell。这样,参与项目工作的每一个人都会获得一个与这些工具完全版本的 shell 环境。

尝试新工具而不污染原先配置的环境

由 Codex 创建的开发环境与你的笔记本电脑中的其他东西是隔离的。有什么工具你想尝试,却又不想把环境弄得一团糟?可以把这个工具添加到 Codex 的 shell 中,而当你不再需要它的时候,就可以把它删除——同时保持你的笔记本电脑始终是原始的状态。

不以牺牲速度为代价

Codex可以在你的笔记本电脑上直接创建隔离环境,而不需要额外的虚拟化以至于使得你的文件系统或每个命令都变得缓慢。当你准备打包时,就可以把它变成等效的 container。

同版本冲突说再见

你是否正在处理多个项目,而所有这些项目都需要同一个二进制文件的不同版本?与其尝试在你的笔记本电脑上安装同一个二进制文件的冲突版本,不如为每个项目创建一个隔离环境,并为每个项目使用你想要的任何版本。

随身携带你的开发环境

Codex 的开发环境是可移植的。我们使您能够只声明一次环境,并以多种不同方式使用这个单一定义,包括:

  • 通过 codex shell 创建的本地 shell
  • 可在 VSCode 中使用的开发容器
  • 一个 Dockerfile,这样你可以用与你开发时使用的完全相同的工具构建生产镜像
  • 在云端的远程开发环境,该环境与本地环境完全一致

快速入门:快速又确定的 shell

在这个快速入门中,我们将创建一个安装了特定工具的开发 shell。这些工具只有在使用这个 Codex shell 时才能使用,以确保我们不会污染你的机器。

  1. 在一个新的空文件夹中打开一个终端。

  2. 初始化 Codex:

    codex init

    这将在当前目录下创建一个 codex.json 文件。你应该把它提交到源码控制里。

  3. Nix 添加命令行工具。例如,要添加Python 3.10:

    codex add python310

    Nixhub.io 上搜索更多软件包。

  4. 你的 codex.json 文件记录了你所添加的软件包,它现在应该看起来是这样的:

    {
       "packages": [
          "python310"
        ]
    }
  5. 启动一个安装了这些工具的新shell:

    codex shell

    你可以看出你是在 Codex shell 中(而不是你的普通终端),因为 shell 的提示和目录已经改变。

  6. 使用你喜欢的工具。

    在这个例子中,我们安装了 Python 3.10,所以让我们使用它吧。

    python --version
  7. 你的常规工具也是可用的,包括环境变量和配置设置。

    git config --get user.name
  8. 要退出 Codex shell 并返回到你的常规 shell:

    exit

Codex 文档快速入门中阅读更多内容。

额外命令

codex help,用来查看所有的命令。

请参阅 CLI 参考以获取完整的命令列表。

加入我们的开发者社区

贡献

Codex 是一个开源项目,所以欢迎贡献。在提交拉取请求之前,请阅读我们的贡献指南

Codex 开发 README

相关工作

感谢 Nix 所提供的独立的shell。

翻译

许可证

本项目在 Apache 2.0 License 下自豪地开放源代码。