Ошибка при установке ящика с грузом: указанный пакет не имеет двоичных файлов
Я пытаюсь установить Rust crate на мою систему (Arch Linux), используя Cargo. Я могу искать ящики и найти то, что мне нужно, например:
$ cargo search curl | head -n3
Updating registry `https://github.com/rust-lang/crates.io-index`
curl (0.3.0) Rust bindings to libcurl for making HTTP requests
curl-sys (0.2.0) Native bindings to the libcurl library
Когда я пытаюсь установить его, я получаю следующую ошибку:
$ cargo install curl
Updating registry `https://github.com/rust-lang/crates.io-index`
error: specified package has no binaries
Что это значит? Должен ли я сначала создать его из исходного кода? Какой смысл Cargo, если он не устанавливает его в первую очередь?
$ uname -a
Linux 4.6.1-2-ARCH #1 SMP PREEMPT Thu Jun 2 15:46:17 CEST 2016 x86_64 GNU/Linux
$ rustc --version
rustc 1.9.0
$ cargo --version
cargo 0.10.0 (10ddd7d 2016-04-08)
1 ответ
cargo install
используется для установки бинарных пакетов, которые распространяются через crates.io.
Если вы хотите использовать ящик в качестве зависимости, добавьте его в свой Cargo.toml
,
Прочтите руководство по началу работы с Rust и руководство по началу работы для получения дополнительной информации. Короче:
cargo new my_project
cd my_project
echo 'curl = "0.3.0"' > Cargo.toml
Забавно, но вы можете установить стороннюю подкоманду Cargo под названием cargo-edit, используя cargo install
это облегчает изменение вашего Cargo.toml
файл для добавления зависимостей!
cargo install cargo-edit
cargo add curl
Важно отметить, что каждый проект Cargo управляет и компилирует отдельный набор зависимостей ( некоторая справочная информация). Таким образом, нет смысла устанавливать скомпилированную библиотеку. Исходный код для каждой версии библиотеки будет кэшироваться локально, избегая его загрузки несколько раз.