Подтвердить что ты не робот

Ошибка при установке ящика через груз: указанный пакет не имеет двоичных файлов

Я пытаюсь установить ящик Rust на моей системе (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)
4b9b3361

Ответ 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 управляет и компилирует отдельный набор зависимостей (некоторая справочная информация). Таким образом, не имеет смысла устанавливать скомпилированную библиотеку. Исходный код для каждой версии библиотеки будет кэшироваться локально, не загружая его несколько раз.