[[Vorlage(getestet, jammy)]] [[Vorlage(Ausbaufähig, "Der Artikel beschreibt primär die Installation von Rust Paketen via `cargo`. Der Artikel kann / sollte noch um Beispiele erweitert werden, wie man eigene Projekte anlegt und übersetzt.")]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal verwenden] }}} [[Bild(cargo_logo.png, 48, align=left)]] [https://doc.rust-lang.org/cargo/ cargo] {en} ist der Paketmanager der Programmiersprache [https://www.rust-lang.org/ Rust] {en}. cargo hat eine wichtige Rolle im Ökosystem von Rust, der Paketmanager ist der zentrale Punkt beim Erstellen neuer Programme / Projekt, hilft beim Publizieren und dient zur Installation von Rust-Programmen auf dem lokalen Rechner. = Installation = cargo kann direkt aus den Paketquellen installiert werden: {{{#!vorlage Paketinstallation cargo, universe }}} {{{#!vorlage Hinweis Bei der Installation wird Rust sowie der LLVM Compiler als direkte Abhängigkeit mit installiert. Dies lässt sich nicht vermeiden bzw. ist auch notwendig, da bei der Installation von Rust Paketen via cargo diese direkt auf dem Rechner kompiliert werden. }}} = Benutzung = Die allgemeine Syntax von cargo lautet[2]: {{{#!vorlage Befehl cargo KOMMANDO [OPTIONEN] }}} Eine Übersicht über alle Kommandos bekommt man mit {{{#!vorlage Befehl cargo --list }}} Recht ausführliche Informationen zu einem Kommando erhält man via {{{#!vorlage Befehl cargo help KOMMANDO }}} == Pakete installieren == cargo kann fertige Pakete und darin enthaltene, lauffähige Programme auf dem lokalen Rechner installieren. Die zentrale Stelle der Rust-Community für fertige Pakete ist [https://crates.io/ crates.io] {en}, welches "The Rust community’s crate registry" ist. Es ist aber auch die Installation aus einem Git-Repositry oder von lokale gespeicherten Paketen möglich. Die Installation eines Pakets von crates.io erfolgt mit dem Befehl {{{#!vorlage Befehl cargo install NAME_DES_PAKETS }}} Dabei wird automatisch die neuste Version heruntergeladen, kompiliert und dann im Home-Verzeichnis des ausführenden Benutzer nach '''~/.cargo/bin''' installiert. {{{#!vorlage Hinweis '''~/.cargo/bin''' muss zusätzlich noch [:Umgebungsvariable/Dateien:der Umgebungsvariablen `PATH` hinzugefügt werden], damit die dort gespeicherten, ausführbaren Programm auch gefunden werden. }}} Möchte man gezielt eine ältere Version eines Pakets installieren, kann zusätzlich die Versionsnummer angegeben werden: {{{#!vorlage Befehl cargo install NAME_DES_PAKETS --vers VERSIONSNUMMER }}} `VERSIONSNUMMER` muss dabei normalerweise die Struktur MAJOR.MINOR.PATCH haben, also z.B. 1.2.3 . Zum Aktualisieren eines Pakets führt man einfach den `cargo install PAKETNAME` Befehl nochmals aus. Ist eine neuere Version des Pakets verfügbar wird es installiert. Hat man die neuste Version installiert bekommt man den Hinweis, dass man die neuste Version bereits hat. Möchte man das Paket in einem anderen Pfad als '''~/.cargo/bin''' installieren, muss man die Option `--root /PFAD/ZUM/VERZEICHNIS` wählen. Darin wird dann immer das Verzeichnis '''bin''' angelegt. D.h. wenn man ein Programm systemweit installieren wollte, müsste man `--root /usr/local` angeben und den Befehl natürlich mit Root-Rechten ausführen. Man kann mittels cargo auch direkt Pakete auf einem Git-Repositry installieren, und zwar mit dem Befehl {{{#!vorlage Befehl cargo install --git https://PFAD/ZUM/REPO/PROJEKT.git #Beispiel: cargo install --git https://github.com/theryangeary/choose.git }}} Man kann hier auch zusätzlich Optionen angeben, um gezielt einen Git-Branch, einen Revision der einen Tag zu installieren, Details sind in der [https://doc.rust-lang.org/cargo/commands/cargo-install.html#options Dokumentation] {en} zu finden. Um alle für den ausführenden Benutzer via cargo installieren Pakete aufzulisten, führt man den folgenden Befehl aus: {{{#!vorlage Befehl cargo install --list }}} Möchte man auf crates.io nach Paketen suchen, kann man das mit dem folgenden Befehl: {{{#!vorlage Befehl cargo search SUCHBEGRIFF }}} Standardmäßig werde 10 Suchtreffer ausgegeben. Möchte man mehr Treffer sehen (falls vorhanden), dann kann zusätzlich die Option `--limit N` angeben, wobei `N` die Anzahl der anzuzeigenden Suchtreffer ist. = Links = * [https://doc.rust-lang.org/cargo/ ausführliche Dokumentation] {en} von cargo #tag: Programmierung, Paketinstallation, Rust