-
Notifications
You must be signed in to change notification settings - Fork 50
Rustup auf den CIP PCs
Der Rust Compiler sollte am besten über Rustup installiert werden. Rustup ist ein Tool zur Verwaltung unterschiedlicher Versionen vom Compiler und der Standardbibliothek. Es ist einfach, auf die neuste Compilerversion zu aktualisieren aber auch für andere Architekturen zu kompilieren.
Leider kann man Rustup nicht einfach auf CIP PCs installieren. Der Grund dafür ist das Heimatverzeichnis pro Nutzer, welches in der Größe beschränkt ist (250MB) und über das Netzwerk synchronisiert wird. Rustup würde das Heimatsverzeichnis normalerweise sehr schnell füllen. Daher muss man bei der Installation auf ein paar Dinge achten.
In dieser Anleitung wird Grundwissen über Linux, "Terminal-Befehle" und sh-Scripte vorausgesetzt. Falls es Fragen dazu gibt, fragt einfach auf Piazza!
Rustup installiert seine Dateien in diverse Verzeichnisse:
-
~/.cargo/<Diverse Dateien>: Kleine, eventuell vertrauliche Informationen -
~/.cargo/bin: Installierte Programme und Proxies fürrustc, ...; ca. 10MB -
~/.cargo/registry: Library-Cache, ist schnell recht groß, viele Dateien -
~/.rustup/toolchains: Alle installierten Rust-Compiler, mehrere 100MB -
~/.rustup/<alles andere>: Klein, halbwegs vertraulich, nutzerabhängig
Wichtig: Wahrscheinlich wird die derzeitige Rustup version noch den Ordner .multirust statt .rustup benutzen! Also werdet ihr euch wahrscheinlich immer, wenn ich .rustup schreibe, .multirust denken.
Jetzt bleibt die Frage: Wie installieren wir Rustup, ohne das Heimatsverzeichnis zu füllen? Der Trick liegt dadrin, Dateisystemlinks anzulegen. Hauptsächlich wichtig sind die Verzeichnisse ~/.cargo/registry und ~/.rustup/toolchains, da die den meisten Platz einnehmen.
Die Installationsroutine würde in etwa wie folgt aussehen. Achtung: Diese Befehle sind nicht wirklich zum Copy&Pasten gedacht, sondern nur als Anhaltspunkt; bitte selber mitdenken. Insbesondere sind diese Befehle auch nicht von mir getestet und enthalten daher wahrscheinlich Fehler!
Erstmal soll sich Rustup selber installieren, aber nicht im Heimatsverzeichnis. Dazu setzen wir die $HOME Variable auf ein temporäres Verzeichnis.
export $HOME_BACKUP=$HOME
export $TMP_PATH=/tmp/rustii
mkdir $TMP_PATH
export $HOME=$TMP_PATH
Als nächstes führen wir ganz normal die Installation durch:
curl https://sh.rustup.rs -sSf | sh
Nun befinden sich .cargo und .rustup hoffentlich in /tmp/rustii.
Nun richten wir uns die beiden Verzeichnisse im Heimatsverzeichnis manuell ein. Zuerste .cargo:
mkdir $HOME/.cargo
cp $TMP_PATH/.cargo/env $HOME/.cargo/env
mkdir -p /local/.cargo/bin
cp -r $TMP_PATH/.cargo/bin/* /local/.cargo/bin
mkdir -p /local/.cargo/registry
ln -s /local/.cargo/bin $HOME/.cargo/bin
ln -s /local/.cargo/registry $HOME/.cargo/registry