Rust/Installation von `rustup`, `rustc` und `cargo`

Aus Dokument
Version vom 4. März 2026, 07:14 Uhr von imported>Import (Version 235)
Zur Navigation springen Zur Suche springen

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).


Willkommen in der Welt von Rust! Um erfolgreich mit Rust zu programmieren, musst du drei wichtige Werkzeuge kennenlernen: rustup, rustc und cargo. Keine Sorge, wir erklären alles so einfach, dass du als Programmieranfänger sofort loslegen kannst.

Lernziele

Nach diesem Kurs wirst du:

  • Verstehen, was `rustup`, `rustc` und `cargo` sind und worin sie sich unterscheiden.
  • Rust selbstständig auf deinem Computer installieren und aktualisieren können.
  • Einzelne Rust-Dateien mit dem Compiler übersetzen können.
  • Komplette Rust-Projekte mit Cargo erstellen, verwalten, testen und bauen können.

Lektionen

Lektion 1: rustup – Dein Werkzeug-Manager

Stell dir `rustup` wie einen Werkzeugkoffer vor. Wenn du Rust verwenden möchtest, musst du es zuerst installieren. `rustup` kümmert sich um die Installation, Updates und darum, dass du immer die passenden Werkzeuge (wie den Compiler) hast.

  • Hauptaufgabe: Rust installieren und aktuell halten.
  • Wichtigster Befehl: `rustup update` (um alles auf den neuesten Stand zu bringen).

Lektion 2: rustc – Der Übersetzer

Computer verstehen unseren geschriebenen Text (den Code) nicht direkt. Sie brauchen Nullen und Einsen. Hier kommt `rustc` (der Rust-Compiler) ins Spiel. Er nimmt deinen Rust-Code und übersetzt ihn in ein Programm, das der Computer ausführen kann.

  • Hauptaufgabe: Deinen Code in ein fertiges Programm verwandeln.
  • Wichtigster Befehl: `rustc programm.rs` (übersetzt die Datei in ein ausführbares Programm).

Lektion 3: cargo – Dein Projektmanager

Du wirst `rustc` fast nie direkt benutzen. Warum? Weil `cargo` das für dich macht! `cargo` ist wie ein Bauleiter: Es erstellt Ordner für dein Projekt, lädt andere Codes (Bibliotheken) aus dem Internet herunter und ruft `rustc` auf, um alles zusammenzubauen.

  • Hauptaufgabe: Projekte erstellen, verwalten und bauen.
  • Wichtigste Befehle: `cargo new` (neues Projekt), `cargo run` (Programm bauen und starten).

Übungen und 75 Mini-Projekte (Projektbasiertes Lernen)

Hier sind 75 kleine Aufgaben, mit denen du die Werkzeuge in der Praxis kennenlernst. Jedes Mini-Projekt dauert nur wenige Minuten!

Teil 1: Mini-Projekte zu rustup (1-25)

  1. Hallo rustup: Öffne das Terminal und gib `rustup –version` ein.
  2. Updates prüfen: Führe `rustup update` aus, um die neuesten Versionen zu holen.
  3. Werkzeuge anzeigen: Nutze `rustup show`, um zu sehen, was installiert ist.
  4. Hilfe suchen: Lass dir mit `rustup help` alle Befehle erklären.
  5. Docs lokal: Öffne die Offline-Dokumentation in deinem Browser mit `rustup doc`.
  6. Zielplattformen: Führe `rustup target list` aus. Was siehst du?
  7. Komponenten checken: Untersuche mit `rustup component list`, welche Extras verfügbar sind.
  8. Formatierer holen: Installiere `rustfmt` mit `rustup component add rustfmt`.
  9. Linter installieren: Füge `clippy` hinzu: `rustup component add clippy`.
  10. Nightly installieren: Lade die Vorschauversion mit `rustup toolchain install nightly`.
  11. Nightly aktivieren: Mache Nightly zum Standard: `rustup default nightly`.
  12. Zurück zu Stable: Wechsle wieder zur stabilen Version: `rustup default stable`.
  13. Ordner-Spezifisch: Setze in einem speziellen Ordner eine andere Version: `rustup override set nightly`.
  14. Override löschen: Entferne diese Regel wieder mit `rustup override unset`.
  15. Profil wechseln: Ändere dein Profil auf ‘minimal’: `rustup set profile minimal`.
  16. Profil zurücksetzen: Gehe zurück auf ‘default’: `rustup set profile default`.
  17. Deinstallieren üben: Entferne die Nightly-Toolchain: `rustup toolchain uninstall nightly`.
  18. Wo bin ich?: Finde heraus, wo `rustup` liegt: `rustup where`.
  19. Selbst-Update: Aktualisiere nur rustup selbst: `rustup self update`.
  20. Beta-Version: Installiere die Beta-Version: `rustup toolchain install beta`.
  21. Einmalig Beta: Führe einen Befehl explizit via Beta aus: `rustup run beta rustc –version`.
  22. WebAssembly: Füge Wasm als Ziel hinzu: `rustup target add wasm32-unknown-unknown`.
  23. Alte Versionen: Installiere eine sehr alte Rust-Version (z.B. 1.50): `rustup toolchain install 1.50.0`.
  24. Aufräumen: Deinstalliere Version 1.50.0 wieder.
  25. Quellcode laden: Lade den Rust-Sourcecode: `rustup component add rust-src`.

