#bundle #package #cargo #debian-package

bin+lib cargo-packager

可执行打包器和捆绑器,作为 CLI 和库发布

18 个版本 (8 个破坏性更改)

0.10.1 2024 年 7 月 22 日
0.9.1 2024 年 6 月 26 日
0.7.0 2024 年 3 月 27 日
0.4.1 2023 年 12 月 27 日
0.3.0 2023 年 10 月 30 日

#109 in Cargo 插件

Download history 57/week @ 2024-04-27 15/week @ 2024-05-04 61/week @ 2024-05-11 10/week @ 2024-05-18 25/week @ 2024-05-25 175/week @ 2024-06-01 26/week @ 2024-06-08 16/week @ 2024-06-15 196/week @ 2024-06-22 190/week @ 2024-06-29 24/week @ 2024-07-06 9/week @ 2024-07-13 190/week @ 2024-07-20 84/week @ 2024-07-27 53/week @ 2024-08-03 18/week @ 2024-08-10

每月 347 次下载

Apache-2.0 OR MIT

320KB
6.5K SLoC

cargo-packager

cargo-packager splash

可执行打包器、捆绑器和更新器。一个 CLI 工具和库,用于为您的可执行文件生成安装程序或应用程序捆绑包。它还附带了一些有用的附加组件

支持的包

  • macOS
    • DMG (.dmg)
    • 捆绑 (.app)
  • Linux
    • Debian 包 (.deb)
    • AppImage (.AppImage)
    • Pacman (.tar.gz 和 PKGBUILD)
  • Windows
    • NSIS (.exe)
    • 使用 WiX 工具集的 MSI (.msi)

CLI

打包器作为 cargo 子命令在 crates.io 上发布,您可以使用 cargo 安装它

cargo install cargo-packager --locked

然后您需要配置您的应用程序,以便 CLI 可以识别它。配置可以在 Packager.tomlpackager.json 中进行,在您的项目目录中,或者修改 Cargo.toml 并包含此片段

[package.metadata.packager]
before-packaging-command = "cargo build --release"

一旦配置完您的应用程序,请运行

cargo packager --release

配置

默认情况下,打包器从存在的 Packager.tomlpackager.json 读取其配置,如果不存在,则从 Cargo.toml 中的 package.metadata.packager 表读取。您还可以使用 -c/--config CLI 参数指定自定义配置。

有关配置选项的完整列表,请参阅 https://docs.rs/cargo-packager/latest/cargo_packager/config/struct.Config.html

您还可以使用 GitHub 上的 模式文件 验证您的配置或在您的 IDE 中进行自动补全。

打包应用程序之前的构建

默认情况下,打包器不会构建您的应用程序,因此如果您的应用程序需要编译步骤,打包器有一个选项可以在打包应用程序之前执行一个shell命令,beforePackagingCommand

Cargo配置文件

默认情况下,打包器会查找使用debug配置文件构建的二进制文件,如果您的beforePackagingCommand使用cargo build --release构建应用程序,您还需要以发布模式运行打包器cargo packager --release,否则,如果您有一个自定义的cargo配置文件,您需要使用--profile命令行参数指定它cargo packager --profile custom-release-profile

此crate还作为库发布到crates.io,您可以将其集成到您的工具中,只需确保禁用默认的功能标志。

cargo add cargo-packager --no-default-features

功能标志

  • cli:启用特定于cli的功能和依赖项。默认启用。
  • tracing:启用tracing crate集成。

许可证

适用于适用的MIT或MIT/Apache 2.0。

依赖项

~14–30MB
~520K SLoC