11 个版本 (7 个重大更新)
0.8.0 | 2024年6月16日 |
---|---|
0.6.0 | 2023年12月28日 |
0.5.0 | 2023年3月20日 |
0.4.1 | 2022年11月30日 |
0.2.1 | 2022年7月28日 |
#823 in 命令行工具
每月134 次下载
240KB
6K SLoC
Clyde
Clyde 是预构建应用程序的包管理器。
它在 Linux、macOS 和 Windows 上运行。
动机
您想安装 ripgrep、fd 或 fzf 等工具的最新版本,但
- 它们在您的发行版中不可用,或者可用的版本太旧,您不想破坏您的系统。
- 您不想考虑在哪里安装它们,添加到 $PATH 或使它们的 man 页面可用。
- 当需要更新它们时,您不想记得如何安装它们。
您没有在需要这些工具的机器上拥有 root 权限,因此安装系统包不是一个选择。
您想将工具版本固定以创建可重复的平台。
您担心供应链攻击(请参阅安全部分)。
入门
安装 Clyde
要开始,您需要自己下载 Clyde 二进制文件。Clyde 可以更新自身,但首先需要手动安装。您可以
-
从 发布页面 下载预构建的存档。
-
从 https://builds.agateau.com/clyde 下载
main
分支的预构建存档。 -
自行构建。Clyde是用 Rust 编写的,所以如果您已安装 Rust 工具链,则可以使用
cargo install clyde
安装它。
接下来,确保已安装 git:Clyde 使用 git 下载和更新 Clyde 商店(此要求可能在将来取消)。
设置您的 Clyde 主目录
Clyde 在“Clyde 主目录”中安装所有应用程序:在您的家目录默认缓存目录中创建的目录。
假设您已下载了 Clyde 存档,解压缩并切换到其目录。
运行 ./clyde setup
。这将在其中创建 Clyde 主目录,并克隆 Clyde Store。
$ ./clyde setup
[I] Setting up Clyde in "/home/demo/.cache/clyde"
Cloning into '/home/demo/.cache/clyde/store'...
remote: Enumerating objects: 1790, done.
remote: Counting objects: 100% (1790/1790), done.
remote: Compressing objects: 100% (653/653), done.
remote: Total 1790 (delta 1132), reused 1745 (delta 1113), pack-reused 0
Receiving objects: 100% (1790/1790), 499.73 KiB | 123.00 KiB/s, done.
Resolving deltas: 100% (1132/1132), done.
[I] Creating Clyde database
[I] Creating activation script
All set! To activate your Clyde installation, add this line to your shell startup script:
. /home/demo/.cache/clyde/scripts/activate.sh
将创建的激活脚本添加到您的 shell 启动脚本中,并重新启动您的 shell。
您现在可以开始使用Clyde了。让我们安装ripgrep。
clyde install ripgrep
检查它是否运行正常。
rg --help
检查您是否能阅读它的man页。
man rg
检查自动补全是否工作正常。
$ rg --regex<tab>
--regexp -- specify pattern
--regex-size-limit -- specify upper size limit of compiled regex
命令
clyde setup
设置Clyde:设置Clyde存储库,并创建一个激活脚本。所有更改都在“Clyde前缀”中完成(请参阅“文件夹层次结构”部分)。
Clyde存储库包含Clyde可以安装的所有包的列表。
clyde search foobar
在Clyde存储库中搜索名称或描述中包含“foobar”的包。
clyde install foobar[@版本]
安装foobar
包,如果设置了@version
限制,则遵循该限制。
@version
语法遵循Cargo对语义版本的解释。
这使得语法有点令人惊讶:clyde install foobar@1.2.3
可以安装1.2.4版本,甚至1.3.0版本,因为Cargo认为它们是兼容的。
要真正固定版本,您必须使用foobar@=1.2.3
。要安装最新的1.2版本,使用'foobar@1.2.*'
或foobar@~1.2
。
这种语法可能会在未来发生变化。
clyde uninstall foobar
卸载foobar
包。也可以称为clyde remove foobar
。
clyde show foobar
显示有关foobar
包的详细信息。
clyde update
更新Clyde存储库,以便Clyde了解新包或现有包的新版本的可用性。
clyde upgrade
将所有包升级到最新版本。如果包使用@version
限制安装,则强制执行该限制。
clyde doc foobar
显示foobar
包提供的文档文件列表。让您选择一个,并用合适的应用程序阅读它。
clyde doc
会查找一个分页器来显示文本文件。您可以在$CLYDE_PAGER
或$PAGER
中设置一个。如果没有设置这些变量,它将回退到一个硬编码的分页器程序列表。
常见问题解答
Clyde是否比curl <url> | bash
更安全?
是的,但您仍然需要小心。
它更安全,因为Clyde检查所有下载的存档的完整性(Clyde存储库包含所有已知存档的sha256校验和),这使得攻击者更难欺骗您安装损坏的存档。
这意味着如果攻击者控制了一个应用开发者的GitHub账户,并用其他存档替换了某些发布工件,Clyde将拒绝安装它们。然而,它并不能保护您免受攻击者发布应用程序新版本的情况。为了防止这种情况,您需要固定版本号。
Clyde不提供应用程序沙盒。
Clyde包是由Clyde构建的吗?
不,Clyde安装应用程序开发者生成的二进制文件,而不是重新构建它们(与Homebrew等项目不同)。
这意味着即使Clyde正确安装了软件包,也不能保证软件包能在您的机器上运行。这在旧的Linux安装中尤其如此:由应用程序开发者负责提供适用于您的系统的二进制文件。
如果某个软件包以前可以运行,但新版本不行,则可以使用@version
语法将安装固定到最新的可用版本。
Clyde软件包列表存储在哪里?
Clyde软件包在Clyde Store仓库中定义。clyde setup
将在您的机器上克隆此仓库。clyde update
将从中拉取最新的更改。
我如何请求新的软件包?
在Clyde商店仓库上提交一个问题。
我如何添加新的软件包?
遵循创建软件包文档。
类似项目
还有其他与Clyde类似的项目。本节列出了其中一些,以及它们与Clyde的不同之处。
依赖关系
~79MB
~1.5M SLoC