Teil 2: Mini-Projekte zu rustc (26-50)

  1. Erstes Programm: Erstelle `hallo.rs`, schreibe eine ‘main’-Funktion mit `println!` und kompiliere mit `rustc hallo.rs`.
  2. Programmumbenennung: Kompiliere und gib dem Programm einen eigenen Namen: `rustc hallo.rs -o mein_programm`.
  3. Fehler provozieren: Lösche ein Semikolon im Code und lies die rote `rustc`-Fehlermeldung.
  4. Typenfehler: Versuche eine Zahl und einen Text zu addieren, beobachte `rustc`.
  5. Fehlererklärung: Nutze den Tipp aus der Konsole, z.B. `rustc –explain E0308`.
  6. Kompakt-Modus: Minimiere Code-Ausgaben: `rustc -O hallo.rs` (Optimierung).
  7. Warnungen ansehen: Deklariere eine Variable `let x = 5;` ohne sie zu nutzen und kompiliere.
  8. Warnungen unterdrücken: Füge `#[allow(unused_variables)]` hinzu.
  9. Strenge Regeln: Wandle Warnungen in Fehler um: `rustc -D warnings hallo.rs`.
  10. Bibliothek erstellen: Baue Code ohne `main`-Funktion: `rustc –crate-type lib hallo.rs`.
  11. Metadaten ausgeben: Lass dir sagen, was kompiliert wird: `rustc –emit metadata hallo.rs`.
  12. Assembler ansehen: Generiere Maschinencode-Text: `rustc –emit asm hallo.rs`.
  13. Architektur: Setze die Ziel-Architektur manuell: `rustc –target x86_64-unknown-linux-gnu hallo.rs`.
  14. Standard-Edition: Kompiliere im älteren 2018-Standard: `rustc –edition 2018 hallo.rs`.
  15. Ausgabeverzeichnis: Lege fest, wohin die Datei soll: `rustc –out-dir ./neuer_ordner hallo.rs`.
  16. Bunte Farben aus: Schalte die Farbausgabe ab: `rustc –color never hallo.rs`.
  17. Version von rustc: Rufe `rustc –version` auf.
  18. Verbose-Modus: Lass rustc redselig werden: `rustc –verbose –version`.
  19. Tests kompilieren: Füge `#[test]` hinzu und kompiliere mit `rustc –test hallo.rs`.
  20. Externe Links: Verbinde eine Library manuell mit `rustc -L . hallo.rs`.
  21. Crate-Name logisch ändern: Nutze `rustc –crate-name test_projekt hallo.rs`.
  22. Ausführungszeit prüfen: Miss, wie lange `rustc` braucht (z.B. mit dem Befehl `time`).
  23. LLVM IR ausgeben: Lass rustc die Zwischensprache zeigen: `rustc –emit llvm-ir hallo.rs`.
  24. Hilfe lesen: Stöbere in `rustc –help`.
  25. Zusammenfassung: Kombiniere `-O`, `–edition 2021` und `–out-dir`.

Teil 3: Mini-Projekte zu cargo (51-75)

  1. Startschuss: Baue ein neues Projekt: `cargo new mein_projekt`.
  2. Ordnerstruktur: Analysiere, was Cargo in `mein_projekt` anlegt (src, Cargo.toml).
  3. Bauen: Wechsle in den Ordner und tippe `cargo build`.
  4. Sofort-Start: Führe `cargo run` aus (baut und startet gleichzeitig).
  5. Schneller Check: Überprüfe Fehler ohne zu bauen: `cargo check`.
  6. Release bauen: Baue eine superschnelle, optimierte Version: `cargo build –release`.
  7. Ausmisten: Lösche den `target`-Ordner mit `cargo clean`.
  8. Neues Paket hinzufügen: Öffne die `Cargo.toml` und füge `rand = “0.8”` hinzu.
  9. Cargo Add benutzen: Füge eine Bibliothek im Terminal hinzu: `cargo add serde`.
  10. Cargo Remove: Lösche Serde wieder: `cargo remove serde`.
  11. Abhängigkeitsbaum: Lass dir den Abhängigkeits-Baum zeigen: `cargo tree`.
  12. Code formatieren: Bringe Unordnung in deinen Code und tippe `cargo fmt`.
  13. Code-Analyse: Lass den Linter Clippy rübergehen: `cargo clippy`.
  14. Lokale Docs: Generiere Dokumentationen für dich und deine Helferlein: `cargo doc –open`.
  15. Tests ausführen: Schreibe einen kleinen `#[test]` in die `main.rs` und tippe `cargo test`.
  16. Neues Lib-Projekt: Erstelle directly eine Bibliothek: `cargo new –lib meine_bib`.
  17. Ausführbare Beispiele: Erstelle einen Ordner `examples` und führe ihn mit `cargo run –example demo` aus.
  18. Paket updaten: Aktualisiere Hilfs-Pakete mit `cargo update`.
  19. Suchen: Finde Pakete ohne Browser: `cargo search regex`.
  20. Werkzeuge installieren: Installiere ein fremdes Rust-Tool weltweit: `cargo install ripgrep`.
  21. Offline-Modus: Baue ohne Internetverbindung: `cargo build –offline`.
  22. Projekt packen: Simuliere einen Veröffentlichungs-Prozess: `cargo package`.
  23. Metadaten: Zeige maschinenlesbare Infos: `cargo metadata`.
  24. Globaler Cache: Mache dich mit dem Ordner `~/.cargo/registry` vertraut.
  25. Cargo-Hilfe: Entdecke weitere Befehle mit `cargo –list`.

