-
Notifications
You must be signed in to change notification settings - Fork 51
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