
tea/cli:下一代跨平台包管理器
🛠️ 技术栈
- 使用 TypeScript 开发,提供全平台支持。
🌟 主要功能
- 自动化流程:一键式命令执行,无需预安装任何包。
- 虚拟环境:与操作系统完全隔离,确保稳定和安全。
- 可视化界面:支持 GUI,允许对软件包进行初步评估。
🎯 适用人群
- 开发者群体:从新手到专家皆适用。
🛡️ 解决问题
- 增强安全性:通过 GUI 进行软件包的预测试和评价。
- 便捷性:智能依赖和版本管理,减少开发者负担。
✨ 特色亮点
- 由 Homebrew 创始人打造,目标是让包管理更为公平、直观和安全。
Tea.xyz 是一款具有革新性的包管理工具,能智能处理软件依赖和版本,显著提升开发效率。其全新引入的可视化界面不仅增加了直观性,同时也增强了安全性,适用于各种级别的开发者。从安全到便捷,Tea.xyz 在多个维度上都带来了创新性的突破。
📦 安装指南
📦 基础安装
最简单的方式来安装 Tea 是使用我们提供的安装脚本:
bash
sh <(curl https://tea.xyz>)
🐟 对于 Fish Shell 用户
如果你是 fish
shell 的用户,你需要执行以下命令:
bash
sh <(curl https://tea.xyz | psub)
该脚本会被安装到 ~/.tea
目录,并进行初始化设置(会先征求你的同意)。查看源代码?点此查看。
⚠ Linux 和 WSL2 用户注意:可能需要先安装一些依赖。详见下方的 Linux / WSL 警告部分。
🤖 安装流程
- 步骤 1:首先,我们会进行环境检查。
- 步骤 2 :如果检查无误,Tea 将会被安装到
~/.tea
。 - 步骤 3 :我们会询问你是否需要启用魔法功能。
- 如果需要,我们会在你的
~/.shellrc
文件中添加相关配置。 - 如果不需要,安装程序会退出。
- 如果需要,我们会在你的
该安装脚本不仅用于初次安装,再次运行它会更新 Tea。此外,Tea 提供一键式命令来创建临时沙盒环境,这允许用户在不安装 Tea 或任何项目依赖的情况下尝试项目。更多信息,请参见 Tea 一键命令。
🛠️ 系统要求
- macOS >= 11
- Linux glibc >=2.28(参考这里)
- WSL >=2
⚠️ Linux / WSL 警告
在 Linux 系统上,你可能需要安装一些先决条件软件包。这是一个临时问题,我们正在解决中。具体先决条件列表正在这个脚本中维护。
🛠️ 使用指南
🛠️ 基本使用
使用 Tea 的"魔法"功能意味着只需输入所需的命令,Tea 会自动处理安装工具和所有依赖。
bash
$ node --eval 'console.log("node: hello world")'
tea: 正在安装 node 及其依赖项...
node: hello world
🚫 无魔法模式
如果你没有启用"魔法",在命令前添加 tea
前缀。
bash
$ tea node --version
tea: 正在安装 node 及其依赖项...
v19.8.1
🔄 版本选择
与大多数包管理器不同,Tea 允许你选择工具的版本。
bash
$ node^16 --version
tea: 正在安装 node 16...
v16.8.1
📜 脚本支持
Tea 通常能自动识别运行脚本所需的依赖。
bash
$ tea my-script.py
tea: 正在安装 Python...
# Tea 执行脚本
📦 复杂依赖
对于更复杂的依赖,你可以使用 +pkg
语法。
bash
$ tea +python.org +gnu.org/coreutils my-script.sh
tea: 正在安装依赖项...
# Tea 执行脚本
🎲 临时沙盒
Tea 提供一键命令来创建临时沙盒环境。
bash
$ sh <(curl tea.xyz) +python.org +gnu.org/coreutils https://example.com/my-script.sh
🌐 开发环境
进入项目目录,Tea 会自动加载所需的所有工具版本。
bash
$ cd my-node-project
$ node --version
16.8.1
$ cat .node-version
16
🖥️ IDE 支持
VSCode
如果你安装了 Tea 的"魔法",VSCode 将自动识别工具。你至少需要运行一次 tea --sync --env
或 tea -SE
。
其他编辑器
如果编辑器能从项目目录的 shell 获取环境信息,一切都会准备好。否则,我们推荐创建一个指向 tea
的符号链接。
bash
$ sudo ln -s ~/.tea/tea.xyz/v0/bin/tea /usr/local/bin/node
$ /usr/local/bin/node
tea: 正在安装 node...
🔄 更新包
更新已安装的包。
bash
$ tea --sync
# 进行更新
🖼️ 可视化界面(GUI)
引入 tea/gui
------ 一款可视化的包管理器,允许你快速浏览、安装和更新开源软件。

📥 下载 tea/gui
点击 这里 下载最新版本的 tea/gui
。
🌟使用场景
🌱 初学者入门
如果你是编程的初学者,Tea 提供了一个非常方便的方式来安装和运行多种编程语言。下面是几个例子,展示了如何使用 Tea 来安装和运行不同编程语言的简单程序。
安装并运行 Node.js
sh
$ tea node --eval 'console.log("node: hello world")'
输出:
javascript
installed: ~/.tea/nodejs.org/v20.5.0
node: hello world
安装并运行 Python
sh
$ tea python -c 'print("python: hello world")'
输出:
javascript
installed: ~/.tea/python.org/v3.11.5
python: hello world
安装并运行 Ruby
sh
$ tea ruby -e 'puts "ruby: hello world"'
输出:
javascript
installed: ~/.tea/ruby-lang.org/v3.2.2
ruby: hello world
安装并运行 Rust
sh
$ echo 'fn main() { println!("rust: hello world"); }' > temp.rs
$ tea rustc temp.rs && ./temp && rm temp.rs
输出:
javascript
installed: ~/.tea/rust-lang.org/v1.72.0
rust: hello world
安装并运行 Go
sh
$ echo 'package main; import "fmt"; func main() { fmt.Println("go: hello world") }' > temp.go
$ tea go run temp.go && rm temp.go
输出:
go
installed: ~/.tea/go.dev/v1.21.0
go: hello world
这些例子展示了 Tea 的强大功能,它可以自动为你安装所需的编程语言和依赖,并运行你的代码。这对于初学者来说是一个非常方便的工具。
🛠️ 开发者日常
创建 Python 虚拟环境
如果你是一个 Python 开发者,需要创建一个虚拟环境来隔离项目依赖。你可以在 pyproject.toml
文件中添加 YAML 前置内容来指定 Python 版本,然后 Tea 会自动设置好环境。
sh
$ cat <<EoYAML >> pyproject.toml
# ---
# dependencies:
# python.org: ^3.8
# ---
EoYAML
更新所有软件包
作为一个忙碌的开发者,你可能希望一键更新所有的软件包。Tea 提供了这样的功能。
sh
$ tea update --all
📦 包维护者
测试多个版本
如果你是一个库的维护者,你可能需要在多个版本的环境中测试你的库。你可以在 tea.yaml
文件中列出所有需要测试的环境,并使用 Tea 来快速切换。
sh
$ cat <<EoYAML >> tea.yaml
dependencies:
python.org: ^3.8 || ^3.9 || ^3.10
EoYAML
🚀 DevOps 工程师
环境一致性
DevOps 工程师需要确保开发、测试和生产环境的一致性。通过在项目的 tea.yaml
文件中明确指定所有依赖和版本,Tea 可以确保环境的一致性。
sh
$ cat <<EoYAML >> tea.yaml
dependencies:
nodejs.org: ^14
redis.io: ^6
EoYAML
🎨 前端开发者
切换不同的构建工具
前端开发者经常需要使用不同版本的构建工具,如 Webpack 或 Parcel。通过在 package.json
文件中添加一个特殊的 tea
节点,你可以为项目配置不同版本的构建工具。
json
{
"tea": {
"dependencies": {
"webpack.js.org": "^5"
}
}
}
这样,无论你处于哪个项目目录,只需输入相应的命令,Tea 就会自动为你准备好相应版本的环境。