如何使用 `cargo` 自定义安装?

How to customize installation with `cargo`?

假设我有一个标准的 Cargo 项目

my-package
├── Cargo.lock
├── Cargo.toml
└── src
    ├── bin
    │   └── an_executable.rs
    └── lib.rs

出于与其正常运行相关的原因,我需要以 root 身份安装可执行文件 an_executable 并打开 setuid bit。 我可以使用

从工作目录轻松地做到这一点
cargo build --release
sudo install -o root -g root -m 4755 -t /usr/local/bin target/release/an_executable

有没有办法配置安装过程(Cargo.toml 中的选项、自定义构建脚本...),以便在我尝试使用 cargo install my-package 安装时发生同样的情况?

不,这超出了 cargo 的范围。

作为替代方案,您可以使用标准 Makefile 控制构建包,并使用满足您需要的 install 目标。 this.

的调子

请记住,并非所有目标平台 - 特别是 Windows - 都有像 setuid.

这样的概念