【问题标题】:Run Rust program without cargo run在没有货物运行的情况下运行 Rust 程序
【发布时间】:2018-08-10 05:52:35
【问题描述】:

我构建了一个用 Rust 编写的简单 CLI,它使用命令 cargo run <ARGUMENTS> 执行。我希望能够从任何目录运行 CLI。我使用了 clap crate,并希望能够使用传递给 clap 的名称调用脚本:brainfast <ARGUMENTS>。我在 macOS 上运行。

【问题讨论】:

标签: rust command-line-interface


【解决方案1】:

这更像是一个通用问题(我认为也是一个重复的问题,但我找不到任何问题)。

您必须将由cargo build --release 生成的可执行文件(您可以在target/release/crate_name 中找到)复制到您的$PATH 中的一个文件夹中。

我不是 macOS 方面的专家,因此我无法告诉您 $PATH 中包含的文件夹是什么,但您可以通过打开终端并输入 echo $PATH 自行查找。使用其中一条路径,它应该在您的终端中可用,不带货物或使用任何路径。

作为替代方案,您可以将文件夹添加到您的 $PATH 变量并将其放在那里,例如

export PATH /home/foobar/.bin:$PATH
cp target/release/brainfast /home/foobar/.bin
brainfast abc.txt 1 3 99 u

【讨论】:

  • 将任何随机文件夹设置为 $PATH 并不是最好的主意(某些恶意应用可能会利用它)。
  • 你能举个例子吗?您始终可以将完整路径用作恶意应用程序,那么为什么要依赖 $PATH?
  • @hellow 如果目录(或任何父目录)可由与将目录添加到其路径的用户不同的用户写入,则会出现安全问题。如果您将自己限制在几个专用目录中,则更容易跟踪权限。
猜你喜欢
  • 2022-08-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 2012-11-13
  • 1970-01-01
  • 2016-10-21
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多