2016-06-08 61 views
12

Sto cercando di installare una cassa di Rust sul mio sistema (Arch Linux) utilizzando Cargo. Posso cercare per le casse e trovare quello che mi serve, per esempio:Errore nell'installazione di una cassa tramite carico: il pacchetto specificato non ha file binari

$ 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 

Quando provo a installarlo, ottengo il seguente errore:

$ cargo install curl 
    Updating registry `https://github.com/rust-lang/crates.io-index` 
error: specified package has no binaries 

Cosa significa? Devo prima costruirlo dalla fonte? Qual è il punto di Cargo se non lo installa in primo luogo?

$ 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) 

risposta

23

cargo install viene utilizzato per installare pacchetti binari che capita di essere distribuiti attraverso crates.io.

Se si desidera utilizzare una cassa come dipendenza, aggiungerla al numero Cargo.toml.

Leggi the Rust getting started guide e the Cargo getting started guide per ulteriori informazioni. In breve:

cargo new my_project 
cd my_project 
echo 'curl = "0.3.0"' > Cargo.toml 

In modo divertente, è possibile installare una terza parte Cargo sottocomando chiamato cargo-edit utilizzando cargo install che rende più facile per modificare il file Cargo.toml per aggiungere le dipendenze!

cargo install cargo-edit 
cargo add curl 

Una cosa importante da notare è che ogni progetto Cargo gestisce e raccoglie una serie separata di dipendenze (some background info). Quindi non ha senso installare una libreria compilata con . Il codice sorgente per ciascuna versione di una libreria verrà memorizzato nella cache locale, evitando di scaricarlo più volte.

+1

Questo è stato veloce e utile, grazie. – default

+4

@ 5chdn questo è il nostro motto qui nel tag Rust^_ ^ – Shepmaster