14 个稳定版本
1.7.1 | 2024年3月18日 |
---|---|
1.6.0 | 2023年10月2日 |
1.5.0 | 2022年4月21日 |
1.4.1 | 2021年9月7日 |
1.0.3 | 2020年7月18日 |
#101 in Cargo 插件
22KB
433 行
cargo-aur
cargo-aur
是 cargo
的新子命令,它为 Rust 项目生成发布 tarball 和 PKGBUILD 文件,以便可以在 Arch Linux 用户仓库(AUR)上发布。
无需额外配置。只要你的 Cargo.toml
有 常规字段,就会生成一个包含所有必要部分的 PKGBUILD。
安装
猜猜看?cargo-aur
本身就在 AUR 上!你可以使用 AUR 兼容的包管理器(如 aura
)来安装它。
sudo aura -A cargo-aur-bin
...或者通过 cargo
cargo install cargo-aur
用法
基础
导航到 Rust 项目,并运行
cargo aur
这将生成一个 foobar-1.2.3-x86_64.tar.gz
tarball 和一个位于 target/cargo-aur
的 PKGBUILD。
如果你愿意,现在可以运行 makepkg
以确保你的软件包可以实际构建。
> makepkg
==> Making package: cargo-aur-bin 1.0.0-1 (Wed 10 Jun 2020 08:23:46 PM PDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
... etc ...
==> Finished making: cargo-aur-bin 1.0.0-1 (Wed 10 Jun 2020 08:23:47 PM PDT)
请注意,构建的软件包自身以 -bin
结尾,这遵循了 AUR 标准。
到此为止,取决于你
- 在 Github/Gitlab 上创建一个官方的
Release
,并附上cargo aur
生成的原始二进制 tarball。 - 将PKGBUILD复制到一个跟踪您包发布的git仓库。
- 运行
makepkg --printsrcinfo > .SRCINFO
。 - 提交这两个文件并推送到AUR。
如果需求足够,这些步骤中的某些可能在将来的某个时间点在cargo aur
中自动化。
自定义二进制名称
如果您在Cargo.toml
中指定了[[bin]]
部分并设置了name
字段,这将用作在PKGBUILD中安装的二进制名称。
depends
和optdepends
如果您的包在运行时需要其他Arch包,您可以在Cargo.toml
中这样指定
[package.metadata.aur]
depends = ["nachos", "pizza"]
optdepends = ["sushi", "ramen"]
这些设置将被复制到您的PKGBUILD中。
包括额外的文件
可以使用files
列表来指定要复制到用户文件系统的初始文件。所以这
[package.metadata.aur]
files = [["path/to/local/foo.txt", "/usr/local/share/your-app/foo.txt"]]
将得到这个结果
package() {
install -Dm755 your-app -t "$pkgdir/usr/bin"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 "path/to/local/foo.txt" "$pkgdir/usr/local/share/your-app/foo.txt"
}
静态二进制文件
使用--musl
运行以产生通过MUSL静态链接的发布二进制文件。
> cargo aur --musl
> cd target/x86_64-unknown-linux-musl/release/
> ldd <your-binary>
not a dynamic executable
依赖项
~2–12MB
~99K SLoC