QuickRust è l’unica cosa che installi: porta con sé le proprie toolchain Rust, quindi non ti serve rustup. Per sapere che cosa cambia setup e perché, vedi Perché QuickRust possiede il proprio ambiente.
Installa una release
QuickRust è pubblicato nel repository di pacchetti di MachineFabric e come archivio per ciascuna piattaforma. Ognuno di questi mette il programma qrust sulla tua macchina; qrust setup lo rende poi il tuo cargo.
Con Homebrew (macOS, Linux):
brew install machinefabric/tap/quickrust
qrust setup
Con apt (Debian, Ubuntu):
curl -fsSL https://release.machinefabric.com/packages/keys/repo-signing-prod.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/machinefabric.gpg
echo "deb [signed-by=/usr/share/keyrings/machinefabric.gpg] https://release.machinefabric.com/packages/apt stable main" \
| sudo tee /etc/apt/sources.list.d/machinefabric.list
sudo apt update && sudo apt install quickrust
qrust setup
Con dnf (Fedora, RHEL):
sudo tee /etc/yum.repos.d/machinefabric.repo <<'REPO'
[machinefabric]
name=MachineFabric
baseurl=https://release.machinefabric.com/packages/rpm
enabled=1
gpgcheck=1
gpgkey=https://release.machinefabric.com/packages/keys/repo-signing-prod.asc
REPO
sudo dnf install quickrust
qrust setup
Da un archivio (su qualsiasi piattaforma, ed è il metodo su Windows). Ogni release è elencata nel manifest delle release, https://release.machinefabric.com/quickrust/manifest, con le piattaforme per cui è stata compilata e lo SHA-256 di ciascun archivio. L’archivio di una piattaforma si trova in
https://release.machinefabric.com/quickrust/release/<version>/qrust-<version>-<platform>.tar.gz
https://release.machinefabric.com/quickrust/release/<version>/qrust-<version>-windows-x86_64.zip
dove <platform> è uno tra darwin-arm64, darwin-x86_64, linux-x86_64, linux-arm64 (entrambe le build Linux sono statiche e funzionano su qualsiasi distribuzione) (ciascuno un .tar.gz) e windows-x86_64 (uno .zip). Scaricalo, confronta il suo SHA-256 con quello del manifest, estrailo ed esegui setup da lì:
version=0.150.0 # l'ultima versione del canale release è nel manifest
platform=linux-x86_64
curl -fLO "https://release.machinefabric.com/quickrust/release/$version/qrust-$version-$platform.tar.gz"
sha256sum "qrust-$version-$platform.tar.gz" # confrontalo con lo sha256 del manifest (macOS: shasum -a 256)
tar xzf "qrust-$version-$platform.tar.gz" # estrae quickrust/
quickrust/qrust setup
Su Windows (PowerShell):
$version = "0.150.0"
Invoke-WebRequest "https://release.machinefabric.com/quickrust/release/$version/qrust-$version-windows-x86_64.zip" -OutFile qrust.zip
(Get-FileHash qrust.zip -Algorithm SHA256).Hash # confrontalo con lo sha256 del manifest
Expand-Archive qrust.zip -DestinationPath . # estrae quickrust\
.\quickrust\qrust.exe setup
qrust setup copia qrust e qrust-rustc-wrapper in ~/.qrust/bin e installa Rust stable, quindi la directory estratta può essere eliminata in seguito, e una copia installata da un gestore di pacchetti è soltanto il punto da cui è stato avviato setup. Gli argomenti scelgono che cosa fa setup (più sotto):
qrust setup --no-modify-path
Se il manifest non elenca la tua piattaforma per una release, quella release non ha una build per essa: installa invece dal sorgente.
Quando setup ha terminato, apri una nuova shell, oppure esegui source sul file che indica:
. "$HOME/.qrust/env"
Installa dal sorgente
Per questa sola build ti serve una toolchain Rust 1.80 o più recente:
git clone https://github.com/machinefabric/quickrust
cd quickrust
cargo build --release --locked
target/release/qrust setup
Mantieni --locked: senza di esso Cargo sceglie le versioni più recenti delle dipendenze, e alcune richiedono un Rust più recente della 1.80. qrust setup copia qrust e qrust-rustc-wrapper in ~/.qrust/bin, quindi il checkout può essere eliminato in seguito.
Scegli che cosa fa setup
-
Se gestisci
PATHda solo (dotfile, CI, container), passa--no-modify-pathe metti tu stesso~/.qrust/binper primo inPATH:qrust setup --no-modify-path export PATH="$HOME/.qrust/bin:$PATH" - Se vuoi come prima toolchain una diversa da stable, passala:
qrust setup --toolchain 1.98. Se non ne vuoi installare nessuna adesso, passa--toolchain none; la prima build installerà poi la toolchain di cui ha bisogno. - Se vuoi la home di QuickRust in una posizione diversa da
~/.qrust, impostaQRUST_HOMEprima di eseguire setup e mantienila impostata in ogni shell.
Setup importa, una sola volta, ciò che è tuo da ~/.cargo (o $CARGO_HOME): le credenziali dei registry e le tabelle [registries], [registry], [source], [net] e [http] del suo config.toml. Stampa ciò che ha importato e ciò che non ha importato. Una tabella che non ha importato (per esempio [build]) si applica comunque ai progetti sotto la tua directory home, perché Cargo legge ~/.cargo/config.toml come configurazione di ogni directory sottostante; per i progetti altrove non si applica. Se vuoi una tabella del genere per ogni build, copiala in ~/.qrust/cargo/config.toml. Eseguire di nuovo qrust setup ripara un’installazione danneggiata e non importa mai una seconda volta.
Se setup si ferma perché una voce in ~/.qrust/bin “esiste e non è QuickRust”, sposta altrove quel file ed esegui di nuovo setup.
Verifica l’installazione
qrust doctor
doctor stampa quale QuickRust è in esecuzione, la toolchain che usa la directory corrente e che cosa l’ha selezionata, il Cargo e il rustc che stanno dietro, le variabili d’ambiente rilevanti e la directory target del workspace. Termina con OK, oppure con FAIL e il numero di problemi (exit status 1), ciascun problema sulla propria riga FAIL più sopra.
Se riporta che il cargo in PATH non è quello di QuickRust, apri una nuova shell; se non basta, un’altra directory (spesso ~/.cargo/bin) viene prima di ~/.qrust/bin nei tuoi file di avvio.
Aggiorna QuickRust
qrust self update
Installa l’ultima release del canale su cui è stato pubblicato questo QuickRust (release o nightly; qrust doctor dice quale, nella sua release line), al posto di quello in esecuzione in ~/.qrust/bin. Se sei già all’ultima release, lo dice e non cambia nulla.
Nulla viene installato sulla fiducia. QuickRust legge prima il charter del registro, che deve essere firmato da MachineFabric e dire dove si trova il manifest delle release; poi il manifest delle release e la firma pubblicata accanto a esso, e accetta il manifest solo se la sua firma risale alle chiavi radice con cui questo QuickRust è stato compilato: una chiave di release certificata da due di quelle radici, per l’ambiente giusto, entro il suo periodo di validità, deve aver firmato esattamente i byte del manifest. L’archivio deve poi essere quello descritto dal manifest (SHA-256 e dimensione), e il binario al suo interno deve avviarsi e riportare la versione con cui è stato pubblicato. Se uno qualsiasi di questi controlli fallisce, l’aggiornamento si ferma indicando il motivo e non sostituisce nulla. Vedi Sicurezza e privacy.
Un QuickRust compilato dal sorgente non ha chiavi radice, e quindi nessuna release che possa verificare: qrust self update lo dice. Aggiornalo compilando il sorgente più recente.
Se le tue release provengono da un altro registro delle release, imposta self.update-url (o QRUST_UPDATE_URL) sulla sua ancora. Viene letto esattamente come il registro in cui è stato pubblicato questo QuickRust: solo dopo che MachineFabric gli ha dato un charter (il suo charter si trova in <url>/charter.json, per l’ambiente di questo QuickRust), e poi in base alla firma, non a dove si trova.
Una copia installata con un gestore di pacchetti viene aggiornata da quel gestore (brew upgrade quickrust, sudo apt upgrade quickrust, sudo dnf upgrade quickrust); è la copia da cui è stato avviato qrust setup, non quella in esecuzione. Esegui qrust self update per aggiornare quella in esecuzione.
Le toolchain vengono aggiornate separatamente: vedi Come scegliere e gestire le toolchain.
Disinstalla QuickRust
qrust self uninstall --yes
Questo rimuove ~/.qrust con tutto il suo contenuto (toolchain, programmi installati con qrust install, cache, registrazioni delle esecuzioni) e le righe che setup ha aggiunto ai file di avvio della tua shell (su Windows, la voce nel PATH dell’utente). Senza --yes si limita a dirti che cosa rimuoverebbe.
I file che QuickRust ha scritto in un repository su tua richiesta restano dove sono: .qrust/config.toml, .qrust/budgets.toml, .qrust/baselines/ e gli eventuali percorsi dei report che hai configurato. Eliminali tu stesso se non ti servono più.
rustup e ~/.cargo non vengono mai toccati da setup o dalla disinstallazione; se li avevi prima, Cargo puro torna a funzionare non appena QuickRust non c’è più.
Vedi anche
- Come provare QuickRust prima di farne il tuo cargo
- Come eseguire QuickRust in CI
- File e directory per tutto ciò che si trova sotto
~/.qrust - Comandi per ogni opzione di
setup,doctoreself