20 Große Projekte (Top-Down-Lernen)

Jetzt fügen wir alles zusammen. Hier erstellst du mit `cargo` große Projekte von der Idee bis zum fertigen Produkt.

  1. Taschenrechner im Terminal: Nutze `cargo new` und schreibe ein Programm, das Eingaben liest und Plus, Minus, Mal, Geteilt rechnet. Teste die Formeln mit `cargo test`.
  2. Zahlenraten-Spiel: Binde mit `cargo add` das `rand`-Paket ein. Lass das Programm eine zufällige Zahl generieren, die der Spieler erraten muss.
  3. Notizbuch-App: Speichere und lade Zeilen aus einer Textdatei (.txt). Kompiliere abschließend im `–release` Modus.
  4. Wetter-Anzeige (CLI): Binde die `reqwest`-Bibliothek ein und hole Wetterdaten aus dem Internet. Betrachte den komplexen Abhängigkeitsbaum mit `cargo tree`.
  5. Vokabel-Lernkartei: Lese eine CSV-Datei ein. Nutze `cargo clippy`, um sicherzustellen, dass dein Code perfekt sauber ist.
  6. Eigener Web-Server: Starte einen Server (z.B. mit dem Crate `axum` oder `actix-web`) und zeige ein “Hallo Welt” im Browser.
  7. ToDo-Listen-Verwaltung: Ein Programm mit Menü: Hinzufügen, Löschen, Anzeigen. Speichere die Daten in einer lokalen JSON-Datei (Nutze `serde`).
  8. Markdown zu HTML Konverter: Schreibe ein Tool, das `.md`-Dateien einliest und einfache HTML-Dateien ausspuckt. Formatiere den Code stets mit `cargo fmt`.
  9. Passwort-Generator: Generiere sichere 16-stellige Passwörter. Mache dies als reines Bibliotheksprojekt (`cargo new –lib`) und schreibe eine GUI oder CLI in einem anderen Projekt dafür.
  10. Stoppuhr / Pomodoro-Timer: Ein Timer, der Warntöne abgibt. Nutze Multi-Threading für den Hintergrund-Timer.
  11. ASCII-Art Zeichner: Lies ein kleines Bild ein und wandle die Pixel in ASCII-Zeichen um.
  12. Text-Verschlüsselung (Caesar Chiffre): Schreibe einen Algorithmus, der geheime Nachrichten verschlüsselt. Teste alle möglichen Kombinationen mit echten Test-Funktionen (`cargo test`).
  13. Dateisystem-Durchsucher: Ähnlich wie Windows-Suche: Gib einen Begriff ein, und Rust durchsucht rasend schnell alle Dateien in einem Ordner.
  14. Chat-Client: Baue eine einfache Client-Server-Architektur, bei der zwei Terminals miteinander chatten können.
  15. Morse-Code-Übersetzer: Gib Text ein, das Programm übersetzt es in Punkte und Striche und gibt Pieptöne aus.
  16. Ausgaben-Tracker: Ein Finanz-Tool, in dem du Ausgaben einträgst. Generiere eine kleine Statistik.
  17. Tagebuch mit Passwort-Schutz: Nutze Verschlüsselungs-Bibliotheken (über Cargo hinzugeladen), bevor dein Text in die Datei geschrieben wird.
  18. Ein Cargo-Workspace: Erstelle einen übergeordneten “Workspace”, der zwei Projekte gleichzeitig beinhaltet: Eine Text-Analyse-Bibliothek und ein Terminal-Interface, das diese nutzt.
  19. Eigener Mini-Programmiersprachen-Interpreter: Erstelle einen Interpreter für eine winzige, ausgedachte Spaß-Sprache. Bei Typfehlern schaust du dir an, wie gut `rustc` dir bei der Lösung hilft.
  20. Ein öffentliches Crate vorbereiten: Mach eins deiner Projekte bereit, um es (theoretisch) mit `cargo publish` der Welt zur Verfügung zu stellen. Generiere dazu eine perfekte Offline-Anleitung mit `cargo doc`.

Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).