rust - 如何在 3 中安装 Rust crate?
问题描述
当我运行一个使用这个 in3-rs 板条箱的程序时,我得到一个错误。我希望安装它,因为我按照这里的说明进行操作:https ://crates.io/crates/in3
我安装了此处描述的要求:https : //crates.io/crates/in3 我使用的是 Ubuntu 18、cargo 1.49.0 和 rustc 1.49.0。我尝试分别安装 in3、in3-rs、in3-sys 和 async-std(使用 sudo cargo install )。每次我收到一条消息说“错误:指定的包......没有二进制文件”
我运行了这个命令:cargo install --list
我看到了这个:
ripgrep v12.1.1:
rg
我尝试使用各种不同的 Cargo.toml 文件。但是要安装 ripgrep crate,我不需要 Cargo.toml 文件。
我运行了这个命令:sudo cargo install in3
但我看到了这个:
[sudo] jdoe 的密码:更新 crates.io 索引错误:指定的包
in3 v0.1.7
没有二进制文件
输出中返回相关版本。我的 Ubuntu 服务器可以访问互联网。我用谷歌搜索了这个问题,我认为应该问关于 Rust 的问题。
我尝试了此链接具有的 Cargo.toml 文件内容的三个建议。
当我的 Cargo.toml 文件有这个节in3 = "0.1.7"
时,错误是可重现的。
当我的 Cargo.toml 文件有这两行时,我遇到了同样的错误:
[dependencies]
in3 = "0.0.2"
当我的 Cargo.toml 文件包含以下三行时,该错误第三次重现:
[dependencies]
async-std = "1.5.0"
in3 = "0.2.0"
为了重现问题,我运行了“sudo cargo install in3”
我还尝试sudo cargo install
将两个带有 [dependencies] 节的 Cargo.toml 版本一起使用(没有安装参数)。但是我在这些尝试中遇到了这个错误:
错误:无法解析清单
/opt/in3-3.1.2/rust/Cargo.toml
原因:此虚拟清单指定了一个 [dependencies] 部分,这是不允许的
我尝试将其用作 Cargo.toml (以及没有 [dependencies] 部分的另一个版本):
[package]
name = "in3"
version = "0.2.0"
edition = '2018'
[dependencies]
async-std = "1.5.0"
in3 = "0.2.0"
我看到了这个:
Updating crates.io index error: specified package `in3 v0.1.7` has no binaries
更新:我使用“sudo cargo build”作为我的 Cargo.toml 文件:
[package]
name = "in3"
version = "0.1.7"
edition = "2018"
[[bin]]
name = "in3"
path = "/home/jdoe/rust/contint.rs"
[dependencies]
async-std = "1.5.0"
in3 = "0.1.7"
有效。然后我跑了sudo cargo run
,它奏效了。但是当我跑的时候sudo cargo install in3
,我得到了一个错误。
我跑了这个: cargo install --list
但是 in3 仍然没有安装。我运行了一个 rust 程序,它确认没有安装 in3。
更新(更新):我跑了rustc foobar.rs
但我看到了这个:
错误[E0433]:无法解决:可能是缺少板条箱
in3
?--> foobar.rs:4:5 | 4 | 使用 in3::eth1::*; | ^^^ 也许是丢失的板条箱in3
?
如何安装 in3 板条箱?
解决方案
我想你可能误解了货物的包裹管理。由于in3
它是一个库而不是二进制包,因此您无法安装它。
cargo install
不安装依赖npm install
项pip install
。cargo install
会将二进制文件安装到您的本地文件系统(通常是 $HOME/.cargo/bin)中供您运行。
Cargo 会在你cargo run/check/build
. 您不需要安装依赖项。
您可能想要开始一个新的文件夹结构并尝试以下操作:
- 运行
cargo init
。这将创建一个新的二进制包 - 编辑
Cargo.toml
并添加in3
依赖项和版本。 - 修改
main.rs
文件以使用in3
库。 - 使用 运行程序
cargo run
。您会注意到 cargo 在编译程序时正在解决各种依赖关系。
有关 Cargo 的更多信息,这里是入门指南。
推荐阅读
- spotify - 音乐应用程序在什么基础上对流行歌曲进行分类?
- excel - 以特定顺序打印页面
- django - 我如何在自己的项目中使用其他应用程序 api?
- rust - 如何在 Rust 中使用 BufReader 而不是 read_to_string 读取文件的输入
- linux - 是否可以从 linux 远程服务器执行 sh 文件 GUI 应用程序并在本地计算机上查看它?
- asp.net - {|Form.Title|} 未在自定义 sitefinity 表单的电子邮件主题中显示表单标题
- c# - 如何在 .NET 2 项目中使用 .NET 4.7 程序集?
- apache-superset - Apache SuperSet 非常慢
- asp.net-core - Autofac注册IHttpContextAccessor
- java - 使用 Gson 使用默认值序列化 protobuf