1. Installation / Désinstallation
1.1 Méthode 1 : via apt
1.1.1 Installation de Rust
En ligne de commande, lancer les commandes suivantes
sudo apt update
sudo apt install rustc
Pour vérifier la version installée :
rustc -V
Ce qui donne ici :
rustc 1.66.1 (90743e729 2023-01-10) (built from a source tarball)
1.1.2 Désinstallation
Lancer la commande suivante :
sudo apt remove rustc
1.2 Méthode 2 : à la main
1.2.1 Installation manuelle
Il est possible de vouloir une des dernières versions de Rust, plus évoluée que celle fournie par la distribution Ubuntu (via apt)
Ainsi comme on peut le voir ci dessous la dernière version stable disponible est « 1.71.0 » alors que celle installée via apt est « 1.66.1 » :

Pour installer manuellement, lancer la ligne de commande suivante :
curl https://sh.rustup.rs -sSf | sh
- à l’adresse https://sh.rustup.rs il y a un script Bash d’installation de Rust (rustup-init.sh)
- curl est un outil permettant de télécharger un contenu web (pas que..)
- options curl :
- f : si erreur pas d’affichage
- s : mode silencieux
- S : montrer les erreurs
- options curl :
- Ainsi curl va télécharger le contenu du script bash « rustup-init.sh » à l’adresse « https://sh.rustup.rs » puis une fois fini fait executé ce script à « sh » ( | sh).
Ce qui propose ceci :
Welcome to Rust! This will download and install the official compiler for the Rust programming language, and its package manager, Cargo. Rustup metadata and toolchains will be installed into the Rustup home directory, located at: /home/xavior/.rustup This can be modified with the RUSTUP_HOME environment variable. The Cargo home directory is located at: /home/xavior/.cargo This can be modified with the CARGO_HOME environment variable. The cargo, rustc, rustup and other commands will be added to Cargo's bin directory, located at: /home/xavior/.cargo/bin This path will then be added to your PATH environment variable by modifying the profile files located at: /home/xavior/.profile /home/xavior/.bashrc You can uninstall at any time with rustup self uninstall and these changes will be reverted. Current installation options: default host triple: x86_64-unknown-linux-gnu default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >
En choisissant 1 pour l’installation par défaut :
info: profile set to 'default' info: default host triple is x86_64-unknown-linux-gnu info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu' info: latest update on 2023-08-03, rust version 1.71.1 (eb26296b5 2023-08-03) info: downloading component 'cargo' info: downloading component 'clippy' info: downloading component 'rust-docs' 13.6 MiB / 13.6 MiB (100 %) 12.0 MiB/s in 1s ETA: 0s info: downloading component 'rust-std' info: downloading component 'rustc' 63.5 MiB / 63.5 MiB (100 %) 25.5 MiB/s in 2s ETA: 0s info: downloading component 'rustfmt' info: installing component 'cargo' info: installing component 'clippy' info: installing component 'rust-docs' 13.6 MiB / 13.6 MiB (100 %) 8.4 MiB/s in 1s ETA: 0s info: installing component 'rust-std' 26.1 MiB / 26.1 MiB (100 %) 12.7 MiB/s in 1s ETA: 0s info: installing component 'rustc' 63.5 MiB / 63.5 MiB (100 %) 14.5 MiB/s in 4s ETA: 0s info: installing component 'rustfmt' info: default toolchain set to 'stable-x86_64-unknown-linux-gnu' stable-x86_64-unknown-linux-gnu installed - rustc 1.71.1 (eb26296b5 2023-08-03) Rust is installed now. Great! To get started you may need to restart your current shell. This would reload your PATH environment variable to include Cargo's bin directory ($HOME/.cargo/bin). To configure your current shell, run: source "$HOME/.cargo/env"
Il reste à configurer la variable environnement du PATH pour inclure le répertoire binaire CARGO :
source "$HOME/.cargo/env"
La commande ne produit rien en terme d’affichage. En revanche, le fichier ~.profile a bien été modifié et il contient maintenant la variable environnement pour Rust (PATH=/home/xavior/.cargo/bin…..).
Maintenant, vérification finale :
rustc -V
ce qui donne :
rustc 1.71.1 (eb26296b5 2023-08-03)
La dernière version stable a été installée.
1.2.2 Désinstallation manuelle
Lancer la ligne de commande suivante :
rustup self uninstall
Puis confirmer :
Thanks for hacking in Rust! This will uninstall all Rust toolchains and data, and remove $HOME/.cargo/bin from your PATH environment variable. Continue? (y/N)
Et c’est fini …
II Mon premier programme
Créer le répertoire de votre choix et aller dedans.
Créer un fichier « main.rs » :
touch main.rs
Le remplir comme suit :
fn main() { println!("Hello world!") }
On va compiler le fichier :
rustc main.rs
Ce qui a effet de créer le fichier exécutable comme suivant :
ls -als total 4212 4 drwxrwxr-x 2 xavior xavior 4096 août 9 17:07 . 4 drwxrwxr-x 3 xavior xavior 4096 août 9 17:02 .. 4200 -rwxrwxr-x 1 xavior xavior 4298456 août 9 17:07 main 4 -rw-rw-r-- 1 xavior xavior 44 août 9 17:06 main.rs
Enfin, il n’y plus qu’à l’exécuter :
./main
ce qui affiche :
Hello world!
III CARGO : utilitaire de gestion de projets Rust
III.1 Présentation
Cet utilitaire va permettre :
- de compiler le code
- de télécharger les paquets des bibliothèques à utiliser
- de compiler les bibliothèques
Nous allons utiliser VS Code pour mieux voir ce qui se passe quant à l’utilisation
III.2 Création d’un projet
Ouvrir VS Code à la racine du répertoire des futurs projets Rust :

puis en ligne de commande pour créer un nouveau projet :
cargo new hello_projet
On voit ainsi la nouvelle structure du projet :

Les fichiers sources seront mis dans hello_projet/src/.
III.3 Compiler le projet :
Pour compiler, allez à la racine du projet et taper :
cargo build
Ce qui donne visuellement :

III.4 Compiler et exécuter le projet :
Pour executer (et compiler), taper la commande uivante :
cargo run
Ce qui donne visuellement :

III.5 Compiler mais ne pas créer exécutable
En ligne de commande :
cargo check
ce qui donne :

III.6 Créer une version à distribuer
En ligne de commande :
cargo build --release
Ce qui donne visuellement :

L’exécutable dans hello_projet/target/release sera optimisé et plus rapide à l’exécution. En revanche, il prend plus de temps à être généré pour le compilateur.
IV VS CODE
plugin intéressant dans VS CODE : rust-analyzer

il permet notamment d’avoir :
l’auto complémentation du code :

la possibilité par Click + CTRL de voir l’intérieur du code d’une fonction
d’exécuter du code sans passer par la ligne de commande (placer la souris sur la fonction main)