2 个版本
0.1.1 | 2024年4月9日 |
---|---|
0.1.0 | 2024年4月8日 |
167 在 操作系统 中
17KB
231 行
Darling
Declarative And Reproducible LINux Generalized
Linux 的一个可扩展且声明式的包管理系统。
Darling 允许管理几乎所有形式的现有包管理器,例如
- 操作系统包管理器如
pacman
、apt
、dnf
等。 - NodeJS 全局包
- Visual Studio Code 扩展
... 以及更多。
安装
手动
每次将新模块添加到 darling
时,都必须从源代码重新构建代码以包含新的 Rust 库。因此,darling
的源代码必须始终存储在您的机器上。默认位置无需更改配置,是将源代码放在 ~/.local/share/daring/soure
。您可以在那里找到它如下
git clone https://github.com/darling-package-manager/darling.git
mkdir -p ~/.local/share/darling
mv darling ~/.local/share/darling/source
在您的 .bashrc
(或您编辑 $PATH
的任何地方)添加
export $PATH="$PATH:~/.local/share/darling/source/target/release
此外,请确保至少构建项目一次,通过在 source
目录中运行 cargo build --release
进入 source
目录。之后,当添加新模块时,darling
将重新构建自身。
实现 Darling
Darling 被特别设计为可扩展的 而无需修改 Darling 本身。这意味着新的包相关工具可以为 Darling 添加自己的支持。 darling
使用非常具体的协议来创建模块。过程如下
- 创建一个 Rust(库)项目。 它必须以
darling-
开头。例如,cargo new darling-example --lib
。确保您的名称在crates.io
上未被占用。 - 使用
cargo add darling-api
将darling-api
添加到您的依赖项中。 - 创建一个实现
darling::PackageManager
的空结构体。- 确保
get_name()
函数在所有调用中返回一致值,并且它不返回"module"。module
是darling用来管理自身的内置保留名称。它应该与其他darling模块唯一,否则它们将不兼容。通常,将其作为你的crate名称,不包含darling-
前缀。例如,
- 确保
- 在你的结构体中声明一个
pub static
变量,命名为PACKAGE_MANAGER
,使其可以从crate根目录访问。 - 使用
cargo publish
在crates.io
上发布你的crate
依赖关系
~5–16MB
~162K SLoC