[Rust] Diesel für Rust auf Windows installieren

Ich schreibe diese Anleitung, da die Installation von Diesel auf Windows 10 (11) nicht so einfach war…

Für die Installation unter Windows habe ich den Installer für Rust verwendet:
[sourcecode language=“plain“]https://www.rust-lang.org/tools/install[/sourcecode]
Damit wird Rust und Cargo installiert, nicht Diesel.

Unter Linux (CentOS und Debian):
[sourcecode language=“plain“]apt install curl -y bzw. yum install curl -y
curl –proto '=https' –tlsv1.3 https://sh.rustup.rs -sSf | sh[/sourcecode]
Weitere Anleitungen für die Installation von Rust:
[sourcecode language=“plain“]https://wiki.crowncloud.net/?How_to_Install_Rust_on_Debian_12[/sourcecode]
Oder einfach Googlen.

Zuerst einmal, Cargo ist für Rust zuständig Module zu installieren.

Diesel ist ein Modul für Rust, Diesel erleichtert die Datenbankzugriffe.

Diesel unterstützt PostgreSQL, MySQL und SQLite, darin liegt aber der „Hund“ begraben… wir sollten alle 3 Datenbanken auf unserem PC installiert haben. Aber das ist nur die 1/2 Miete…

Wir brauchen die libpq.lib, die libmysql.lib und die sqlite3.lib. Besser gesagt, wir müssen für Cargo die Pfade über die Windows Variablen setzen.

Anmerkung: Ich verwende unter Windows Everything, das kann man von https://www.voidtools.com/ herunterladen. Ehrlich, ich wüsste nicht, was ich ohne dieses super Tool machen sollte, die Windows Dateisuche ist ja sowas von am A****… ist elendig langsam, findet nichts und noch dazu 100% CPU, wenn irgendwas WSearch nicht passt…

PostgreSQL:
[sourcecode language=“plain“]C:\Program Files\PostgreSQL\15\lib\libpq.lib[/sourcecode]
Diesen Pfad müssen wir Cargo als CMD Variable übermitteln: (Pfad selbst anpassen bitte, falls Sie PostgreSQL 16+ oder älter haben!
[sourcecode language=“plain“]SET PQ_LIB_DIR=C:\Program Files\PostgreSQL\15\lib[/sourcecode]
Dann noch SQL-Lite, das ist nicht sooo einfach, dafür muss man das Windows SDK installieren, sonst muss man selbst die sqlite3.lib kompilieren… Alternativ kann man von https://github.com/buggins/ddbc das ganze Paket downloaden und entpacken, im Verzeichnis ist bei mir C:\Users\Alex\Downloads\ddbc-master\ddbc-master\libs\win64 die sqlite3.lib enthalten… aber ich hab die sqlite3.lib vom Windows-SDK genommen
[sourcecode language=“plain“]SET SQLITECLIENT_LIB_DIR=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64[/sourcecode]
Dann ist noch MySQL dran:

Cargo sucht die mysqlclient, welche natürlich nicht gefunden wurden, dafür muss man von https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-winx64.zip herunterladen und entpacken, da war die libmysql.lib enthalten:
[sourcecode language=“plain“]SET MYSQLCLIENT_LIB_DIR=C:\Users\Alex\Downloads\mysql-connector-c-6.1.11-winx64\mysql-connector-c-6.1.11-winx64\lib\vs14[/sourcecode]
Die Pfade unter Anführungszeichen „“ zu setzen, wie es in Windows mit Pfaden mit Leerzeichen so üblich ist, war hier nicht notwendig!

Danach konnte ich erfolgreich Diesel mit Cargo installieren:
[sourcecode language=“plain“]cargo install diesel_cli[/sourcecode]
Nachdem ich auf einer „nackten“ Windows 10 VM das Ganze noch einmal ausprobiert habe, konnte ich trotzdem ich die sqlite3.lib in der 64-bit Version habe und die SET SQLITECLIENT_LIB_DIR korrekt auf das Verzeichnis gesetzt habe, konnte ich immer noch nicht Diesel installieren, ein wenig suchen später:
[sourcecode language=“plain“]cargo install diesel_cli –no-default-features –features „sqlite-bundled mysql postgres“ –force[/sourcecode]
Man nimmt die in Cargo eingebaute SQ-Lite, liefert immer die aktuelle bzw. die gesuchte sqlite3.lib…

Um mehr Output und Fehlersuche für Cargo zu ermöglichen, kann man das Log aktivieren, das macht man mit:
[sourcecode language=“plain“]SET CARGO_LOG=trace cargo fetch[/sourcecode]
Getestet unter Windows 10 (wird unter Windows 11 sicher auch gehen!)

Wie immer, alle Angaben ohne Gewähr, Anwendung auf eigene Gefahr und Verantwortung, ich übernehme keinerlei Haftung für Ausfälle, Datenverlust oder andere finanzielle Schäden.

Happy coding!



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.

WordPress Cookie Plugin von Real Cookie Banner