为什么我安装的命令没有显示在“cargo --list”中?

问题描述 投票:0回答:1

我有两个系统,一个是全新安装的Linux,另一个是Mac。

在 macOS 上,当我运行

cargo --list --verbose
时,我可以看到所有内置和外部安装的货物命令:

% cargo --list --verbose
Installed Commands:
    add                  Add dependencies to a Cargo.toml manifest file
    b                    alias: build
    bench                Execute all benchmarks of a local package
    build                Compile a local package and all of its dependencies
    build-bpf            /Users/username/.local/share/solana/install/active_release/bin/cargo-build-bpf
    build-sbf            /Users/username/.local/share/solana/install/active_release/bin/cargo-build-sbf
    ...
 

然而,在 Linux 系统上,尽管安装了相同的软件,但不显示外部命令:

% cargo --list --verbose
Installed Commands:
    add                  Add dependencies to a Cargo.toml manifest file
    b                    alias: build
    bench                Execute all benchmarks of a local package
    build                Compile a local package and all of its dependencies
    c                    alias: check
    ...

但是我可以看到同一目录中存在相同的文件:

# ls -la ~/.local/share/solana/install/active_release/bin

-rwxr-xr-x 1 username group  6924136 Mar  3 06:33 cargo-build-bpf
-rwxr-xr-x 1 username group 21154624 Mar  3 06:33 cargo-build-sbf

为什么我安装的命令没有显示在“cargo --list”中?

我已检查过

PATH
并且
~/.local/share/solana/install/active_release/bin
位于
PATH

我该怎么做才能确保它出现?我有其他工具可以调用

cargo build-bpf
,因此在 Cargo 之外运行二进制文件将不起作用。

rust cargo
1个回答
3
投票

回答我自己的问题以帮助他人:

Cargo 确实使用 PATH 来确定运行时显示的命令的位置

cargo --list
:

第 3 方子命令(即放置在 $PATH 中的名为 Cargo-foobar 的程序)...

但是 cargo 似乎有一个错误,其中波浪线 (

~
) 扩展处理不正确。

我将立即在 Cargo GitHub 中提出问题,但作为解决方法,请从包含要与 Cargo 一起使用的二进制文件的目录的 PATH 中删除波浪号字符

失败:

~/.local/somedir/bin

成功:

/home/runner/somedir/bin
© www.soinside.com 2019 - 2024. All rights reserved.