cargo
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Ausbaufähige Anleitung
Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: 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.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
cargo 🇬🇧 ist der Paketmanager der Programmiersprache Rust 🇬🇧. 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:
cargo (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install cargo
Oder mit apturl installieren, Link: apt://cargo
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]:
cargo KOMMANDO [OPTIONEN]
Eine Übersicht über alle Kommandos bekommt man mit
cargo --list
Recht ausführliche Informationen zu einem Kommando erhält man via
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 crates.io 🇬🇧, 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
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.
Hinweis:
~/.cargo/bin muss zusätzlich noch 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:
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
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 Dokumentation 🇬🇧 zu finden.
Um alle für den ausführenden Benutzer via cargo installieren Pakete aufzulisten, führt man den folgenden Befehl aus:
cargo install --list
Möchte man auf crates.io nach Paketen suchen, kann man das mit dem folgenden 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¶
ausführliche Dokumentation 🇬🇧 von cargo