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

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

Другие вопросы по тегам