#arch-linux #aur #cargo-toml #cargo #cargo-subcommand #package-manager #subcommand

bin+lib cargo-aur

为在 Arch Linux 用户仓库(AUR)上发布做准备

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 插件

MIT 许可证

22KB
433

cargo-aur

Build AUR version

cargo-aurcargo 的新子命令,它为 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 标准。

到此为止,取决于你

  1. 在 Github/Gitlab 上创建一个官方的 Release,并附上 cargo aur 生成的原始二进制 tarball。
  2. 将PKGBUILD复制到一个跟踪您包发布的git仓库。
  3. 运行makepkg --printsrcinfo > .SRCINFO
  4. 提交这两个文件并推送到AUR。

如果需求足够,这些步骤中的某些可能在将来的某个时间点在cargo aur中自动化。

自定义二进制名称

如果您在Cargo.toml中指定了[[bin]]部分并设置了name字段,这将用作在PKGBUILD中安装的二进制名称。

dependsoptdepends

如果您的包在运行时需要其他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