brew creator 开发新的茶包管理器

Max Howell是流行的macOS包管理系统brew(Homebrew)的作者,他正在开发一个名为Tea的新包管理器,定位为brew开发的延续,超越了包管理器,提供了一个统一的、可运行的包管理基础设施具有分散的存储库。 该项目最初是作为一个多平台项目开发的(目前支持 macOS 和 Linux,Windows 支持正在开发中)。 该项目代码是用 TypeScript 编写的,并在 Apache 2.0 许可证下分发(brew 是用 Ruby 编写的,并在 BSD 许可证下分发)。

Tea 在概念上与传统的包管理器不同,它不使用“我想安装包”范例,而是使用“我想使用包”范例。 特别是,Tea 本身没有安装包的命令,而是使用环境生成来执行与当前系统不重叠的包内容。 包放置在单独的 ~/.tea 目录中,并且不绑定到绝对路径(它们可以移动)。

提供了两种主要的操作模式:进入可访问已安装软件包的环境的命令 shell,以及直接调用与软件包相关的命令。 例如,当执行“tea +gnu.org/wget”时,包管理器将下载 wget 实用程序和所有必需的依赖项,然后在已安装的 wget 实用程序可用的环境中提供 shell 访问。 第二个选项涉及直接启动 - “tea +gnu.org/wget wget https://some_webpage”,其中 wget 实用程序将安装并立即在单独的环境中启动。 可以组成复杂的链,例如,要下载white-paper.pdf文件并使用glow实用程序对其进行处理,您可以使用以下构造(如果缺少wget和glow,则会安装它们):tea + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow 发光 - 或者您可以使用更简单的语法:tea -X wget -qO- tea.xyz/white-paper | tea +charm.sh/glow 茶-X发光—

以类似的方式,您可以直接运行脚本、代码示例和单行代码,自动加载其运行所需的工具。 例如,运行“tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow”将安装Go工具包并使用参数“-yellow”执行colors.go脚本。

为了避免每次都调用 tea 命令,可以将其连接为虚拟环境的通用管理器和丢失程序的处理程序。 在这种情况下,如果正在运行的程序不可用,则会安装该程序,如果之前安装过该程序,则会在其环境中启动该程序。 $ deno zsh: 未找到命令: deno $ cd my-project $ deno tea: 安装 deno.land^1.22 deno 1.27.0 > ^D

在目前的形式中,Tea 可用的包收集在两个集合中 - pantry.core 和 pantry.extra,其中包括描述包下载源、构建脚本和依赖项的元数据。 pantry.core 集合包括主要的库和实用程序,由 Tea 开发人员进行维护和测试。 Pantry.extra 包含不够稳定或社区成员建议的软件包。 提供了一个 Web 界面来浏览包。

为 Tea 创建包的过程大大简化,只需创建一个通用的 package.yml 文件(示例),无需为每个新版本调整包。 包可以链接到 GitHub 以发现新版本并下载其代码。 该文件还描述了依赖关系并提供了受支持平台的构建脚本。 安装的依赖是不可变的(版本是固定的),这就消除了类似left-pad事件的情况的重复。

未来,计划创建不依赖于任何单独存储的去中心化存储库,并使用分布式区块链来存储元数据,并使用去中心化基础设施来存储包。 版本将由维护者直接认证并由利益相关者审查。 可以分发加密货币代币来为软件包的维护、支持、分发和验证做出贡献。

brew creator 开发新的茶包管理器


来源: opennet.ru

添加评论